f-spot vs digiKam
Since I have been having a digital camera since a few weeks now, I've had a need for an application to manage my pictures. The two applications that people have pointed me to are f-spot and digiKam, which also seem to be the most popular applications in this category for Linux. Since I use neither KDE nor GNOME as my user interface, it doesn't matter much to me which I install; so I've tried them both. Their feature set is quite different; unfortunately, though, they both have some features which the other doesn't, which makes choosing for one or the other rather hard.
Since their on-disk format is rather different, it's impossible to use them both at the same time—at least not if I don't want to enter commentary and tags each and every time; so I'll have to choose one or the other based on their features. Since that requires me to actually compare them, I thought I might as well make a blog post out of that. Note, though, that this comparison is in no way intended to be complete; it only compares those features which I really care about.
Features
digiKam
- Stores pictures in
albums
; these albums can be created hierarchically, and are created on disk as the directory lay-out in which to store pictures. One picture can be chosen as anexample
picture per album. - Pictures can have tags, comments, and a score (on a scale of one to five stars) applied to them. Tags can be created hierarchically; the default tagset is empty. Tags can be made to have icons that are otherwise available to KDE attached to them, to make them more immediately visually recognizable, but selecting pictures to fulfill that function seems impossible.
- Has an interface to manage pictures in gallery and gallery 2; it can view, add, and remove pictures in that gallery.
- The selector dialog which is used to upload pictures is rather spartanic; it allows one to select pictures by filename and by album; pictures aren't even shown before upload (bug filed).
- Pictures can be filtered by tag, album, or date; I haven't been able to find an interface to filter pictures by score (it is possible to sort them by score in any view, though).
- A KDE application, so written in C++, which is a compiled language; i.e., rather fast.
F-spot
- Does not know the concept of
albums
- Pictures can have tags and comments applied to them. Tags can be
created hierarchically; the default tag set contains (amongst others)
People
,Places
, andEvents
, suggesting that f-spot encourages the use of tags where Albums would be used in the case of digiKam. Tags can have icons which are otherwise available to gnome selected as their icon, or one can select a picture to fulfill that function (in fact, it selects the first picture which receives a tag to do that by default) - Does not know the concept of scoring; instead, the default tagset
contains a tag
Favourites
, suggesting a scoring system with a binary scale. - Uploading pictures can be done by selecting them, and choosing the right option in the menu system. As a result, all filtering options otherwise available can be used to select which pictures to export (just filter the view, then select all pictures in the view).
- Uploading pictures will optionally also export comments that were applied to it.
- Since it does not know the concept of
albums
, pictures cannot be stored in a one-directory-per-album lay-out. Instead, pictures are stored in a one-directory-per-day layout, using a yyyy/mm/dd format. Unfortunately, this also means that no picture metadata (tags, comments) is easily available to command-line applications. - Apart from the ability to upload pictures to gallery or gallery 2,
does not interface with it in any way; gallery is a
write-only
storage medium to f-spot. - Written for mono, a system that requires a runtime environment to translate instructions at runtime from some sort of virtual machine code, and which uses garbage collection all over; i.e., rather slow, especially after you've been using it for a while.
My opinion
After having used f-spot for a few weeks before I tried digiKam, I
have to be honest and say that I don't like the concept of
albums
. They do not add value; everything they allow you to
express can equally well be expressed with tags. Additionally, one can
categorize a picture in only one album
, whereas it's possible to
categorize pictures in as many tags as you would want. Just creating one
album which contains all my pictures, with tagging used for
categorizing, doesn't help either; that way, digiKam would store all my
pictures in a single flat directory, which would become problematic when
the number in the picture filenames wraps around.
I do love the scoring thing in digiKam. A favourites
tag just
doesn't cut it; and creating five tags for scoring would make things
like find all pictures that have a score of three or above
rather
cumbersome, and sort by score
outright impossible. However, the
fact that it's not possible to filter by score makes it all rather
useless.
The export to gallery
function in digiKam is horrible. I have
to select my pictures blindly; none of the metadata which I tack on them
can be used to help select which pictures I want. Workaround: use
whatever filtering is available to select the right pictures and add
them to a temporary album from which I then upload all pictures, but
that's silly (and requires disk space for no good reason). Additionally,
there seems to be a bug in
the interface, which means that I have to babysit an upload (with no
workaround). And I can't even
view my pictures to spend the time waiting. Bah.
F-spot isn't without problems of its own. Due to a bug in mono, it crashes rather often on my PowerPC laptop. When that happens, it can't be restarted until the X server is restarted. Workaround: use Xnest, but that makes it impossible to view pictures in full-screen mode.
Also, since f-spot is a GNOME application, its options
dialog
is as helpful as a pair of soccer shoes when you're out swimming. No
surprises there.
Conclusion
Which one do I prefer? I'm not sure. The digiKam upload interface is
positively annoying, especially the bug which requires me to click
continue
after every picture. For that alone, I might ditch it.
On the other hand, it has a slew of interesting features (the scoring,
to name one) that f-spot lacks, and that pull me more towards
digiKam.
I guess I'll have to give it a few days of thought. But hey, at least I know where I stand now.
GThumb is another app to manage photos. It is written in C. Homepage: http://gthumb.sourceforge.net Features: http://gthumb.sourceforge.net/features.html
Why choose f-spot and not gThumb (the official Gnome photo manager) ? it's (IMHO) a very good software.
If you haven't already, try 0.9.0. Among other improvements, it allows you to choose any photo as a tag icon. Here's a nice sample screenshot:
http://alphapapa.net/temp/digikam%202006-11-26%200051.png
It is possible to combine human-friendly folders with f-spot. When transferring photos off the camera, I just drag-and-drop them in Nautilus (or use the command line if I'm feeling l33t that day) into a folder scheme which goes, for example:
~/Photos/2006/November/Trip_to_Aldeburgh
and then import to f-spot from there, making sure to uncheck the "add to Photos directory" option to avoid them getting copied to ~/Photos/2006/11/03 or whatever. A tiny bit more hassle, but results in a saner directory scheme than f-spot's own (and one which then actually makes f-spot's "view by directory" option usable...)
Based on your useful comments and my needs, I just tried digikam. Really looks like what I was looking for. Albums just correspond to directories on your disk, as subdirectories of one main "~/Pictures/" (or whatever) directory. One can just ignore them if tags are enough. Importing is thus fast : just move/copy your picture into a subdirectory of ~/Pictures, digikam will find them. This is a task that file managers handle well (provided the camera is seen as an external storage device).