Color Management and Photography
Free/libre software doesn't write itself. If you use free/libre software, find a way to contribute:
- Participate in user forums
- Write bug reports
- Contribute code
- Contribute documentation
- Send money
- Whatever makes you happy, find a way to give back to the communities that makes free/libre software possible.
If I may single out two projects for special attention: ArgyllCMS needs monetary contributions. And GIMP needs programmers, preferably programmers who understand ICC profile color management.
The philosophy behind the color management articles and tutorials
Many times, articles on color management assume that all the reader really wants to know is which buttons to push. On this website the first assumption is that you want to understand enough about color management to make your own intelligent decisions.
The second assumption on this website is that you run Linux and use free/libre software. Most articles on the internet that discuss color management assume that you run a proprietary OS and use PhotoShop.
Fortunately the principles of color management are the same regardless of which operating system and which software you use. If you use a proprietary OS and you want to try any of the concrete examples provided in the articles, most free/libre imaging software also runs on Windows and Apple. The only difficulty you might encounter is with some of the command line examples, as the exact syntax does vary slightly from OS to OS.
I have no particular philosophical quarrel with proprietary editing software. But I do object to the idea that the artist's own work should be locked into a proprietary file format such as PhotoShop's PSD. Adobe's move to the cloud has made this issue of who controls access to the artist's work crucially important. The Creative Cloud license agreement itself is onerous and one-sided. Once the artist stops paying the subscription fee, she loses access to the software that unlocks the proprietary PSD format that contains her creative work.
Recent and featured articles
- A tutorial on GIMP's very awesome LCH Blend Modes
This tutorial introduces the very awesome GIMP LCH blend modes and provides examples using the LCH blend modes first to repair a color image, and then to colorize a black and white rendering of the repaired color image. Results using the LCH blend modes are compared to results using the old HSV blend modes.
- Photography Workflow using High Bit Depth GIMP
When editing photographs, it helps to have a well-defined workflow. My workflow consists of four sequential modules: preliminary color management steps, interpolation and image repair, image manipulation to meet artistic goals, and preparing the final image for display. High bit depth GIMP is my image editor of choice.
- User's Guide to High Bit Depth GIMP 2.9 Color Management
High bit depth GIMP 2.9 still has a lot of hard-coded sRGB parameters. If you edit images in other RGB working spaces such as AdobeRGB1998 or ProPhotoRGB, all the operations that use these parameters produce incorrect results. This user's guide tells you which editing operations to avoid when editing in wider gamut RGB working spaces and provides workarounds for dealing with issues created by the presence of hard-coded sRGB parameters in the code base.
- Models for image editing: Display-referred and scene-referred
This article explains the similarities and differences between display-referred and scene-referred image editing. Even though the two models serve very different image editing goals, both models work with bounded RGB data. Display-referred RGB data is bounded by Color, which is to say by both Luminance and Chromaticity. Scene-referred RGB data is bounded only by Chromaticity.
- How to Make a Better Custom Camera Input Profile that's also an RGB Working Space
This article shows how to use ArgyllCMS and a target chart to make a better general purpose custom camera input profile that is color balanced and normalized. The resulting camera input profile is well behaved and so can also be used as an RGB working space for editing your interpolated raw files.
- From sRGB color space to sRGB profile: how to calculate the ICC sRGB profile primaries from the sRGB color space specifications
This article provides a step-by-step worked example of performing a Bradford chromatic adaptation to calculate the D50-adapted ICC sRGB profile red, green, and blue primaries from the unadapted red, green, blue, and white xyz values given in the sRGB color space specifications.
- A Review of FLOSS Raw Processors, Part 1 (revised and updated)
Part 1 of a review of free and open source raw processors compares seven free and open source raw processors — dcraw, darktable, the digiKam raw processor, Photivo, Rawstudio, RawTherapee, and UFRaw — "by the specs", without looking at actual interpolated output. This review only considers features relevant to radiometrically correct raw processing and not other features such as image enhancing algorithms or digital asset management.
- What are 'Clipped Colors' from ICC Profile Conversions?
You've been told that converting an image from one color space to another can result in clipped colors. But how, why, and where does the clipping actually happen? This article shows you a real-world example of clipped colors in the image itself, in the image color gamut as seen from inside the CieLAB reference color space, and in the image's individual red, blue, and green channels.
- Color Management Experiment Kit: If seeing is believing, how much does your monitor profile matter?
There are two approaches to learning anything: Learn theory and then try to apply it. Or (my preferred approach) start experimenting and worry about theory later.
This 'Color Management Experiment Kit' is for exploring the difference a monitor profile makes in what you see on your monitor screen. It has ICC monitor profiles to play with, experiments to try, and images to try them on. Think of it as the digital darkroom equivalent of being handed a kid's chemistry set, except the only thing you'll risk blowing up is a few pixels.
- Unbounded sRGB as a universal color space for image editing is a really bad idea
Unbounded sRGB can be used to encode and display any RGB color. Nonetheless, unbounded sRGB is not suitable for use as a universal, "one size fits all" color space for image editing. Many editing operations are chromaticity dependent, giving different results in different RGB working spaces. Choosing the right working space for the task at hand is the photographer's first, and critically important, technical and artistic decision.
- Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs
This tutorial was written in the hope that it might be of use to technically savvy people who know a whole lot about the code and the mathematics that goes into making an image editing program, but perhaps not so much about color spaces and ICC profiles. It also serves as a pretty good high-level overview of color science for non-coders.
- Will the Real sRGB Profile Please Stand Up?
There's only one sRGB profile, right? Wrong! I compared 15 widely used sRGB matrix profiles distributed by/with a variety of profile vendors and imaging software, and found quite a bit of variation from one sRGB profile to the next. In this article I explore the differences between the sRGB profiles variants and point out the practical digital darkroom consequences.
- Profiling Your Monitor — popular confusions, hopefully cleared
Big changes are taking place in open source color management, including whether, how, and what happens when a system monitor profile is set. The monitor profile your editing software uses determines what you see on your screen. So now is a very good time to learn more about monitor profiles.
If you are not really sure what the difference is between calibrating and profiling a monitor; if you've heard the words "vcgt tag" but don't know what it means; or if you'd like to know what a system monitor profile is, this article is a place to start.
- Linear Gamma vs Higher Gamma RGB Color Spaces: Gaussian Blur and Normal Blend Mode
For radiometrically correct results, RGB color mixing should always be done in a linear gamma RGB color space. When you blur or use the normal blend mode to mix colors in the regular sRGB color space, the resulting color is darker than it should be and sometimes acquires a noticeable color cast.
This article is the first of a planned series of articles on editing in a linear gamma color space. Upcoming articles will examine channel mixing, converting a color image to black and white, applying curves, and using different blend modes.
- Survey of Free and Open Source ICC RGB Working Space Profiles
This survey assesses the current state (as of January 2014) of free and open source ("floss") ICC RGB working space profiles by evaluating available floss versions of the four most widely used image editing profiles: AdobeRGB-compatible, ProPhotoRGB, WideGamutRGB, and sRGB.
The fact that makers and vendors of ICC profiles don't all use the correct white point values when making RGB working space profiles seems very odd because the correct values are given in the profile's color space specifications and the color space specifications are readily available.
All the color management articles and tutorials, arranged by topic
Articles & Tutorials on Color Management and Photography has links to all the color management and image editing articles on this website, arranged by topic:
- Tutorials on ICC Profile Color Management
- Calibrating and profiling your monitor
- Profiling your digital camera
- Choosing the right RGB Working Space
- Working in bounded and unbounded color spaces
- Interpolating camera raw files
- Digital Asset Management
- High bit depth GIMP
The About page has a little bit of information about why I switched to using Linux and started the Nine Degrees Below website, and the Galleries have a few of my photographs.
If you have questions or comments about any of the articles or photographs on this website, I'd love to hear from you (even if you run one of those other operating systems 😉). You can reach me at ellestone (at) ninedegreesbelow (dot) com.