How to arrange my photo albums

I have done the existing albums with bins. This does a good job of publishing the photos to HTML. On the other hand, annotating and classifying the photos is a bit of a pain.

What I have done so far is populate a new directory under AlbumLinks/ with symbolic links to all the photos (from the directories in Camera/) that I want in a given album. Then I run bins-edit-gui to set the titles and comments for the photos and the album itself, which is a bit painful since the interface is not very good. This makes an xml file for each photo. Sometimes I do extra editing of these by hand. Then I run bins on the whole hierarchy of these directories in order to generate the html pages, which are placed under Albums/.

Since upgrading to FC3 and KDE3.4 I have been playing with the digikam program. This is a much better way of organizing the photos but its inbuilt web publishing is very basic (nothing like as good as bins. With digikam, I can give tags to images, reflecting people, places, keywords, etc. Then I can make other tags to denote the images I want to export to a given album. All the metadata is stored in an SQLite database.

My plan is to write a python program digikam2bins that for a given tag will extract the relevant info from the digikam database and automatically create a directory populated with links to the original images together with the xml files that are required by bins.

Plan of action

All my programs are in ~/digikam2bins/.

Parse the digikam SQLite database

Much info found from http://www.sqlite.org/

First exploratory program is test-sqlite.py. The program finds all the photos that match a given tag and prints out the full path to the image file, any associated comment, and all the tags that have been added to each image.

It is pretty straightforward to make queries on the various tables in the database but the code is not exactly pretty. This is basically beacuse you have to combine two languages: python and SQL. A better idea would probably be to initially slurp in the entire database

Write the XML files for bins