I have not found any photo gallery software that makes me completely happy. My Photo Gallery is currently powered by QuickyPix, "an instant thumbnail web photo gallery software". I like it because:

  • No heavyweight metadata: the gallery is completely generated from the current filesystem. As soon as a new set of photos is installed into the photos directory, they are instantly web-accessible. There is no need to import them into any kind of database or special application.
  • Lean installation: it does not depend on a database.
  • Small codebase: less than 2500 lines of Python code makes it easy to tweak and customize.
  • Customizability: the UI is "themed" via CSS, so it is very easy to integrate into the rest of a web site.
  • Dynamically-generated thumbnails: thumbnails are generated as needed. (*)
  • Bookmarkability: each photo can be reached by its own unique and meaningful URL.
  • Full-resolution images can be made available.
Things I don't like about it (out of the box):
  • Flickr-style two-column layout: the zoomed-in photo takes up half the screen's real-estate (or more), leaving all the thumbnails to be crammed into a tiny half (or less) of the remaining space. This makes browsing/navigating thumbnails rather painful.

I've integrated Lightbox JS into my QuickyPix-powered gallery and replaced its two-column layout with a plain thumbnail-only layout; the zoomed-in picture is presented in a modal dialog box. The realized benefits:

  • Lots more screen real estate: larger, less-squintily-browsable thumbnails.
  • Better navigation through all the photos: just click in the same place each time, or use the keyboard.
  • Gee-whiz special transition effects.
  • Speculative pre-fetching of neighboring pictures: while one picture is being shown in the lightbox, the previous and next pictures are pre-fetched in the background, helping improve browsability.

The trade-off is that I've given up bookmarkability of the zoomed-in image. I believe this is necessarily typical for Javascript-y websites, but I'm still looking into this ...

(*) My web server is too slow to make full use of dynamic thumbnail generation; it takes about 2 seconds to generate a thumbnail, so a 30-thumbnail gallery would take a full minute to load. I've written a script to pre-generate all the thumbnails ahead of time so that the thumbnail pages will be ready for all my visitors :). Run it like so:

% cd /var/cache/quickypix
% quickypix-pregenerate [path_to_photos...] | sudo -u www-data sh -ex
The script simply generates a list of commands to recursively create all thumbnails for the given directory. Piping that set of commands to a shell will actually run the commands. The script needs to be edited to generate thumbnails of the desired size.
[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon] Last updated: Wed Mar 11 21:57:16 PDT 2009