Articles and tutorials on ICC profile color management, plus articles on selected free/libre image editors and raw processors
This page has links to all the Nine Degrees Below articles and tutorials on color management and image editing, arranged by topic.
Tutorials on Practical ICC Profile Color Management in the Digital Darkroom
For a complete color management newbie, it's probably best to read these tutorials in the order listed below:
- Pictures of Color Spaces Inside CIELAB
When learning about color management, "light dawns gradually over the whole". So read the article, look at the pictures, and don't worry too much about understanding every single little detail. You'll get the gist and that's what's important. The same advice applies to all the articles in this section.
- Color Space Profiles: All the Colors, Some of the Colors, the Colors of Daylight
- The difference between "Convert" and "Assign"
The difference between converting to a new profile and assigning a new profile is critically important to understanding ICC profile color management. Suggestions for improving this article (and of course all the other articles) are very welcome.
- What is Embedded Color Profile Information?
- What are 'Clipped Colors' from ICC Profile Conversions?
- digiKam/showFoto Settings for Color Management: Behavior Tab.
Although this article discusses the digiKam/showFoto color management settings, the considerations apply equally to all image editors. So if you don't know what settings to choose in your image editor's color management settings dialog, this article can help you figure it out.
- ICC Profile Conversion Settings: GIMP, Krita, digiKam/showFoto, Cinepaint. This article is partially outdated article — Krita and GIMP settings have changed somewhat — but the digiKam/showFoto and Cinepaint settings are still the same. You might find the overview of how very differently image editing programs handle the various profile conversion settings to be helpful when assessing the settings provided by your favorite image editing programs.
- ICC Profile Conversion Intents.
This article explains the four conversion intents (relative and absolute colorimetric, perceptual, and saturation). It also explains why perceptual intent usually doesn't prevent the clipping of out of gamut colors.
- Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs.
This article presents ICC profile color management from the point of view of basic color science, in the process summarizing and reviewing much of the material presented in the articles listed above. If you aren't a programmer, don't let the title scare you! Many times software programmers aren't as well versed in color management as they'd like to be. So this really is an introductory article despite the scary title.
Calibrating and profiling your monitor
If your monitor isn't showing you accurate colors, then color management isn't all that useful.
- Calibrating and profiling Your Monitor — Popular Confusions, Hopefully Cleared: This article isn't a "how to". Rather it explains the basic concepts so when you read a "how to", you'll know what the "how to" is actually talking about. Also there is a great deal of misinformation about monitor profiles floating around free/libre software forums and mailing lists; this article will help you cut through the confusion.
- What type of monitor profile to make, plus test images for evaluating monitor profiles: This article provides an overview of different types of monitor profiles, screenshots of using DisplayCAL to set the monitor's color temperature using the monitor's RGB White level controls, a step by step example showing how to use ArgyllCMS to make a calibration file and then use the calibration file to make a monitor profile, and test images for assessing the useability of the resulting monitor profile.
- Color Management Experiment Kit: If seeing is believing, how much does your monitor profile matter?
If you don't use color management, or if you think sRGB is "good enough" as a monitor profile, here's some quick and simple "color management experiments" to try — all you need is GIMP and the downloadable experiment kit.
- Viewing Photographs on the Web
ICC RGB Working Spaces
The infamous sRGB color space
- Will the Real sRGB (matrix) Profile Please Stand Up?
- History of the Very Odd sRGB Color Space (you need to calibrate your monitor even if sRGB is the only color space you use).
- sRGB, the Universal Monitor Profile — Not So Good for LCD Monitors
- How much of the sRGB color gamut can be displayed on your LCD monitor?
- Photographic colors that exceed the very small sRGB color gamut
- In a world full of large color gamut devices, what is sRGB good for today?
Surveys and specifications
- Survey of Free and Open Source ICC RGB Working Space Profiles
- From sRGB color space to sRGB ICC profile: A worked example showing how to use Bradford chromatic adpatation to calculate the ICC D50-adapted sRGB profile primaries from the sRGB color space specifications
- The Luminance of an sRGB Color: color management by calibration vs ICC profile color management. This article is not quite finished and I don't know when I'll get around to finishing it. Nonetheless, it's got some interesting information.
Well Behaved RGB Working Spaces
- What Makes a Color Space Well-Behaved?
- Are Your Working Space Profiles Well Behaved?
- In Quest of Well Behaved Working Spaces
- Elle Stone's Well-Behaved ICC Profiles and Code
Choosing an RGB working space
- White balancing camera-saved sRGB jpegs that were shot using the wrong camera white balance
- Gaussian Blur and Normal Blend Mode in linear gamma vs perceptually uniform RGB working spaces
- Is your image editor using an internal linear gamma color space?
- Models for image editing: Display-referred and scene-referred
- LCMS2 Unbounded Mode
- Limitations of unbounded sRGB as a universal color space for image editing
- Multiplying out of gamut colors in unbounded RGB color spaces produces meaningless results
- Color correction fails in unbounded sRGB
Profiling your digital camera
- How to Make a Camera Input Profile Target Shot
- How to Make a Better Custom Camera Input Profile
- When profiling your camera with ArgyllCMS, what type of camera input profile should you make? An earlier version of this article appeared under the title "Five Camera Input Profiles Applied and Compared".
Camera raw files
Notes on capturing and processing camera raw files
- Making ev-bracketed exposures for noise-free output, and a few choice words about Sony's A7 cameras
- Color Science History and the ICC Profile Specifications
- ICC Color Space Profiles and Blue Channel "Noise"
- Using (misusing?) RawTherapee's CIECAM02 to capture the color of the light wherein I explore the creative possibilities of using RawTherapee's wonderful CIECAM02 module to color balance a raw file, instead of just using the white balance module. Also see the pixls.us discussion forum thread on Color Choosing Paradox, also Warmer vs Cooler, which discusses capturing vs neutralizing the color of the light.
Notes on selected free-libre raw processors
- A Review of FLOSS Raw Processors, Part 1, comparing 7 raw processors "by the specs"
- A Review of FLOSS Raw Processors, Part 2, comparing 4 raw processors according to useability and quality of output
- dcraw C Code, Outlined and Annotated
- dcraw UnDnged: Modify dcraw to Use Your Own Custom Camera Profile
- My floating point rewrite of (a now quite out of date version of) dcraw, including the DCB, AMaZE, LMMSE, AFD, & VCD interpolation algorithms — if I can write c code, anyone can write c code!
- UFRaw: Are the Highlights in Your Raw File Really Blown? This bug affects UFRaw versions 0.16 through 0.20 (current as of March 2015).
Digital Asset Management
High bit depth GIMP 2.10
- Making a perceptually uniform step wedge using high bit depth GIMP. If you've never used high bit depth GIMP (or even if you've never used GIMP at all), this is an introductory tutorial that produces something useful.
- User's Guide to High Bit Depth GIMP 2.10 Color Management: a guide to differences between GIMP 2.8 and GIMP 2.10 that affect color management and color mixing.
- Tone mapping and shadow recovery using GIMP's 'Colors/Exposure' operation
- Three ways to modify saturation using GIMP 2.10's LAB and LCh color tools: This tutorial shows how to modify saturation using three LAB and LCh-based operations in GIMP 2.10, that were not available in previous versions of GIMP. The tutorial also shows how to limit saturation changes using LCh-based Chroma and Saturation masks.
- Introducing GIMP 2.10's awesome LCh Blend Modes: This tutorial uses GIMP's LCh blend modes first to repair a badly damaged photograph of fish in an aquarium, and then to recolor a black and white rendition of the repaired photograph.
- Leaves in May — A tutorial on making an illustration from a photograph. This tutorial explains a method for making an illustration rendering from a photograph. One of the steps produces a nice line drawing. So really this is two tutorials in one. I included notes on choosing the right RGB working space for the task at hand. So maybe it's three tutorials in one.
- Autumn colors: An Introduction to High Bit Depth GIMP's New Editing Capabilities: This tutorial uses GIMP 2.10 to increase the Lightness and Colorfulness of a photograph of some autumn foliage against a blue sky, in the process showing how to use GIMP's LCh blend modes to edit separately for color and tonality.
This tutorial also has a section on working with GIMP's unbounded floating point channel values. A downloadable image file allows you to follow along to reproduce each step in the tutorial.
- Making a useful LCh color palette. This tutorial provides a set of downloadable LCh-based color palettes to use with GIMP-2.10. The LCh color wheel provides a useful framework for organizing and choosing colors, and allows to access the treasure-trove of colorimetric color information available on the internet. Links are provided to some nice articles for skin colors and flower colors.
The last section of this tutorial discusses how it's possible that there could be such a thing as an unprintable color in the very small sRGB color space, and compares results of using HSV Saturation vs LCH Chroma to lower the saturation of colors that are out of gamut with respect to a printer profile: lowering the Chroma produces much nicer results.
- Notes on using LCh to pick colors (tutorial in progress)
- Using LCh to pick complementary colors and for making hue-based color harmonies
- Exploring the LCh blend modes using a Wikipedia photograph of Kenyon Cox's portrait of Saint-Gaudens: This tutorial uses the Wikipedia photograph of Cox's portrait to explore the LCh blend modes and then takes a quick look at the photograph's hues and dynamic range, at which point it becomes obvious that the Wikipedia photograph is pretty but very far from colorimetrically accurate.
Introductory tutorials for using high bit depth GIMP 2.10
Using GIMP 2.10's new LCh and Luminance blend modes to edit photographs
Using GIMP's LCH color space and blend modes for painting
Building GIMP from git or source code
- Build GIMP in a prefix for artists and photographers
- Update GIMP in a prefix for artists and photographers
- How to build GIMP-CCE, a version of high bit depth GIMP that's patched to allow editing in any well-behaved RGB working space
- Build GIMP 2.9 from git, GIMP 2.8, & Gimp 2.6, each in its own prefix: This is an older article but still has some useful information.
Miscellaneous articles on GIMP
- LAB Lightness to black and white using GIMP 2.8. This article shows mathematically correct and incorrect ways to convert a color image to black and white using the LAB Lightness ("L") channel from GIMP 2.8's "decompose to LAB". If you don't read this article first, you probably won't understand the next article listed below.
- LAB Lightness to black and white using GIMP 2.9 and PhotoShop. This article shows mathematically correct and incorrect ways to use the LAB Lightness channel to convert a color image to black and white when using GIMP 2.9, explains the relationship between LAB Lightness and RGB Luminance, and summarizes mathematical mistakes behind the typical PhotoShop tutorial on using LAB Lightness to convert to black and white.
- A Review of 'The Book of GIMP': This book is somewhat out of date as it was written for GIMP-2.8, but it's still a useful introduction to GIMP for anyone who's looking for a comprehensive reference.
Articles on painting, photography, and combining painting with photography
- Urn in a Window: A painting in progress using LCh and Luminance blend modes to handle color and tonality separately. The same processing steps can be used when colorizing, recoloring, or split-toning black and white photographs.
- Combining painting with photography. Much of my inspiration for wanting to combine painting and photography comes from studying Pictorialist photographs from the late 19th/early 20th century. This article illustrates several approaches that I've been exploring as ways to incorporate painting with photography.
- Painting and blending colors using Addition, Subtract, Divide, and Multiply blend modes. This article uses digital "glazing grids" to demonstrate the various ways RGB colors can be mixed in the digital darkroom or painting studio, and then shows the layer stacks for two paintings done using Addition, Divide, and Multiply layer and brush blend modes.
This article uses high bit depth GIMP to make the glazing grids and example paintings, but the same grids and paintings can be done using Krita or any other high bit depth image editor that allows using masks and layers, along with Multiply, Divide, Addition, and Subtract layer blend modes, as long as the image editor allows editing using linear/linearized RGB.
- Turning a day shot of railroad tracks into a late evening/night scene. Most of the processing was done using high bit depth GIMP, but then I discovered that the RawTherapee CIECAM02 module makes a lot of the editing steps (including modifying deep shadow tonality) much easier. RawTherapee's CIECAM02 hue operations aren't as flexible as GIMP's LCh color operations (simply because RawTherapee isn't designed for using masks and layers, so any change is "global"). But both applications can be used (separately or together) for making appropriate color changes to turn day into night.