Photo Organization in Linux

NOTICE: This is a pre-release version of this page. It is incomplete.

The way things are with photograph organization software in Linux, there seem to be no tools which allow me to organize my photos the way I want to. My belief is that the underlying filesystem should vanish, and metadata should reign as king of organization for my photographs.

For this page, my requirements are simple. I have nine photographs. Each one has a comment embedded within the photograph. I’m not looking at photograph editing capabilities, only the ability to associate data with my photographs, and then use that data in some way to filter through my photographs.

Photos

Categorization and Tagging

Categorization is important because it allows grouping photos together. A photo of my cat, Patches, would go into the “Patches” category. A photo of my other cat, Spocket, would go into the “Spocket” category. A photo with both Patches and Spocket would go into both categories. These categories should be then be able to be placed into multiple parent categories, such as “Cats” and “Pets”. I might even have a hierarchy along the lines of:

  • Cats->Calico->Patches
  • Cats->Calico->Spocket
  • Pets->Patches
  • Pets->Spocket

This idea of multiple parent categories goes beyond what people typically expect from filesystems (where a folder typically has only one parent folder).

Here’s another example use case:

  • People->Bill Gates
  • People->Steve Jobs
  • People->Linus Torvalds
  • Groups->Microsoft->Bill Gates
  • Groups->Apple->Steve Jobs
  • Groups->Linux->Linus Torvalds

Tagging is important because not everything needs to be categorized, but might be useful information. If a photo has a cactus in it, I might tag is as “Cactus”. I don’t want a hierarchy along these lines:

  • Plants->Cactus

Granted, I could put plants into a hierarchy, but what if the cactus but what about when I photograph a clock? Then a compass? And then a book? Maybe I will want a cactus category, but I only want photographs with the cactus as the subject to appear in there, but every photo with a cactus (even one in the background) to be tagged with “cactus”.

Comparing Photograph Organizers

For this comparison, I’m not looking at compatability between programs. I’m also not concerned with what manner of photograph-editing capabilities may exist. My only concern is being able to handle metadata, and to categorize and tag my photographs. For each of these trials, I’ve created a separate copy of my “Photos” folder (such as “Photos.digiKam”) so that each program begins with the same photographs, untouched by any other program. I’ll be looking at these programs from first-run to adding information to photographs.

The order programs are reviewed is alphabetized by program name, case-insensitive.

blueMarine

blueMarine is an “Open Source Photo Workflow”, according to its splash screen while loading.

blueMarine Setup

The first thing blueMarine has me do is set up a workspace. The workspace “is a single directory where blueMarine stores everything: thumbnails, catalog data, galleries, and preference settings.” The only requirement is that it be an empty folder (or a pre-existing workspace). Rather than the default “/home/album/Pictures/blueMarine/My Photos.bmw”, I opted for “/home/album/Photos.blueMarine/data” (which then requires blueMarine restarting because its workspace location has changed).

blueMarine Default View

I’ve long since come to notice that light on dark is a popular choice photo manager software. It’s the first thing I change, but I’ll leave it with the default colors for this post.

Things to note: This is a beta release of version 0.9. The EXIF inspection pane has not been re-implemented in this release (from version 0.8.6, before a major code overhaul), so I will take this into account when using this version of blueMarine.

My initial thoughts are: I have a “Browse” and a “Target” which shows my CD drive and my DVD drive, as well as my floppy drive, and my two secondary hard drives (“sata” and “go”), as well as my main hard drive (“/”). And what’s with all these icons along the top with no text? I can hover the mouse over them to see what they are, and I should get used to what’s what were I using the software for all my photo managing needs, but it’s a bit scary for the first-time user. I don’t even know how to see my photographs just looking at this!

Actually, come to think of it, I never told blueMarine where my photographs are. I told it where to store data, but that’s it. This means my first stop may be the “Browse” section, browsing to “/home/album/Photos.blueMarine/”. Doing so, however, doesn’t seem to do anything.

Determining there must be a “photo viewer mode” somewhere, I click on the “Gallery Explorer” icon. After playing with that, including adding (then later deleting) a “Gallery”, I determine I’m not smart enough to use this program. I head to the “Help” menu, but find only an “About” item in there.

Next stop: The blueMarine web site, and their Getting Started page. Looking at the guide here, it shows setting up the initial workspace, then it shows viewing photographs. I’m still stuck in-between those two, as I have a workspace, but I cannot find out how to view my photographs.

There’s a menu called “Catalog”, but that appears to be for categorizing photographs. From the “File” menu, I can import photographs, but I want to leave my photographs where they are. Rather than leave without testing metadata features, I decide to go ahead and import, even though I wouldn’t use a photo manager if it requires importing photos.

blueMarine Import

The import interface lets me delete the originals on import and shows thumbnails of my photos. Or…it shows 18 “X” thumbnails for my nine photographs. I click on “Import” and get an error.

Maybe I’ll try blueMarine again one day when it isn’t in beta. Maybe the older version would have worked? I simply went to the web site and downloaded what was available for this trial.

digiKam

Next is digiKam. Again, we’re greeted by a first-run wizard, this one asking for two folders.

digiKam Setup

The first folder is where photographs will be stored, and it can be a folder already containing photographs. The default “/home/album/Pictures” is nice, but I’ll use “/home/album/Photos.digiKam”. Changing this also changes the second folder location to match. The second location is where digiKam will store metadata about photographs. I see no reason for me to change this to anything else, so I’ll keep it the same as the photograph folder location.

digiKam’s splash screen tag is “Manager you photos like a professional with the power of Open Source”. That’s good because managing photographs is what I’m looking to do.

The default screen for digiKam lists Albums, including the folder I gave at start-up, so I immediately click on that folder. This shows me my photographs, and I feel I can get right to work on it. As an aside, while I know digiKam allows for a light-on-dark interface, I’m glad that the default blends in well with my desktop’s interface, with dark-on-light colors.

digiKam Album

Looking at the interface, there are buttons along the top which include text telling what they’re for. I can “Search” or I can “View” or “Edit”, among other things. The side panels are icon-only, except for the currently-selected icon. Moving the mouse over one of these icons gives a tooltip of the icon’s text. Some of the icons are clear what they are for by looking at them, but others don’t make any sense to a new user. This might be intimidating if I didn’t have my photographs sitting in front of me, drawing my attention.

The first thing I notice looking at my photographs is that the comments in them are visible under the thumbnails. The first photograph has “A male Costa’s Hu…” beneath it. Good start!

Clicking on the “Albums” panel label on the left collapses the Album panel out of view. Clicking next on my hummingbird photograph brings up the “View” page for the photograph. This lets me view the photograph at a larger size, and provides a thumbnail stream below with photographs from the folder.

At this point, I want to add information to the photograph. If I left-click on the photo, I return to the thumbnail view, which isn’t my goal. There’s nothing that stands out and says “add information to this photo!” The right-click context menu does allow me to “Assign Tag”, “Remove Tag” (greyed out since there are no tags assigned), and “Assign Rating”.

I’ll go ahead and assign this hummingbird photograph as five-stars while I’m in the right-click menu. This updates the thumbnail below with five stars, which leads me to discover that I can set the rating on any thumbnail by moving the mouse over the rating area.

digiKam Rating

With mention of assigning tags in the right-click menu, I decide to tag this photograph as “hummingbird”.

digiKam Assigning a Tag

The “New Tag” window describes tags as being able to be in a hierarchy. This shatters my concept of hierarchical categories and loose tags as it merges the two together. It also suggests a strict “one parent” hierarchy, disallowing one child “category” to have multiple parent “categories”.

I was planning on using a “hummingbird” tag and a more complex categorization (“Bird->Hummingbird->Costa’s Hummingbird”), so I’ll enter “/Bird/Hummingbird/Costa’s Hummingbird” as the tag.

There’s also an option for adding an icon to a tag, which brings up system icons. There’s no way to select a photograph and crop a part of it to be resized and used for the icon, so I’ll skip that.

I’m going to need something more for editing metadata than the right-click menu for tags and rating, however. There’s an “Image” menu, and clicking on that shows a “Metadata” submenu. There I can “Edit EXIF”, “Edit ITPC”, “Edit XMP”, and “Edit Captions”.

digiKam EXIF

The “Edit EXIF” window allows editing the EXIF information, which is typically information about the camera settings used to take a photograph. This includes the photograph’s “Title” and “Caption”. There’s no visible way to import the existing caption into here, so I’ll avoiding filling out anything here just yet. The options for syncing this information with other photograph metadata does look promising, however.

digiKam IPTC

The “Edit IPTC” window allows editing the IPTC information, which “describe(s) the visual content of the image”, according to the window’s text. Here we have “Headline” (rather than the EXIF’s “Title”), and the “Caption” which is, again, empty. This is understandable as the photograph’s caption isn’t stored in the IPTC data, but it would be nice to be able to somehow “import” that information. As with the EXIF data, anything edited here can be saved to other metadata areas, but I won’t edit any “Comment” or “Caption” until I can work with my existing caption.

The “Keywords” section here looks like it matches where I’d like to use the word “hummingbird” (fitting into my concept of unrelated “tags”), but I won’t touch anything in here yet.

digiKam XMP

The “Edit XMP” window allows editing the XMP information, which also “describe(s) the visual content of the image”. Again, we get a “Headline” and a “Caption”, and syning information to EDIF, etc. We have “Keywords” here, as well. Again, without my pre-existing comment available to edit, I’ll skip this area.

digiKam Caption Editor

The “Edit Caption” window shows the caption I’ve been looking for! This is the caption edited via digiKam, it says, and it the caption digiKam read from the photograph. By leaving the “Sync” boxes checked, and clicking “OK”, all the prior data windows will have the “Caption” information filled in.

At this point, I want to go back to edit visual information about the photograph. Do I go to the IPTC window or to the XMP window? And why to the two have different icons for the same sections (such as “Content” being a book with a “?” on it for IPTC, but for XMP it’s a “T”?) It looks as if XMP supports more things (such as captions in different languages, which would be useful if captioning photos taken in another country), so I’ll work there. (It might be nice if it defaulted to my desktop’s langauge for the language selection.)

For “Content”, I add a “Headline”. In “Origin”, I input information about where the photo was taken (my photos do not contain GPS information). As I do this, I hope there’s some way to batch-add this kind of information. I skip over “Credits” information (wondering if there’s a way to have digiKam auto-input this information into photographs). “Subjects” looks too complicated. For “Keywords”, I type in “hummingbird” and press Enter, which closes the XMP window. Oops, I needed to click on “Add”, not press Enter. I’ll skip over the “Categories”, which has a “3 chars max” to “identify subject of content”. The “Status” information is used to “record workflow description”, which might be nice if digiKam uses this information in any meaningful way. For now, I’ll skip it. Likewise the “Properties”.

The first thing to note is that only the comment can be synced between these different metadata formats. The headline cannot be synced between them.

I decided to look for a way to have informtion about me, as the photographer, automatically added to photographs. From the “Settings”, “Configure digiKam” menu, I came across something else interesting.

digiKam Configure Metadata

This section is important because I want to be sure any changes I make to photograph information is available to other programs I may use. I do want the photograph caption saved, but all the “save … as tags” confuses me. What are these “tags” that they’re saved as? The Shift+F1 help text suggests it’s referring to the “EXIF tag”, the “IPTC tag”, and the “XMP tag”, but because digiKam uses “tags” for photograph categorization, and on this screen refers to “orientation tag”, it’s really confusing. I’ll just jump right in and check them all (except for the RAW one, as I’m only working with JPEGs for this trial).

digiKam Configure Identity

The next configure item down is what I was actually hoping to find. Here I can input information about myself to be stored in the photographs. I listed the author as “Christopher Fritz” and the copyright as “Creative Commons Attribution-Noncommercial 2.0 Generic”, which is the copyright I use for almost all of my photographs. I can manually change it for exceptions.

It isn’t made clear, but in order to update my existing images with this information, I need to “Album” menu’s “Syncronize Images with Database” option. I just randomly tried this option after seeing the credit information wasn’t automatically added to the images after filling it out in the configure. A “sync now” button on the credit configure page would have been nice.

At this point, there’s really nothing to direct me to the panels to the right, but I’ll go ahead and explore them. There’s a “Metadata” panel, which allows me to view the “EXIF”, “Makernote”, “IPTC”, and “XMP” data, but I cannot edit them, nor is there a convienient button to open the window to edit them.

digiKam Caption and Tagging Panel

The caption and tags panel allows me to change the caption, but there’s no “title” or “headline” option. I can change the date and time the photograph was taken, as well as the rating, and I can modify digiKam’s “tags” for this image.

I decided at this point to add information to the other images. They already have captions. I want to give them all headlines, but this would be too much work, going into each metadata submenu to add it. A headline is important to me, because I upload photographs to Flickr, and I would like this information to be the same between my offline collection and my online collection. Likewise, the hierarchy I want for this photograph might not 100% match the Flickr tags I want to use.

digiKam After Tagging

The concept of hierarchical tagging is a different way of thinking for me. What I’d really like is to be able to categorize an image of “Alisha Blake”, and have that image inherit tags such as “Dal” and “Another Rabbit”, which refer to the type of doll Alisha is.

Looking at the tag icons, some have a “tag” icon and some have a “tag in a tag” icon. What is the difference? Does this have any meaning? It confuses me.

One convienient thing about tagging in digiKam is that one can right-click on the tagging area and set “Toggle Auto” so selecing a tag will also select all parent tags (or all children tags, or both, or neither). Between that and a “Search…” box, one can easily hierarchically tag images.

The caption box underlines mis-spelled words, which allowed me to correct a couple of typos in the image captions. Very nice!

digiKam View Afterwards

Digikam doesn’t give me the power to do everything I want to do, but it does challenge me to re-think my proposed categorization, and suggests what might actually be a better way to “tag” images. It’s something to consider.

F-Spot

On first run, F-Spot asks for an “Import Source”. Now, the word “Import” always scares me because it sounds like it’s going to take images from where I want them, and copy them to where the program wants them. It didn’t even let me select a specific folder, only a whole hard drive. I planned to screenshot this, but F-Spot froze, and wouldn’t redraw the screen for a screenshot. After killing the process, and then re-running F-Spot, it didn’t display the import screen.

F-Spot Default View

The F-Spot interface is very simple. The first thing I want to do is tell it where my photos are. Except, I can’t find any place to do thsi. There is that “Import” button, with that scary “import” word in it.

I decide to give the “Import” button a chance. I click it, and the “Import” window opens, the same as before. It lets me select one of my extra hard drives, but neither of these hard drives contains my photos. My photos are on my main hard drive, which isn’t listed.

I decide to try the “Help” menu, and select “Contents”, but nothing opens. Okay, perhaps I’ll try the F-Spot User Guide on their web site. Here, I learn I want to go to “Edit” menu, “Preferences”, and change the “Import Settings” destination. It defaults to “/home/album/Photos”, but I want it to use “/home/album/Photos.F-Spot”. Well, at least that handles imported images. F-Spot doesn’t acknowledge any photos already existing there. When importing, by unchecking “Copy files to the Photos folder”, photos will be referenced rather than copied on import, but this doesn’t help it see the images on my main hard drive, in my user folder, which does not appear in the “Import” window.

Finally, I decided to drag & drop my photos from my file manager to F-Spot.

F-Spot Thumbnails

That’s a little more like it, but now I wonder what happens if I add some photographs from my camera. If I use F-Spot’s “Import” feature, it should be able to import them, but if I import them from a different program, will F-Spot not know those new photographs exist? Also, what order are these sorted in? It’s not by date taken, nor is it by filename.

By right-clicking on an image, I have the option to assign (or remove) a tag (with the default tags being “Favorites”, “Hidden”, “People”, “Places”, and “Events”, and to rate the image.

I decide to jump right in to tagging images. I can give a tag a parent tag, meaning that rather than a hierarchical category system and a loose tag system, a hierierchical tag sysem is used.

When adding a tag to a photograph, the first photograph given a new tag is used as the tag’s icon. The icon is used to represent the tag under the image’s thumbnail, which is confusing when both a parent and child tag use the same icon.

F-Spot Edit Image

Double-clicking on a thumbnail brings up that photograph in the “Edit Image” view. A comment can be added here, but it does not pre-load this field with the photograph’s existing comment. A rating can be assigned, and assign tags’ icons are listed,but there is no easier interface for tagging here.

Back in the “Browse” view, I soon find adding new tags, with the right-click interface, and adding one tag at a time, to be a real chore. Once a tag exists, I can drag it the tag onto a photograph to add that tag to the photograph, but a checkbox by each tag would be easier for adding multiple tags. One can select multiple tags by holding the Control key on the keyboard and clicking on each tag, but removing tags from an image seems to require the right-click menu to remove each individual tag. Also, one can select one or multiple photographs to drag onto a tag to add that single tag to the photograph. One can select multiple tags and select multiple photographs to drag multiple tags onto multiple photographs.

Adding tags can also be done from the “Tags” list, but doing do refreshes the list each time, causing the user to be taken back to the top of the list each time.

F-Spot Final View

From this trial, F-Spot seems to be more about importing and categorizing images, with no concern to any metadata of the image. The “Comment” data doesn’t write back to the image, so the same is likely true of the “Rating” data. As the saying goes, “What happens in F-Spot stays in F-Spot.”

The large size of the tags in a small area further makes it difficult to locate tags, and there’s no way to filter tags. F-Spot makes tagging be too much work for me.

KPhotoAlbum

Next is KPhotoAlbum.

KPhotoAlbum Splash

The thought of a demo makes me a bit hesitant. Do I need to go through a whole demo just to learn how to us this program? I’ll go ahead and click on the “Create my own database” button, although I’m a bit concerned about having to deal with a “database” to manage my photographs.

That button click opens a new window (advancing to a new screen in the same window would feel more comfortable). Regardless, this window asks for my “Image/Video root directory”. There’s a wordy explanation that basically says, “Point this to your photographs folder.” For me, this is “/home/album/Photos.KPhotoAlbum”.

Proceeding, I’m told that KPhotoAlbum now supports searching for EXIF data, and gives me the option to rescan my photographs. Sure, that sounds good. With only nine photographs, it doesn’t take long at all.

Next, I’m met with a dialog window suggesting I spend 10 minutes watching some introduction videos. I’ll skip this and jump right in, and hope KPhotoAlbum isn’t too confusing.

KPhotoAlbum Default View

The first thing I note that is I cannot see any photograph thumbnails, but there is a “Show Thumbnails” text, with “9 images” beside it.

Looking at the toolbar icons, which lack any text outside of hovering the mouse over them, they don’t look like anything exceptional. Mostly navigation, maybe searching. The menus also don’t seem interesting, although the thought of “Maintenance” is a bit scary.

I also see mention of categories, with the default being “Keywords”, “Places”, “People”, “Folder”, “Tokens”, and “Media Type”.

I’ll continue diving right in by clicking on the “Show Thumbnails” text, even though there’s actually no indication that I can click on it. The mouse icon doesn’t even change when moving the mouse over the text.

KPhotoAlbum Thumbnails

I don’t have any clue as to what order these thumbnails are sorted in. Also, the filenames under the images don’t seem to be very readable. Maybe it’s my system’s settings? I created a new user account on my computer to avoid any such issues as best I can.

Right-clicking on a thumbnail, I see I can “annotate” one or more photographs. I can also “Show Exif Info”, but that brings up an essentially blank page. I’ll focus on annotation.

Before the annotation screen comes up, I’m greeted with a dialog recommending I spend five minutes reading documentation on how to use “one of the most important windows in KPhotoAlbum”. I’ll pass, since I want to work with my photos, not read about how software works!

KPhotoAlbum Annotation

The annotate screen allows setting a “Label” for the image, which defaults to the image’s filename. I’ll treat this as the “title” or “headline” for an image.

Next is the date, which appears as “3. May 2009″. This wouldn’t be so bad if I weren’t living in the US and expecting “May 3, 2009″, as per my desktop’s localization settings. There’s also the option to make the date a range, which would be handy for a video, but I’m working only with photographs, so I’ll ignore that.

The photograph’s comment is successfully read and loaded into the interface. Good stuff.

Now, here’s my little secret: I’ve used KPhotoAlbum in the past, so I know a bit about how “annotating” a photograph works. Without this knowledge, I would be completely lost, and need to watch introducation videos and read documentation.

The idea, as best I know it, is this: You can categorize images however you want, but each tag falls under a parent category. For example, a photo of Linus Torvalds might be categorized “Linus Torvalds”, and that category’s parent would be the “People” category.

Now, here’s where things begin to get complex. Consider a main category, “Animals”. This can have a child category called “Birds”. Now, “Birds” can be given a “subcategory”, such as “Hummingbirds”, of which “Birds” is the “super category”. Any category under “Birds” can be a subcategory of another category under “Birds”, or can be a “super category” of another category under “Birds”. This also allows one category to have multiple super (or parent) categories, allowing me to put “Patches” as a subcategory under both “Pets” and “Cats”.

However, with all that control over categorizing super categories and subcategories, there is a price to pay: all categories under the main category are shown in a single list, with no way of knowing which ones are related in which way. There also doesn’t seem to be a way of selecting all parent or children categories.

KPhotoAlbum Settings

In order to change the main parent categories, I have to (as far as I know) go into the “Settings” menu, then “Configure KPhotoAlbum”. Here I can set parent categories such as “Animals” and “Pets” and “Toys”. From the annotation window, I can then click on the “Options” button to have it show these parent categories, which open as separate floating windows which need to be dragged into place on the annotation window. Very confusing stuff.

Even though I love the concept of multiple parent categories for one child category, I can’t like the concept of the overall parent categories. Sure, it’s nice to have a “People” and a “Places”, but then to have everything else fall under “Keywords” somehow doesn’t seem right. If I imagine the “Keywords” category as being “tags”, and ignore hierarchy there, however, it isn’t as bad. Even then, there’s still the issue of having parent categories such as “People” and “Places” and “Animals” and “Bugs” and other things which one wants to “categorize”.

I’m not even sure where I want to begin with categorizing things, as the whole concept of the main parent category totally throws me off. Since there are no features for handling other image metadata that I can find, I’m going to have to step away from KPhotoAlbum right here. I can see use for it for other things (I use it on my laptop for categorizing anime screenshots), but there’s no way I can use it for photographs.

Picasa

For Picasa, the first thing I’m greeted with (after the splash screen) is a license agreement! This usually is enough to turn me away, but in the interest of review, I’ve checked it over. It looks to be related mostly to an online Picasa account, which is useless for me to agree to if I’m not going to be uploading my photographs to a Picasa account.

Picasa Default View

The first thing Picasa does is find all my images for me. Except, that’s not what I wanted! I can see where some people will like this, but it’s indexed all my image folders. I have to right-click on each folder and select “Remove from Picasa”, then click “Yes” to confirm, to remove those unwanted folders.

That done, the interface for Picasa has a nice feel to it. However, there are a lot of buttons scattered about.

By single-clicking on an photograph, the bottom area of the window allows me to “Hold selected items” (what’s this?). I can “Add selected items to an Album” (this looks as if it’ll copy an image to another image folder of my choice). I can “Star” an image, which seems to be a primitive form of rating, but might actually be a method of selecting multiple images to work with.

Picasa Tags

The major icon for me in that bottom section is the tag icon, which allows tagging an image with loose tags. I can type in a tag (which Picasa wonderfully suggests auto-completion for me, clearly based on the comment in the image). After adding tags, the tags appear in the blue bar on the main screen where the filename, date taken, and other information appears.

Double-clicking on a photograph brings up an edit view, which allows for modifying a photograph, with instant-saving and changes. Thankfully it has an “Undo” button.

Beyond this, there’s no matter of categorizing images. I can’t have “Costa’s Hummingbird” and “hummingbird” and “bird” related in any meaningful way. The tags do get saved to the image as IPTC keywords, however, which is nice because other programs can pick those up.

Picasa Final View

Picasa is clearly designed for simple tagging, editing, uploading, and printing. Categorization is left to the user to manage with folder structure, which works so long as you don’t have one photo that should be in two places.