skip to main content

Three ways to modify saturation using GIMP 2.9/2.10 LCH color tools

There are many ways to modify saturation. This tutorial describes how to modify saturation using three LCH-based operations in high bit depth GIMP 2.9/2.10, that were not available in previous versions of GIMP.

Written December 2017.

Introduction: Three ways to modify saturation using LCH

This tutorial describes three ways to modify saturation using LCH-based operations in high bit depth GIMP 2.9/2.10:

  • Use the GEGL Saturation tool ("Colors/Saturation" — make sure to not accidentally use "Colors/Hue-Saturation"!)
  • Use the Chroma slider in the Hue-Chroma tool ("Colors/Hue-Chroma")
  • Use "Colors/Exposure" combined with the LCH Chroma layer blend mode — results are similar or identical to using "Colors/Saturation"

This tutorial was inspired by a very interesting thread on the discussion forum: Color Choosing Paradox, also Warmer vs Cooler.

Adding saturation to isolated dots of color

The "Colors/Saturation" operation modifies LCH Chroma. The Chroma slider in the "Colors/Hue-Chroma" also modifies LCH Chroma. But results from these two operations are very different.

In the "color dots" image below there are three bright warm orange colors and six almost achromatic colors, all sampled from a painting by Brien Dieterle (the actual painting is shown in the third post to this thread: Color Choosing Paradox, also Warmer vs Cooler):

Original color dots.
The bright warm color dots in the left column have LCH Hues between 50 and 70. The nearly achromatic colors in the middle and right columns range in hue from LCH Hue 58 to LCH Hue 177: there are two orange dots, three green/yellow-green dots, and one cyan dot, but I suspect you can't tell just by looking which is which.
After adding saturation to the original color dots using the "Colors/Saturation" tool.

As shown above, moving the GEGL Saturation slider to +2.5 made the original warm colors very saturated. But the remaining six colors — that were nearly achromatic to begin with — still look nearly achromatic.

After adding saturation to the original color dots using the Chroma Slider in the "Colors/Hue-Chroma" tool.

As shown above, moving the Chroma slider of the "Colors/Hue-Chroma" tool to +30 of course made the original warm bright colors more saturated, though not as saturated as the colors that resulted from moving the GEGL Saturation slider to +2.5. And very much unlike using the GEGL Saturation slider, the Chroma slider also added considerable saturation to the six originally near-achromatic colors, making the Hues of the various yellow, green, and cyan dots very obvious.

So why these radically different results, if both operations involve modifying the LCH Chroma channel?

  • The GEGL Saturation slider multiplies the original color's LCH Chroma by the slider value — in other words, the Chroma is increased proportionately to the slider value.
  • Moving the Chroma slider in the Hue-Chroma tool adds the requested amount of additional Chroma to the Chroma of the original color, which of course is not even close to being a proportional change.

So consider the six originally nearly achromatic colors: Using the "Colors/Saturation" tool to multiply a very low Chroma values by 2.5 produces Chroma values that are still fairly low (for example, 2 times 2.5 is 5). But using the Chroma slider in the Hue-Chroma tool to add 30 Chroma units to the originally low-Chroma colors produces colors with Chromas greater than 30 (for example, 2 plus 30 is 32), which makes the resulting colors saturated enough you can readily observe "that's yellow-green, that's cyan", etc.

Which is better, using "Colors/Saturation" or the "Colors/Hue-Chroma" Chroma slider? plus how to make a Chroma mask

Usually "Color/Saturation" is the better choice for adding saturation to an image, but you'll probably want to use a Chroma mask

OK, you might think that using the Chroma slider in the Hue-Chroma tool is the better way to add saturation to an image, because using "Colors/Saturation" on the "color dots" image simultaneously oversaturated the bright orange colors and hardly changed the other colors at all. But as Brien Dieterle (@briend) pointed out in a thread on the discussion forum, "color is extremely contextual. That is, if you’re painting or trying to add color to something, the actual color perceived doesn’t exist until you’ve already put the paint on the canvas and viewed in context with the rest of the colors on the canvas (or photo, etc)."

So the real question is which way of adding saturation produces the nicest results in actual photographs and paintings, not in isolated color dots. So let's use both ways of adding saturation not to color samples from Brien Dieterle's painting, but to the actual painting. First, here's the original painting:

Portrait Exercise by Briend Dieterle.

And now here's the painting after adding saturation:

Comparing using "Colors/Saturation" (leftmost image) and using the Chroma slider from "Colors/Hue-Chroma" (rightmost image) to add saturation to Briend Dieterle's Portrait Exercise.

Adding any kind of saturation to Briend Dieterle's Portrait Exercise distorts the intention of the artist. Adding this much saturation amounts to something like the artistic equivalent of negligent homicide. My only excuse is that this painting provides an excellent illustration of the difference between using "Colors/Saturation" and "Colors/Hue-Chroma" to add saturation to the image. So given that Briend very kindly gave permission to use his portrait in this tutorial. let's analyze the differences between two very different ways of adding saturation using LCH:

  • Using "Colors/Saturation" (leftmost image) preserves the relationship between the colors in the original painting: the jeans still look blue, the boots are dark, with warm highlights, and the background looks like it shades from a cool dark purple-mauve on the right to a warmer, lighter pink-mauve color on the left. On the other hand, the face, arms, and hands are "over the top" saturated.
  • Using the "Colors/Hue-Chroma" Chroma slider (rightmost image) completely destroys the relationship between the colors in the original painting: Instead of appearing blue, the jeans are now a total mishmash of greens, blue-greens, and tans, looking more like camouflage hunting pants than a pair of blue jeans. The original dark purple-mauve colors on the right side of the painting have likewise turned into a mishmash of greens and pinks. And the boots have gone from a dark color with warm highlights to a decidedly warm medium brown. On the other hand, the face, arms, and hand are less saturated, which is a good thing.

The good news is that the amount of saturation added to an image can be controlled using a chroma mask:

For the image above on the left, adding a chroma mask makes the skin tones more believable, and the jeans still look blue. Adding a chroma mask to the image on the right makes the colors somewhat less saturated, but the colors are still completely distorted. So the obvious conclusion is that if preserving color relationships is the goal, use "Colors/Saturation" to add saturation to an image.

For a second example of adding saturation to an image, I downloaded a public domain portrait by Jan van Eyck, which confirms the difference between using the Gegl Saturation tool and using the Chroma slider in the Hue-Chroma tool:

Comparing using "Colors/Saturation" (top row) and using the Chroma slider from "Colors/Hue-Chroma" (bottom row) to add saturation to Jan van Eyck's Portrait of a Man.

In the original image (the middle images in the top and bottom rows), the only area that "looks colorful" is the turban. The only other area that gives an impression of color is the face. The background and the cloak with its collar have at most the merest suggestion of color.

Comparing the leftmost images in the top and bottom rows:

  • Adding saturation using "Colors/Saturation" (top row, left image) preserves the "saturation ratios" if you will — of the original image colors.
  • Using the Chroma slider from the Hue-Chroma tool (bottom row, left image) completely distorts the original colors, making the cloak and the background appear nearly as saturated as the turban — the original "mere suggestion" of color in the cloak and background is completely obliterated by the disproportionate increase in the Chroma of the originally low-chroma colors, resulting in a colorful blue cloak and colorful blue background.

Either way of adding saturation to an image can produce areas with very saturated colors. As already noted, these overly saturated colors can be controlled using a Chroma mask. The rightmost images in the top and bottom rows are the result of duplicating the original image, adding saturation, and then masking the saturated layer using a Chroma mask.

Making and using a Chroma mask

There might be times when you really do want to strongly saturated any achromatic colors, in which case the Chroma slider from "Colors/Hue-Chroma" is the right tool for the task. But otherwise, if the goal is to add saturation proportionately, use "Colors/Saturation". However, either way you go, after adding saturation very often some of the colors are likely to look way too saturated. Results are often more natural and pleasing if you use a "Chroma mask" to limit the increase in saturation for colors that are already saturated. So here's one way to make and apply a "Chroma mask":

  1. Let the original image that you want to make more saturated be Layer 1.
  2. Make a copy of the original image (call it Layer 2), and use "Colors/Saturation" to raise the Chroma values proportionately, or else use the Chroma slider from "Colors/Hue-Chroma" if you want to emphasize low Chroma colors.
  3. Make a copy of the "increased Chroma" layer (call it Layer 3), and use "Colors/Component/Extract Component" to extract the Chroma channel, making sure to check the "Invert component" box and the "Linear output" box.
  4. Add a grayscale layer mask to the extracted Chroma layer (still Layer 3), and turn the mask into a selection.
  5. Add the selection as a mask to Layer 2, and then make Layer 3 be invisible, or if you prefer, delete Layer 3 as being no longer necessary.

I'm not convinced that the above steps for making a Chroma mask is the best possible procedure, but the resulting mask does work fairly well and of course can be fine-tuned by editing the mask itself. I usually at least apply "Auto/Stretch Contrast" to maximize the tonal range on the mask. Sometimes I also darken the chroma mask using the Levels Gamma slider. And of course there is always the option of making selections and modifying the mask by hand.

In the world of digital imaging, it seems that increasing saturation is much more popular than decreasing saturation. But if the goal is to lower the saturation of an image, then of course just invert the Chroma mask to protect the colors that are already not very saturated.

When to use the Hue-Chroma tool?

When adding saturation to an image, generally speaking using the GEGL Saturation tool does a better job than using the Hue-Chroma tool's Chroma slider. The GEGL Saturation slider increases Chroma proportionately; the Chroma slider increases Chroma by the same amount regardless of the original color's Chroma.

So if GEGL Saturation usually makes a nicer result when adding saturation to an image, what good is the Hue-Chroma tool?

I use the Hue-Chroma tool a lot, but usually not for adding saturation to an entire image. Instead I use this tool for modifying individual colors that I've already selected (whether to paint with, or for toning or recoloring a black and white image, or etc), by modifying one, two, or all three of the color's original LCH values by varying amounts. I do this when I'm applying colors to portions of an image either via a solid color layer as revealed by a layer mask (for cases where I realize I want to somewhat or even drastically modify the entire color layer), or else by using a brush to paint color painting directly on a layer (for cases where I want to paint more or less closely related colors onto the layer).

Clearing up some sloppy terminology, plus a third way to add saturation to an image

Clearing up sloppy terminology

OK, this little tutorial has used sloppy terminology and so has completely glossed over the differences between Chroma, Saturation, and Colorfulness.

So what is the difference between Chroma, Saturation, and Colorfulness? Well, "Saturation" is a much-used and abused term that has (at least) two very different technical meanings and also an "every day" meaning:

  • One technical use of "Saturation" is to refer to the "S" component of the various RGB-derived HS"X" color spaces, including HSV and HSL. Although these HS"X" color spaces all use the same definition of Hue, the calculations for "Saturation" vary from one HS"X" color space to the next. None of these RGB-derived calculations for Saturation or Hue are the same as LCH Chroma and Hue. See HSL and HSV for a nice description of the HS"X" color spaces, plus an overview of why these color spaces were invented in the first place (basically for fast computation on computers from the 1990's), along with some disadvantages of using these color spaces to modify image colors.
  • The other technical use for "Saturation" is when speaking about color appearance models. For a very short and readable description of color appearance models, see Mark Fairchild's wonderful Why Is Color. For an in-depth technical review of various color appearance models, see Fairchild's Color Appearance Models.
  • The "every day" meaning of "saturation" probably swings back and forth between the "color appearance model" meanings of "colorfulness" and "saturation" (see below for a brief overview of these terms when used in the context of color appearance models), and almost certainly never refers to that aspect of color that's captured by LCH Chroma.

On the one hand, when the topic is color appearance models, the actual nitty-gritty details for measuring/calculating Chroma, Saturation, Colorfulness, Brightness, and Lightness vary from one color appearance model to the next. But Section 4.8 of the 2013 edition of Fairchild's Color Apperance Models gives some simplified equations relating Chroma, Saturation, Colorfulness, Brightness, and Lightness. Equation 4.4 says that in color appearance models "Saturation" is the ratio of "Chroma" to "Lightness".

On the other hand, LAB/LCH (LCH is a polar transform of LAB) is not a color appearance model, but rather a model for measuring color differences, to which the concept of "Saturation" doesn't actually apply. But the Wikipedia article on Colorfulness suggests that the ratio of LCH Chroma to Lightness is a reasonable correlate to Saturation as used in color appearance models.

Now what about Colorfulness? The equations in Section 4.8 of the 2013 edition of Fairchild's Color Appearance Models say that Colorfulness is Chroma times the Brightness of White, and also the same as Brightness times Saturation — the two equations produce the same result once you factor in the equations for Brightness, Brightness of White, Chroma, and Saturation. Which in practical terms means that "Colorfulness" takes into account that we do perceive brighter saturated colors as "more colorful" than darker saturated colors.

Please keep in mind that I'm still trying to figure out this whole concept of color appearance models, so take anything I say on the topic as "learning in progress, subject to mistakes and revisions". If you are interested in learning more about color appearance models, I highly recommend spending some quality time experimenting with RawTherapee's CIECAM02 module. You'll learn a lot and probably add a few new editing techniques to your arsenal of digital darkroom tools.

A third way to add LCH "Saturation" to an image:

Here is an experiment to try in your own digital darkroom:

  1. Start high bit depth GIMP and open a color image that's not already very colorful. I'm assuming you are using default GIMP 2.9, so make sure to convert the image to GIMP's built-in sRGB color space, if it's not already in the regular sRGB color space. (If you are using my "CCE" version of GIMP, then make sure to convert the image to a linear gamma RGB color space.)
  2. Duplicate the image layer and set the Layer blend mode of the duplicated layer to LCH Chroma blend. This should cause absolutely no change at all in the image's appearance (using "appearance" in the everyday meaning of what the image looks like on the screen rather than as a reference to color appearance models).
  3. Keeping the blend mode as "LCH Chroma", use "Colors/Exposure" to add 1 or more stops of positive exposure compensation to the duplicated layer.

What happens to the image colors when you added positive exposure compensation to the duplicated layer? What about if you add negative exposure compensation? How does this third way to add (or remove) "saturation/chroma/colorfulness" compare to using "Colors/Saturation"? Bonus points if you can explain why this third method works! Here's a hint: This little trick is basically a sort of "inverse" of using Luminance blend mode to keep Colorfulness (or is it Saturation?) constant while modifying tonality.