Photo publishing software
I started writing my custom photo publishing software in January 2006. I’ve been using many “out of the box” solutions prior to that but nothing offers the flexibility of a home grown tool.
I didn’t start from scratch though, and the tools I use today are greatly inspired from Gerald Oskoboiny’s Digital photo publishing software.
The publishing process basically goes through 3 steps: gathering metadata, creating various resized thumbnails, building the gallery. Each steps involves one or several scripts and softwares, and I’ll try to describe how I use each of them.
Metadata gathering
This is the step where you say what is in the picture, who toke it, where was it taken, etc… I’ve decided to store this information in the EXIF and IPTC header of my Jpeg photos. The captivate script also has an option to store these metadata in an RDF file.
I usually do this step at home where my computer runs Windows. I’ve noticed that a lot of metadata editing software often “break” the EXIF header and lose information (often the makernotes), so be careful which one you use. When I edit information in Windows I use Exifer and when I do it on my web server running Debian I use Exiftool, a very powerful perl library and command line tool. I wish there was a nice GUI for Exiftool…
GPS tagging
I bought a GPS device in the spring of 2006. My main motivation was geolocation of my photos. So in order to add GPS data in the EXIF header I’ve tweaked the gpsPhoto perl script to fit my needs (my version). This script parses data from a gpx tracklog or a point of interest and inject the data in the EXIF header. They have been improving the script (it is now a sourceforge project called gps2photo) and I’d like to see what they changed and if there is anything I could take advantage of or contribute to… once more not too much time, but that’s on my to do list.
Thumbnails generation
In order to create resized versions of my pictures I use Gerald’s make_variants script. This script uses the “convert” tool from ImageMagick. This step takes forever, probably because I do it on my webserver (no need to have all those resized versions at home) which is an old 800MHz Pentium III
.
Gallery building
Once I have the metadata and the resized versions of every photo, I use my modified version of captivate perl script in order to generate XHTML pages that compose my online gallery. My version of this tool has diverged quite a lot from the original captivate script I “borrowed” from Gerald in 2006, I’m actually thinking of renaming it once I’ll have clean some of the legacy features I’m not using.
There are still a few features that I’d like to add to that script. I’d also like to write a clean manual that describes any possible option and output for it. Enough to occupy these cold winter weekends
