[Gimp-developer] A possibly easier way to AnyRGB

Elle Stone <[email protected]>
Newsgroups gmane.comp.video.gimp.devel
Message-ID <[email protected]>
Hi All,

Currently GIMP uses hard-coded sRGB primaries for many operations, 
thereby producing wrong results when editing images in RGB color spaces 
other than sRGB. Also currently GIMP color pickers only pick colors, 
only allow dialing in colors, only show out of gamut indicators colors 
using sRGB. Well, it's ridiculous to be editing an image in ClayRGB (aka 
AdobeRGB) and be told a green color is out of gamut, when it's only out 
of gamut wrt sRGB.

Based on testing the space invasion for GIMP-2.99, it seems fairly 
massive changes are required to implement "AnyRGB" one function at a 
time. But maybe there is an easier way to implement AnyRGB.

*My current workaround for GIMP-2.10:*

Currently I compile GIMP-2.10 in multiple prefixes, one prefix per RGB 
color space that I actually want to edit in. These prefixes are easy to 
set up:

For GIMP, only two files need to be modified:

   * libgimpcolor/gimpcolorprofile.c
   * libgimpcolor/gimprgb.h

For babl, only one file needs to be modified:

   * babl/babl-space.c

If anyone wants to set up a ClayRGB prefix, patches can be downloaded 
here - required modifications for other ICC profiles should be obvious:

https://ninedegreesbelow.com/files/GIMP-ClayRGB-prefix/GIMP-ClayRGB-prefix.zip

This sort of patch merely exchanges one hard-coded color space for another.

*A proposed alternative solution:*

What about writing code that gets the primaries from the user's chosen 
RGB working space, and then conveys those primaries to the relevant 
three functions in libgimpcolor/gimpcolorprofile.c, 
libgimpcolor/gimprgb.h, and babl/babl-space.c , thereby replacing 
hard-coded sRGB primaries with "AnyRGB" primaries?

"AnyTRC" would need to be considered separately. However, from the point 
of view of photographic editing, the only really useful TRCs are linear 
and perceptually uniform. The sRGB TRC is only approximately 
perceptually uniform. A better hard-coded choice would be the LAB "L" 
TRC. Though maybe babl already has a way to handle "AnyTRC"?

Best,
Elle Stone

-- 
https://ninedegreesbelow.com
Color management and free/libre photography
_______________________________________________
gimp-developer-list mailing list
List address:    [email protected]
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.