I'll Never Get Those Four Hours Back

Having returned from my recent trip to Paris, I ran my pictures through my semi-home grown web gallery generation scripts. No, you don’t want this code, trust me. Just use flickr. Anyway, I uploaded the pictures and put the links up for all to see. People were happy. I have generally been happy with my scheme for lo these many years except for the fact that the pictures are always a bit soft after the downscaling, and I don’t have a convenient way to sharpen them. Every couple of years I look for a solution and fail, so last night was the time to try again.

The first thing I did was look at the available solutions for turnkey online galleries. I don’t really mind running my own stuff, but it does get tedious to:

1. Export from Lightroom.

2. Edit 2 text files.

3. Run make

4. Run rsync

Every time I want to put up pictures. I have enjoyed the “click and forget” nature of sites like Flickr. I just hate the interfaces that they implement for navigating the albums.

So I looked at Flickr. And it sucks. Smugmug sucks. Zenfolio is almost not bad. PhotoShelter sucks. The Costco photo app is OK for ordering prints, but otherwise sucks. PicasaWeb is probably the best of the lot. It’s not openly hateful, but it’s not perfect either. At least it’s fast. And the pictures looked a bit sharper than my slightly fuzzy homebrew. Still, I wasn’t convinced that it would work.

Then, in act of true desparation, I thought, “maybe there is an open source tool that can do a better job of resizing the images for me”. Don’t let this happen to you.

The obvious free tool to try is ImageMagick. It’s widely available and it’s “easy” to download and build. I downloaded the binary install to test, and the test seemed to go well, but setting up the binary install is annoying. So I told MacPorts to compile it for me. Two and a half hours later MacPorts had downloaded and compiled half of the fucking open source universe. Remember kids, when you build your own open source package and build system, make sure that I have to build “ncurses” in order to get ImageMagick. Because I love running gcc just as much as I can.

When my Macbook finally cooled off I was able to reprocess some of my albums in earnest. At first, things looked good. Then I realized that the color was wrong. The contrast and brightness on every JPEG that I processed changed ever so slightly. The problem was clear. Even though IM was not just stripping the color space tags like it used to, it clearly was not keeping track of color correctly as it did its resizing and sharpening work. So I deleted everything the poor Mac had just spent so much time compiling.

Before throwing in the towel for the night, I took one last look at PicasaWeb. It turns out that Google may know how to do search really well, but they don’t care about the color in your photographs. The Picasa desktop client seems to ignore the relationship between the color space in the picture and your screen. And, when you upload the pictures to the web site, Picasa completely strips the color space information, leaving it up to the whim of the your browser and display system to determine how the pixels are rendered. Boo.

So, summary for Pete Su two years from now: ImageMagick will suck. And all the free web galleries will either have bad navigation interfaces, bad color handling, or some hideous combination of both.

As a final note: I was also hopeful that CoreImageTool would be what I needed, but it does not preserve the color space of the source image when it writes the processed image to disk. Instead it does everything in the “Generic RGB” space. Luckily, it was an easy “fix” to make it use sRGB for everything, which is what I want. Although really it should preserve the color space in the original file. Maybe that’s not too hard to do either, but I’m not going to find out.