A Finland Swede in Bavaria

Tuesday, 12 May 2009

Photo Manager: How do you keep track of your pictures?

If you're like me, you have tens if not hundreds of thousands of digital pictures. Tendency: Growing. How do you sort them? Archive them? Tag them? Find the right picture? Keep order in your backups?

Personally, I have no good answer to the above questions. I am still looking for the right program -- ideally, Open Source Software that helps me keep track of my digital pictures. So if you have a good answer, please tell me!

This blog entry is an attempt to define the specifications of what I need. I have labelled the software "FOSS Photo Manager", but I do understand it needs a catchier name. Basically, I'm fairly happy about my software for editing pictures. But not for managing my collection of pictures. Perhaps I should call the dreamt-up software "Robfat" (for rename, order, backup, find, archivetag), as I want to remove excess fat from my HDs (and CD/DVD cabinets). I need a lean, easily accessible collection of all my pictures.  

This is what I have:

  • one Mac laptop with a small HD, storing <10 % of my pictures

  • three external HDs with my pictures (some for backup, some as primary storage)

  • over a hundred CDs and DVDs that I burned as backups prior to having several external HDs

Looking at the pictures, I have:

  • over 100.000 pictures in over 1.000 directories

  • mostly the same directories on the various HDs

I also have disorder:

  • some new pictures (edits) I've saved only onto some HDs

  • some directories have been cleaned of bad pictures that I want to throw away, but these pictures still exist on other HDs (and I don't want them to return from the dead) 

  • some CDs and DVDs are clearly unnecessary by now, but may contain some files found nowhere else

My basic needs are

  1. To simplify my workflow from the point in time where I've downloaded the pics to my HD until the point where I've identified the best pics, sorted them, renamed the best ones, and backed them up

  2. To create and maintain a directory structure (while browsing the pics) that makes the pics easier to find

  3. To quickly tag my pictures while browsing them or as a bulk update of an entire directory, with the tags to be stored in the file's own EXIF data in order for it to be accessible from everywhere 

  4. To quickly rank my pictures (quality, one-to-five) or use the ranking from other software

  5. To easily compare the contents of two directories, identify discrepancies and fix them (by deleting pics I don't want to have, and by copying pics I do want to have) so that directories are identical between original and backup

  6. To swiftly harvest CDs / DVDs for any pics (files) that I don't have anywhere on my HD (remembering that I may have renamed them since), so I can throw away the old CDs / DVDs with peace of mind

  7. To retain data about pics on my external HDs even when I don't have the external HDs around (directory structure, file names, dates, times, sizes, tags)

  8. To mark and bulk copy pictures to new directories (for sharing pics, backing them up, creating copies that other software can freely edit, identify pics to upload to Picasa / Flickr / Facebook, or to create copies

  9. To bulk separate portrait from landscape pictures when copying (for better use in digital frames, phones, iPods)

  10. To identify likely siblings of a picture (edited versions, renamed versions -- based on similar file name, file size, date).

  11. To create statistics of my picture collection: How many pics do I have? By year, by tag, by various other criteria.

Ideally (but this isn't a basic need), I would also like to keep track of where I've used which picture (photo books, phones, digiframes, printouts, screen savers, Picasa, Flickr, Facebook).

The deadly sins I don't want this program to commit are

  1. Keep track only of pictures currently accessible. Nope! I want also the external HDs that aren't around, and the CDs/DVDs.

  2. Touch my pixels. Nope! Don't even turn the pics 90 degrees. All editing should be done with separate software. OK, so I'm happy if this software creates thumbnail copies (using ImageMagick or whatnot), if I clearly instruct it to.

  3. Do stuff not related to keeping track of my pictures. Nope, don't email pics. Don't synch them to the web. Don't print pictures. Don't import pictures from cameras or memory cards. Just keep order on my file system.

  4. Be an island like iPhoto. Nope. Everything this software does to create order (structures, tags, albums) should be visible outside the program, in the directory structure, in file names, in EXIF tags.

  5. Force repetitive tasks on the user. Nope. If all pics in a directory need a particular tag, then make it easy to tag them all. If normal workflow requires frequent hand movements between the keyboard and the mouse, then redesign it. 

So: No reinvention of the wheel -- but yes please, an invention of sensible traffic management that relieves me of queuing in the rush hour! Do you have tips for me?


  1. [...] my non-MySQL blog, I just wrote a blog post called “Photo Manager: How do you keep track of your pictures?“. I’m looking for Open Source Software that helps me keep track of my 100,000+ digital [...]

  2. While I agree it's nice to have all that metadata does it really need its own storage engine?

    What's wrong with properly designed tables to store the EXIF data?

    Maybe I'm missing something but I don't see any benefits to creating another storage engine just for this.

  3. Your needs scream Lightroom to me. Though it doesn't use MySQL or anything like that and it costs money, it is quite awesome and can do much of what you want (including putting photos on other drives). For online management, I had written my own Photo Album but have since start moving to Flickr. My photo album does stuff Flickr does not (such as photo ratings), however, so I was going to eventually use the Flickr API and use Flickr as a back-end image store.

  4. @Tim: I will take a look at Lightroom! Thanks for the tip.

  5. @Mike: Properly designed table to store EXIF is fine, as long as there is some easy utility for me to sync the table bidirectionally. I want to be able to do my easy SQL UPDATEs and then in bulk update the real files.

  6. Have You tried digiKam? I use this program and I am really happy. I would never change this program. I could not live without it...

  7. @Ulf: I suspect that would be limited to fewer pics than what I have, and (as you indicate) it violates a couple of the "deadly sins" I describe.

  8. @Alexander: digiKam -- looks very cool! It does make me seem stupid to look for FOSS software on Mac OSX, though. http://en.wikipedia.org/wiki/DigiKam points to more or less KDE only (with some caveats for Windows perhaps working).


  9. Have you tried FotoStation?
    It's a real powerful database, and the software most professional media houses and publishing agencies use.
    It's not open source, and kinda expensive, but IMO it's worth it if you've got a lot of pics.

  10. I've got some of the same problems and I've been working on my own solution. Starting with centralized index consolidation (i.e. remove duplicates) which supports multiple sources, basic statistics as well as thumb folders that you can view in a webpage, no waiting for finder, or having an awkward display. Spliting Landscape/Portrait is also very easy.

    I'll share more when I've got a working prototype.