wiredfool

Cocoa

Veering wildly for a post or so, I’m working on updating my image management tools. There are several prongs to this work: better quality thumbnails/web graphics, better metadata management, and easier publishing.

  • Right now, I’ve got imagemagick scripts reducing camera size jpegs to web size. These have looked a bit soft to me — I’ve always been able to make them look better with modest tweaking.
  • The metadata management is currently chronological numbered folders, I’m up to 362 at the moment, comprising something like 20000 files. I’ve got thumbnails, I just can’t find other than by date.
  • Publishing is ok at the moment as a command line app, but could be better.

    I’ve been working on the first two prongs for a while, on and off since CoreData and CoreImage were released with Tiger (summertime). I’ve finally spent enough butt in chair time and found enough documentation and sample code to get a working thumbnailer application that improves the quality of the thumbnailing process. I’ll probably release this at some point, but for now, I’ll post some notes on things that I ran into and needed to google in the last couple of days.

    ***Notes on Cocoa/Objective C from my first non tutorial based project.

    ZeroLink can obscure missing libraries and other accidents, while leaving a debug build perfectly
    runnable on the dev machine. Small typos like including a .m file instead of .h will give you multiply
    defined objects, and missing symbols can mean that you’re just missing the Framework that is auto linked
    at runtime if you’re using Zerolink.

    If you want to convert a cocoa application to a command line tool, start with a foundation tool,
    then add cocoa and whatever other frameworks you need.

    Beware affine transformations, as they can yield infinite results. Crop afterwards so you don’t
    require infinite vm to render the image. This shows up as a malloc error for a very large number
    of bytes. Also, the coreimage coordinate plane is much more like mathematicians view of a
    cooridinate plane rather than the quickdraw one.
    Dan Wood’s website
    was very useful for getting the idea of how to actually use coreimage.

    Coreimage doesn’t seem any faster than imagemagick for the basic things that I am doing at this point,
    and I’m not sure if that’s because I have low end hardware, if I’m trying to do more, or if there’s
    something that I’m just missing. The quality is far better than I was getting off of the original scripts,
    and I think I can attribute that entierly to the use of a luminance channel sharpening stage.

    Having scattered experience with C and Objective C doesn’t slow me down as much as figuring out the
    details of Coreimage. I’ve dabbled with Objective C (and trying to avoid it with pyobjc) since the betas,
    and I’m pleased that I just decided to do this in ObjC instead of fiddling with python. I’m still not 100%
    sure about the memory management as of yet — that will come with experience.

    No comments
  • No comments yet. Be the first.

    Leave a reply

    You must be logged in to post a comment.