saturation change causes color shift (with default settings)
GIMP version: 2.10.12 flatpak (all 2.10.x affected)
Operating System: Linux (all affected)
Description of the bug
Since the introduction of linear work flows, GIMP/GEGL claims to be even more physical exact. But there is maybe one conceptual issue with CIE Color System: When desaturating blue, there is a hue shift towards purple (LCH Hue remains constant, while the color obviously changes color.)
This is always reproducible. The Bug is not only valid for blue, but also for other colors.
- Create Image with blue RGB 0/0/1.0
- Change Saturation to 0.5
Expected result: the field with the green hook (simulated with raster)
Actual result: the purple field
I used a raster of 50% fully desaturated pixels over the original color to simulate a physical exact desaturation by 50%. So the result should be exactly, what you get, when half of the pigments are saturated and the other half not. (physical 50% saturation)
The solution, that gives identical results like the "raster solution" is to scale the difference between the original image and the desaturated image (and add the result again to the desaturated image). (I use it already for image editing with layer math):
- Subtract the desaturated image from the original image (--> color layer)
- multiply the result (color layer) with factors < 1 to desaturate or > 1 to saturate (layer mode multiply)
- add the desaturated image again (layer mode addition).
The lower gradient of both (green hook "linear gradient of physical Chromaticity") was created with this logic (not simulated with raster) and the result looks much more realistic than the LCH gradient.
Seems, that the whole stuff is related to this post on pixls.us where Brien Dieterle and Elle Stone and others discussed an similar issue.