
Today's hack:
picturetile.pl.
Back when I used a film camera, I used to cover one of my walls with snapshots. They currently cover an area of about 10' wide and 8' high, but I haven't updated them in a few years, because I don't use film any more.
And then a few weeks ago, this post about how to use iPhoto to make a poster out of a grid of digital photos was making the rounds, and that inspired me to write my own.
The thing I didn't like about that iPhoto technique is that it required all the photos to be the same shape (all portrait or all landscape) and, well, I have both. So I wrote this program to do a more chaotically-packed layout of photos of arbitrary sizes (sample output to the right; instructions at the top of the file.)
I haven't tried actually printing one of these yet. Should I just go to Kinko's?
The Perl interface to ImageMagick is pretty slick! I hadn't taken notice of it before.
What I originally wanted to do was, instead of writing out a single flat file with the images in them in the randomly-chosen layout, write out a file with each image on its own layer, positioned properly. That way I could easily go in and hand-tune the layout by just dragging the layers around in GIMP. But, it seems that TIFF files don't store position info for the layers (they all start at 0,0) and I can't find any other multi-layered image format that can be both written by ImageMagick and read by GIMP. So, so much for that idea.
I suppose could have accomplished this by writing this program in Script-Fu (GIMP's Scheme-ish extension language) instead of in Perl, but there's just something about Script-Fu that rubs me the wrong way, so I didn't bother learning it.
Another thing that's going to be problematic about using this (for me, anyway) is that, while I've saved the original, high resolution version of nearly every photo I've taken, the versions that I have color-corrected and put in galleries are all the small versions. This means that I'll either have to re-color-correct the big originals, or just print out the uncorrected versions. Maybe I should add an option to the script to do "auto-levels" on the images as it imports them. That will crappify certain pictures, but will probably improve most of them...