Photography with Open Source / Linux

Photography on the free software desktop has come a long way in recent years. All of the major desktop environments support camera import and provide image management and editing applications, including the all-important raw file conversion. But the desktop defaults are really geared towards casual users, optimized for point-and-shoot cameras and sharing photos online. Don’t be fooled by that, though; open source can and does offer the tools to support professional photographers and high-end enthusiasts.

Rather than drop in a long, bulleted list of applications, though, let’s take a look at what the open source alternatives are, task-by-task, to get a better feel for how the pieces fit together into a normal photographic workflow.

by Nathan Willis

Color correction

At the lowest level, the open source community provides several tools useful for calibrating and profiling your displays and printers, which is an essential step in the basic color-correction and adjustment process. You can start by creating an ICC monitor profile using either Argyll or LPROF. Each of these tools supports a range of hardware colorimetry devices, but the lists of supported devices is different (you can see Argyll’s here, and LPROF’s in its documentation).

Argyll provides step-by-step instructions for adjusting your display and creating an ICC profile for your display, creating a scanner profile using an IT8.7/2 target, and creating an output device (either printer or film recorder) profile. Argyll is natively command-line only, but you can use the dispcalGUI for a nicer graphical interface if you so desire. LPROF has a graphical user interface, and can give excellent results, but the online documentation is not quite up-to-date, which can be a problem for new users.

“DispcalGUI and LPROF’s display profiling capabilities.”

The lion’s share of Linux and free software photo editors are already ICC-aware, so once you have your device profiles created, you can simply open up the preferences of the various applications, go to the color management section, and add the necessary profiles. This is true for GIMP, Krita, Digikam, UFRaw, and Raw Therapee.

The popular Rawstudio raw converter is also color-aware, but it takes a different approach with respect to the profiles of raw image files themselves, so you need to be aware of the differences. It uses DNG Color Profiles (DCP), which are specific to camera models, and the application includes more than 200 DCP profiles by default, covering all major brands and models, so it should not be any extra work for you. You can read background information about the color transformation process on the Rawstudio blog.

All of the open source photo editors worth their salt include support for soft proofing and embedding profiles into finished images.

Image and shoot management

The gPhoto2 function library sits underneath almost all desktop Linux environments, providing uniform access to downloading images directly from cameras or from memory cards. GNOME and KDE will usually pop up a window to enable you to offload your images as soon as a USB camera or card is connected — although you can configure both desktops not to do so, and offload the images from your image management application instead.

When it comes to image management application, no two photographers agree. The most popular choice at present is Digikam, which has robust and flexible IPTC/IIM and EXIF metadata management, tagging and categorization, and a flexible search system to help you keep track of your image library. In a multi-user environment, you might also want to check out ResourceSpace, which uses a web-app interface. ResourceSpace can be used to manage a collection remotely, and allows users to set up image collections and request sets based on the available library; it could be useful for interacting with clients.

“Digikam is a powerhouse at image management — shown here is the advanced search interface.”

For more workflow-oriented control, the application Darktable allows you to sort, filter, and batch-edit images by shoot. It also includes plenty of image-editing tools, and is extensible with plugins. The only serious drawback to Darktable is that the current release lacks ICC profile support, but it is schedule to appear in updates soon.

The newer Darktable application combines workflow tools and raw conversion.”

If disaster strikes, in the form of an accidentally-erased memory card or a lost backup drive, you can install the open source file recovery tool PhotoRec to recover deleted images. Like all data recovery tools, PhotoRec can only recover files that have not been overwritten by newer content, but when possible, it can work wonders — scanning multi-gigabyte drives and cards in mere minutes and pulling out photo content you otherwise would have lost.

Raw editing

Most of the software already mentioned supports raw photo file formats, particularly UFRaw, Rawstudio, RawTherapee, Digikam, and Darktable. Of those, the first three are focused raw conversion tools, and offer the widest range of exposure controls, tone curve and other image adjustments, de-noising, and sharpening controls. You can save your adjusted images in a range of output formats, including 8-bit or 16-bit TIFF, as well as JPEG. Thanks to the LensFun library, most of the raw editors now include optical correction for barrel distortion, color aberration, and other lens artifacts. All are also lossless editors, so you do not have to worry about making destructive changes to your originals.

Choosing between the three raw editors is tricky; each offers its own unique set of features, but ultimately there is no reason not to have all three installed — as free software, the cost to you is the same.

“Editing a photo in UFRaw. The same photo is shown for comparison in Rawstudio and RawTherapee.”

“Editing a photo in Rawstudio. The same photo is shown for comparison in UFRaw and RawTherapee.”

“Editing a photo in RawTherapee. The same photo is shown for comparison in Rawstudio and UFRaw.”

Historically, all of the raw-supporting open source editors relied on a program called DCraw, written and maintained single-handedly by Dave Coffin, for raw decoding support. DCraw is great, and consistently updated as Canon, Nikon, and other manufacturers make changes to their file formats. The problem was that each project incorporated the DCraw code into its own editor independently. A recent change in this area is the development of LibRaw, a shared library that any program can connect to. This should help all of the editors maintain better compatibility, establish a common API, and let the programmers work on other important tasks without duplicating their efforts. LightZone and Bibble. Neither is open source, but if you are used to working with either on Windows or Mac OS X, it can simplify the transition knowing that you can move to Linux for all of your other needs and still have access to the software you are used to (and, in most cases, have already paid a license fee for).

Finally, if you are new to Linux as a platform, you may be surprised to see that there are several commercial raw editors available on Linux, including

Retouching

For retouching images, such as dust and blemish removal, you have several open source options. Krita, mentioned above, is a drawing and painting app that supports many photo editing features — cloning, healing, filters, layers, masking, and much, much more. Krita also has the advantages of letting you work on 16-bit native images, in the RGB, La*b*, or XYZ color spaces.

“Krita, retouching a 16bit-per-pixel depth image.”

GIMP does not fully support as many file type options as of today; support for 16-bit images is being added in the development branch, so you can try it out if you are feeling a little brave. On the other hand, where GIMP excels is in its extensive tools, scripts, and plugins. If you can make your final image adjustments in UFRaw or Rawstudio, you can export the result to GIMP for retouching.

“GIMP, showcasing the configurable Wacom tablet support.”

There are several other apps useful for retouching and general image manipulation, including Fotoxx and Nathive. A special mention belongs to Cinepaint; this application diverged from a much older version of the GIMP, and was re-tooled to support 16-bit and higher images for working with cinematic film effects. Unfortunately, it has not been actively developed for quite some time; the project claims that a rewrite is in development, though, so it could help to keep one eye on the project.

All of the image editors mentioned support pressure-sensitive graphics tablets, from basic USB devices providing only pressure support all the way up to expensive options from Wacom like the Cintiq, which incorporates an LCD display directly into the tablet for on-screen editing, and supports multiple input devices, tilt-sensitivity, and other enhancements.

Effects

The raster image editors Krita and GIMP support endless options for special effects, including duotones, vignetting, and almost any kind of transformation. GIMP’s scriptability and plugin system mean there is an endless supply of effects options. Besides the purely creative, noteworthy are some powerful adjustment tools.

Liquid Rescale, which can “intelligently” re-size an image, preserving important features like people, and compressing background information. SIOX image extraction can pull a foreground element out of a picture by intelligently finding its borders with only a rough outline drawn by hand — far faster than you can trace out the element with selection tools. Resynthesizer and G’MIC can generate realistic-looking image fills to replace edited-out details, drawing automatically on the image’s contents. This makes it easy to remove a stray object without having to paint over the spot in question with the clone tool alone.

Hugin is an app designed to stitch and blend images together seamlessly, creating wide-screen or even 360-degree panoramas (in a variety of projections and file formats). On top of that, it can correct distortion and lens aberration, perform perspective corrections such as those needed for architectural projection, and combing multiple images into focus stacks — where one image with the foreground in focus is seamlessly merged with another where just the background is in focus.

 “Hugin previewing a stitched-together wide-angle panorama.”

Luminance HDR is a tool you can use for tone mapping multiple exposures, either to capture a high-dynamic-range scene and map it into a regular TIFF or JPEG file, or to perform other exposure tricks. Although Luminance HDR is a stand-alone app, tone-mapping is beginning to make its way into other open source photography tools, and may some day be a common feature.

Publishing

Some of the open source image managers, such as Digikam, support direct export of files to online photo hosting sites like Flickr. For a custom web gallery, there are an array of open source options available, such as Gallery, Plogger, and Zenphoto.

Direct export to one of these packages is not usually available from within image managers or photo editors, but there are a few exceptions, such as Digikam’s Pwigo export, and direct export is sometimes possible through a plugin. Most of the web gallery packages are based on standard Apache packages like PHP and MySQL. They vary considerably in the feature set and ease of configurability, though. Some, like Flash Gallery, can create effects such as slide shows, while others are tuned more for sharing and online discussions.

By and large, they are designed with multi-user galleries in mind, not with creating a portfolio site for a single photographer, and none (at the moment) are written to facilitate photographer-client proofing or print ordering (although this may change). Consequently, features like content tagging and geotagging are widespread, but features like selective access control are not.

Your best bet at developing an online photo hosting site for your work is probably to contract out some customization work to a web developer — one of the nicest things about open source is that the code is available for anyone too work with, including yourself, but including a short-term contractor as well.

If you have your images professionally printed, of course, you have no need to worry about operating systems. You can upload files to online print bureaus via Firefox (or any other open source browser) just like anyone else; these days your only real concern is if your print bureau uses a Flash-based interface, and even that is doable on normal, 32-bit Linux systems, which have good official Flash support.

Direct printing in Linux covers inkjet, laser, dye-sublimation, and exotic printer and ink types, primarily through the Gutenprint project. There are a few special-purpose print tools like Photoprint and Krokus that offer fast multi-image-per-page printing, but for the most part, good printing support comes built-in. The ICC profiling tools mentioned at the beginning cover output devices, too, as long as you put in the work to characterize your device.

Crazy stuff

The preceding paragraphs cover most of the day-to-day photography tasks you are likely to juggle for a typical digital photo job, but open source software rarely stops at playing it safe. There are some hidden gems in the free software photography world that you might not have heard of.

For example, the gPhoto2 utility, mentioned earlier as the library that offloads images from cameras and memory cards, has a few other tricks up its sleeve for cameras attached via USB cable. You can use gPhoto2 as a tethered shooting system for dozens of Canon, Nikon, and Olympus cameras, from point-and-shoot compacts to high-end DSLRs. How much control over exposure configuration, zoom, and other features you have depends on the camera itself, so check the remote controlling cameras page in the gPhoto2 documentation to see what capture options are available. Tethered shooting allows you to more quickly assess images on your computer’s screen, show them to clients, and copy files directly to hard disk, removing flash card size limitations. But it also opens the door to scriptability and other computer-control options, as imagination allows.

Even better than tethering, there are several open source projects to build enhanced firmware for popular digital cameras, adding new features beyond the factory settings. Similar work has gone on for years with Linux-based routers and set-top boxes, with great success, so it should come as no surprise that cameras attract a similar hacker crowd. The two main projects are CHDK, which offers builds for Canon compact cameras using the Digic II and Digic III chips, and Magic Lantern, which targets the EOS 550D and 5D Mark II.

CHDK can enable features from raw file output and full manual exposure to video zooming and motion detection. Nightly builds are available for a wide range of camera models. Not all features are possible on every camera, of course, and some cameras have more stress-tested firmware than others, so it is a good idea to consult the project’s wiki to see what is currently available.

Magic Lantern focuses on enhancing the video shooting capabilities of the high-end Canon DSLRs, including manual gain control, custom focus and bracketing, and improved audio monitoring. Magic Lantern is newer, and thus far does not support as many camera models, but several more are on the way. Best of all, because CHDK and Magic Lantern do not override the camera’s original firmware, they are both safe to use without risk of damage. You load the firmware image onto the camera’s memory card and power-cycle the camera while holding down a special key; to return to the stock firmware, just power-cycle the camera like normal.

Finally, there is an enthusiastic community of open source coders working on extending the features offered by the popular Eye-Fi brand SD cards, which add WiFi connectivity to inexpensive digital cameras. Eye-Fi hacks include direct upload (as opposed to funneling photos to a user account managed by Eye-Fi) and a host of other tricks; there is even work to integrate Eye-Fi usage with CHDK.

Photography is a fast-moving sector in the Linux and open source software world; perhaps because it sits at the nexus of so many left-brained and right-brained tasks it attracts a very enthusiastic user- and developer-base. Adobe and Apple may ingore the open source photographer crowd, but the fact is that the crowd basically doesn’t need them.

BY NATHAN WILLIS

31 thoughts on “Photography with Open Source / Linux

  1. Pingback: links for 2010-09-01 « Where Is All This Leading To?

  2. Pingback: Digital Photography on Linux « Aptivate | A Blog for ICT4D

  3. John H

    Thanks Nathan for your comprehensive article. A neat viewer that I use is Geeqie. It can view common RAW file types and handles exif data. It finds links to your editors and gives you the option of editing the displayed picture with. I use Fottox for panarama work.

  4. Pingback: Fotografering på Linux | Linux Nyheder

  5. Alexandre

    “The only serious drawback to Darktable is that the current release lacks ICC profile support”

    Ts-ts-ts, and the review was starting so well 🙂 Please re-check: it’s right here 🙂

  6. Pingback: Open Source Photography » Photography with Open Source / Linux

  7. Pingback: Open Source Photography » Photography with Open Source / Linux

  8. Pingback: Matt Jones » Blog Archive » links for 2010-09-04

  9. Pingback: Open Source Tools For Professional Photographers | @tuxguru

  10. Pingback: Editing Photo’s in Linux | Scott's Home Page

  11. Nate

    Alexandre,

    I know a new release snuck in there in between when this was written and published, but I still haven’t found any way to assign a display profile. Do just mean it reads input profiles, or something else?

    Nate

  12. Kevin Brubeck Unhammer

    Great article 🙂

    btw, I think there’s a copy-paste mistake:

    “Finally, if you are new to Linux as a platform, you may be surprised to see that there are several commercial raw editors available on Linux, including”

    this should start the preceding paragraph, no?

  13. Pingback: 7 enlaces 7 (y LXV) : Un lugar en el mundo…

  14. Pingback: Open Source Tools For Professional Photographers – Kabar seputar Linux dan Free n' Open Source Software / FOSS

  15. Pingback: Photography and Linux « 0ddn1x: tricks with *nix

  16. Pingback: Photography With Linux « Linux Fanatics

  17. Pingback: Open Source Tools For Professional Photographers | Open Source Tools For Professional Photographers how to linux | Open Source Tools For Professional Photographers > | How to Linux, Linux Help, Ubuntu Help

  18. Pingback: Photography in linux? free photo editor? | Landscape Photographic

  19. Pingback: How PhotoRec saved my marriage | Blog of manudurand (Emmanuel Durand)

  20. Pingback: Open Source Photography Software | Content delivery network

  21. Pingback: Photography with Open Source « TechLedger

  22. Pingback: Set Up a Photoblog in 4 Easy Steps | Worldlabel Blog

  23. Pingback: Linux fotósoknak, linuxos fotó programok

  24. Pingback: Open Source fotografi « tommix

Leave a Reply

Your email address will not be published. Required fields are marked *