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.
- 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:
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.% cd /var/cache/quickypix % quickypix-pregenerate [path_to_photos...] | sudo -u www-data sh -ex