Manage Your Photos with F-Spot
During the past several years, my wife and I have been trying to organize our ever-increasing collection of digital photographs. First, lacking a digital camera, all we had to do was organize the photos we had scanned. Because scanning was a tedious process, we scanned only the photos we felt were the most important—births, weddings and other life events. This kept the numbers low and manageable. However, once we purchased our first digital camera, our collection of digital photographs quickly grew out of control. With an effectively infinite supply of “film” we suddenly found ourselves “needing” to record each and every moment of our children's lives.
For a long time, the organizational method (if you could call it that) was to take photos until the memory card on the camera was full and then pull them off of the camera and shove them into a folder with a name corresponding to the current date. This was less than ideal, especially because with a large memory card, we could take several hundred photos during a period of a few weeks before it filled up and became necessary to transfer them.
We also had no way to find, say, all of the photos of a particular child easily. Other than knowing when the photos were copied off of the camera, the photo collection was an unorganized mess. Thankfully, F-Spot came to our rescue in a big way.
F-Spot is a photo management application for the GNOME desktop. It is one of a growing number of Linux applications built upon Mono, the open-source implementation of Microsoft's .NET platform.
The F-Spot program is available in the package repositories of most Linux distributions, including Fedora, Ubuntu, SUSE, Debian and others—basically any distribution that comes with a recent version of GNOME. Therefore, as a first stop, check your distribution's package repositories. Or, if you're a command-line person, you can install F-Spot as easily as typing apt-get install f-spot for Debian and its derivations, such as Ubuntu.
If installing from source is your only option, you can download the source from the F-Spot Web site (see the on-line Resources). F-Spot requires that you have the GNOME development libraries, Mono, SQlite, libgphoto2 and a few other libraries installed and configured on your system as specified in the README in the tar.bz2 source file. Once the prerequisites are taken care of, installing it is a simple ./configure; make; make install; three-step process.
After installing F-Spot, the first task is importing existing photos. Choose import from the File menu and then Select Folder from the Import Source drop-down menu. This brings up a file selection dialog. Navigate to the folder where you have been keeping all of your photos, and click Open.
After you choose a folder from which to import, F-Spot searches through the folder and loads thumbnails of the photos it finds. Then, select the Copy file to the Photos folder and Include subdirectories check boxes, and click Import. In my case, at this point I sat back and watched as F-Spot imported and organized several years' worth of photos.
Importing from a digital camera is likewise a very easy process. Simply connect the camera to your computer, and choose the camera from the Import Source drop-down menu. F-Spot recognizes most digital cameras automatically.
F-Spot organizes your pictures in a folder in your home directory called Photos. It subdivides that folder into a folder for each year, and those folders have subfolders for each month and then another for each day. The program figures out the appropriate dates by reading the EXIF metadata from the photos themselves. As long as the clock on your digital camera is set correctly when you take photos, F-Spot files it correctly.
Digital cameras record all sorts of information in the picture files they create, such as the f-stop used, whether the flash fired, the manufacturer and camera model, the exposure time and much more. You can use the Metadata Browser, found in the View menu, to look at this information. It is not editable, but it is interesting to look at, especially if you are a photography enthusiast.
If the metadata is missing for whatever reason, F-Spot sets the date using the creation date stamp on the file, which is usually not accurate. F-Spot can add the date metadata to the picture files that don't have it. This came in handy especially for us with the the 35mm photos that we have scanned over the years, which did not have any metadata associated with them. I also found several photos that, although most of the metadata was intact, had incorrect dates associated with them, probably due to an incorrectly set clock on the digital camera that took the picture.
Fixing the date is easy; simply choose Adjust Time from the Edit menu. This brings up a dialog for adjusting the date down to the second (if that's what you want). You also can select a group of photos, say, from a party, and have F-Spot space them five or ten minutes apart automatically (or however many minutes apart you choose), which ensures that they stay in the proper sequence.
Once you organize your photos more or less by date, you may want to tag them. Tags in F-Spot work like an extra layer of organization on top of the physical time-based scheme. F-Spot comes with a fairly generic set of tags: Favorites, Hidden, People, Places and Events. I added tags for each of my children, and also tags for clipart, landscape photos, desktop wallpapers and so on.
Tags can be nested as well. For example, all of the tags for my children are nested under a Family tag, and my Wallpapers tag is subdivided into Abstract, Landscape and Other.
Photos also can have more than one tag associated with them, so for photos with more than one child in them, I simply tagged them with every child in the photo. You can add tags by dragging the appropriate tag to the photo or by dragging the photo and dropping it on the appropriate tag. To save time, you also can do this with several photos selected.
After tagging all of my photos, I can easily view only the photos I want, such as landscape desktop wallpapers, by selecting the check box next to the Landscape tag. If instead I want to look at all of my wallpapers, I simply check the parent Wallpapers tag.
The tagging feature also comes in handy with another of F-Spot's useful tricks. It can function as your desktop screensaver. Enable this mode via the F-Spot preferences dialog under the Edit menu. From the preferences window, choose which tags to pull photos from. The screensaver itself is nothing fancy; it is just F-Spot's Slideshow mode, which crossfades between the photos—no panning or zooming here—but at least, thanks to specifying the tag, you are guaranteed F-Spot displays only the photos you've chosen.
The preferences window has only one other function: to enable or disable the writing of metadata back to the image formats that support metadata.
In addition to serving as a screensaver, F-Spot has other neat GNOME desktop integration tricks. For example, to select a photo (or photos) to e-mail to someone, choose Send Email from the File menu, and F-Spot opens a new Evolution compose window with the images already attached. You then can compose your message and send it without having to launch the complete Evolution application.
Apart from desktop and e-mail integration, F-Spot also can interface with the Flickr Web site. Flickr is a photo storage and sharing Web site owned by Yahoo. Access this option from the Export submenu of the File menu. F-Spot takes you through a brief setup process the first time you use it and from then on it remembers you.
Uploading a large amount of photos to Flickr can take a long time, so it is best to upload in small batches. Slowness aside, uploading to Flickr is fairly painless and much easier than uploading the photos manually.
You also can export your photos to a folder on your computer—as a basic but attractive photo album Web site, or simply as a folder of photos.
If you are looking for a simple way to back up your photos, you can export directly to a CD. The CD-burning feature uses GNOME's built-in CD burning facilities—another GNOME integration trick.
Like most photo management applications, F-Spot includes several basic photo editing controls. Enter editing mode by double-clicking the photo you want to edit or by selecting it and then clicking on the Edit Photo button on the tool bar. The editing features are basic, but very serviceable. Photo rotation, red-eye removal and cropping to various standard or nonstandard photo sizes are all easy to do, as is converting photos to black and white or sepia tone. The color adjustment window lets you tweak the exposure, saturation, brightness, hue, contrast, temperature and tint of your photos to your heart's content.
If you find yourself needing more editing power, right-click on an image and open it in The GIMP. F-Spot will even suggest that it create a new version of the photo to protect the original version.
In fact, if you change your mind about any of the edits you have made, you easily can revert back to the original version of the photo that existed when it was first imported into F-Spot. F-Spot does this by implementing a simple versioning scheme to protect the original and subsequent copies of the picture. Any time you make an edit, it does so on a copy, and you can create a new version of a photo manually at any time to tinker with it and not worry about irretrievably damaging the original or any prior version.
For all of its good points, F-Spot is not perfect. At the time of this writing, it is at version 0.1.11, and the application feels less than polished in a few areas.
Tag searching is one such area. As explained earlier, you search by tags by selecting the appropriate check box. It would make sense that by doing this on several tags, you could narrow your search to only those photos that are associated with all of the tags—sort of like what Google and other search engines do with keywords when I am looking for something on-line. Instead, F-Spot broadens your search to include all photos that have any of the tags. This can be useful in certain situations, but without a way to alternate between searching on all or any of the selected tags, the search feature is, in my mind, broken.
Another annoyance is F-Spot's Gallery integration—it does not work, at least, not with the latest versions of each as I write this. Gallery is an open-source set of PHP scripts that you can use to add a photo gallery to your Web site. The integration with Flickr is nice, and it works well, but I'm not a Flickr user. I do like and use Gallery though, so the broken Gallery support in F-Spot was a let down. Hopefully, this is a temporary problem that will be fixed by the time you read this.
CD burning is another area that could be improved. It works, and works well, but not if you use 650MB or 700MB CD-R or CD-RW discs or, apparently, recordable DVDs. If you have only a couple hundred megabytes of photos to back up or 3GB, the disc images F-Spot creates are sized for 800MB CD-R and CD-RW discs only. There should be a way to choose what size media you intend to use and have F-Spot create its ISO images accordingly.
Finally, it would be nice if some of the photo editing features were a little easier to use. I can tweak the exposure, saturation, brightness, hue, contrast, temperature and tint of my photos, but I usually end up making my photos look worse, not better. Some automated “enhance photo” scripts would be nice or even something as simple as an “auto-levels” feature, such as you can find in The GIMP.
Despite these annoyances, F-Spot is off to a great start. It has not been around very long, and it already is one of the better Linux photo management programs. The GNOME integration and list of features already put it head and shoulders above gThumb, my previous choice for photo management in GNOME. As more developers add their support to Mono and its growing list of applications, F-Spot can only get better and better.
In the end, F-Spot became my photo manager of choice because it has brought order and sanity to my ever-growing collection of family snapshots. If you're a GNOME user, or curious about Mono, you owe it to yourself to give F-Spot a try.
Resources for this article: /article/9191.
Daniel Bartholomew has been using computers since the early 1980s when his parents purchased an Apple IIe. After stints on Mac and Windows machines, he discovered Linux in 1996 and has been using various distributions ever since. He lives with his wife and children in North Carolina.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Dealing with Boundary Issues
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- SUSE – “Will not diverge from its Open Source roots!”
- System Status as SMS Text Messages
- Bluetooth Hacks
- October 2015 Issue of Linux Journal: Raspberry Pi
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- New Products
- Linux and the Internet of Things