An issue that will arise for everyone who uses GIMP 2.9 is how to deal
with HDR and out of gamut colors.
An HDR color is any floating point color with at least one RGB channel
value that is greater than 1.0.
An out of gamut ("OOG") color is any color with at least one RGB channel
value that is less than 0.0.
It is very easy to generate OOG/HDR colors using GIMP 2.9. Ways to
generate such colors already include:
* Levels slider adjustments.
* Converting images from one RGB color space to another.
* The LCH blend modes.
* Apparently some GEGL operations also generate such colors.
New ways to generate OOG/HDR colors will eventually be added to GIMP,
for example the addition/subtract/multiply/divde/etc blend modes will
need to be unclipped if GIMP is ever to accomodate high dynamic range
On the one hand, allowing OOG/HDR colors makes possible many editing
opportunities that are not possible when all RGB values are clipped to
the range 0.0-1.0. For example (and putting HDR editing to one side),
for display-referred editing:
* The fact that Levels doesn't clip RGB values makes it possible to
make extreme adjustments to raise shadows and then selectively mask out
highlights to bring them back below 1.0. This is a lot more useful than
it might sound.
* The ability to let stand any OOG colors created by LCH blend modes
or by ICC profile conversions allows to deal with these colors at a
later point in the processing pipeline rather than have them be
On the other hand, many times OOG/HDR colors will interfere with the
user's efforts to edit images, being inconsistent with many
display-referred editing operations. And OOG colors generate nonsense
values when used in many editing operations, whether HDR or
Right now the only way the user has available to clip OOG/HDR channel
values is either to change the precision to one of the integer
precisions, which will clip all OOG/HDR values in the entire layer
stack, or else to apply a "straight line" null Curves adjustement to an
individual layer that has OOG/HDR channel values. These are blunt and
cumbersome ways to deal with something that every GIMP user will
eventually have to come to terms with.
Ways need to be provided to allow the user better control over whether
and when OOG and HDR colors should or shouldn't be clipped. Here are
some suggestions for consideration:
1. LCMS 2.7 does provide the option for floating point ICC profile
conversions to be clipped or not clipped. Currently GIMP only supports
unclipped conversions. It would be nice to add the option to allow the
user to choose to do a clipped ICC profile conversion.
2. An option could be added to the Preferences dialog to allow the user
to choose to automatically clip the OOG and HDR results of all editing
operations. For many users this will be a true useability enhancement as
many users simply won't want to deal with OOG and HDR colors.
3. An option could be added to every layer and editing operation to do
one of three things: i. not clip the RGB values; ii. clip just the
negative RGB values; iii. clip all OOG/HDR colors.
For all three possible ways to help users deal with OOG/HDR colors,
probably the default option should be "clip all".
Adding options to enable the user to control clipping will complicate
the User Interface. But if GIMP provide users with enhanced, cutting
edge, high end editing capabilities, GIMP also needs to provide users
with similarly powerful controls.
gimp-developer-list mailing list
List address: email@example.com
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives: https://mail.gnome.org/archives/gimp-developer-list