Now for some of my cows

/dev/pilaster/pilaster   thoughts, notes and mooo...

<  December 2005  >
SuMoTuWeThFrSa
     1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031
misc.

Tue, 20 Dec 2005 Pilaster, image gallery generator   >>

Walco and I are working on Pilaster, an image gallery generator.

"Now," you say, "aren't there already, y'know, like a gazillion image gallery generators out there?"

Yes, that's true.

And I guess there must be one out there that actually does at least 80% of what we'd like to see in a image gallery generator. But somehow, there's always something wrong with gallery generators that do exist.

Apparently, for some reason, image galleries are a very personal thing. How you can add photos, whether they're written in the programming language of your choice (even if this is hardly a rational reason of course), how the thumbnail pages are rendered and - more importantly - to what extent you can customize the software to actually make it just like you want it too.

And then you decide: "Right, let's roll my own".

So, what does Pilaster do?

  • It's build on top of mod_python. Mod_python does make it rather easy to start out with something simple, and evolve into something complex. Its a rather thin layer arround Apache's request and response handling. And thus mod_python unleashes quite some power.
  • Pilaster uses the file system for image storage and the collection structure. Pilaster acts as a 'wrapper', or 'view', arround the directories and the images therein.
  • Thumbnails and 'resized' versions of the original are generated 'on the fly'. The original is not touched. Generated versions are cached, and thus need to be generated (which can be a CPU intensive task) only once.
  • The view for a directory, the 'contact sheet', will display a series of thumbnails, one for each image file in this directory. This view is able to access its parent directory, the next, previous and sub directories. This enables hierarchical navigation through the complete collection.
  • The view for one image, the 'proof', within the collection displays a resized version of the image. Using this view you can navigate up (to the parent directory) and to the next and previous image in the current directory.
  • Most aspects of this feature set are customizable: you can use your own CSS stylesheet for the rendered HTML. You can override the page templates that are used for the rendered pages (Pilaster uses the SimpleTAL page templates implementation). You can restrict what resize options are available and where the thumbnail and resized versions are cached. And you can limit access to the conversion utility (that is used for the resizing) [1] .

So, what does it not do? Or not yet do.

  • Pilaster does not yet read and interpret the EXIF metadata embedded in the images. It is a planned feature though.
  • There's plans to add support for the *.port file format that is used by the Portico Pyblosxom plugin. This could be the way to create arbritrary image collections, without having to copy files and/or directories around.
  • Pilaster does not handle file uploads, or other image management tasks at all. That's not its intention.

See for an example: http://jw.n--tree.net/pilaster/

[1]The current implementation uses the Python Imaging Library for image processing. Walco is working on a alternative set of converters that'll use ImageMagick.