GNOME Bugzilla – Bug 467930
color selectors are not color managed
Last modified: 2016-10-18 20:53:07 UTC
Please describe the problem: The color displayed in the color selection box/color dialog is not the color painted in the image if an icc-profile is active Steps to reproduce: 1. Get this image: http://www.fotocommunity.de/pc/pc/mypics/572427/display/4763821 2. keep the embedded profile 3. select any color 4. paint in the image Actual results: The painted colour is quite different from the color selected. Expected results: The colors should match. Does this happen every time? Yes Other information: The embedded profile is designed with quite twisted colors to test color management capabilities. With "normal" profiles the differences are expected to be much smaller.
Created attachment 93894 [details] color spin icc-profile this is a test icc-profile with twisted colors.
Hmm, somehow this rings a bell, but I am unable to find the corresponding bug report for now. It is not easily fixable, since the color profile is attaced to a specific image, while the color area is not. So when having two images with different color profiles open it is not at all clear, which profile to apply to the color area.
Simon is right, this behavior cannot easily be changed as the Color selector doesn't know about the color profile attached to the image. We will add color management to the color selectors at some point but this will only correct the display of colors using the monitor profile and the default RGB working space profile. Working in other color profiles than the default workspace is not supposed to be fully supported. At least not short-term.
All comment above about the image's profile can be disregarded, we store colors in sRGB (GimpRGB), and therefore only need a display color transform. Will have to be implemented for 2.10 to the stuff is complete.
Some preparation: commit 9c99d61febd808925bf9152b09f7344ad91c89ea Author: Michael Natterer <mitch@gimp.org> Date: Tue May 24 21:43:20 2016 +0200 libgimpwidgets: add gimp_preview_area_set_color_config() If a config is set, apply its settings when drawing the preview's pixels. This is preparation for fixing: Bug 467930 - color selectors are not color managed Bug 556608 - Monitor color profile is not applied to filter preview libgimpwidgets/gimppreviewarea.c | 222 ++++++++++++++++++++++++++++++++++++++++++++++++--------- libgimpwidgets/gimppreviewarea.h | 119 ++++++++++++++++--------------- libgimpwidgets/gimpwidgets.def | 1 + 3 files changed, 252 insertions(+), 90 deletions(-)
Some progress: commit 0cd3d7aa7b144913a0c5d2f8d6e29c5356981a12 Author: Michael Natterer <mitch@gimp.org> Date: Thu May 26 22:25:03 2016 +0200 app: color manage GimpFgBgEditor, as used e.g. in the toolbox app/widgets/gimpfgbgeditor.c | 134 +++++++++++++++++++++++++++++++++++++++++++++--------------- app/widgets/gimpfgbgeditor.h | 19 +++++---- 2 files changed, 112 insertions(+), 41 deletions(-) commit 0acff064654199e105813c3de63cc6a3a36fe4cf Author: Michael Natterer <mitch@gimp.org> Date: Thu May 26 22:24:35 2016 +0200 app: color manage the color buttons of GimpColorHistory app/widgets/gimpcolorhistory.c | 5 +++++ 1 file changed, 5 insertions(+) commit bd38b7b9fdc83b924765a936ea1ebcba1e21adf9 Author: Michael Natterer <mitch@gimp.org> Date: Thu May 26 22:23:29 2016 +0200 libgimpwidgets: set the color config on the "GIMP" page of color selectors libgimpwidgets/gimpcolorselect.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit e080df349c1569af9911f1ea356bf2ad0344de9f Author: Michael Natterer <mitch@gimp.org> Date: Thu May 26 22:22:50 2016 +0200 libgimpwidgets: set the color config on GimpColorSelection's color areas so they are color managed. libgimpwidgets/gimpcolorselection.c | 4 ++++ 1 file changed, 4 insertions(+)
commit 9014fbeb32357dc546075ffd55b1600539281765 Author: Michael Natterer <mitch@gimp.org> Date: Fri May 27 00:51:32 2016 +0200 Bug 467930 - color selectors are not color managed Color manage GimpColorScale and GimpColorScales. libgimpwidgets/gimpcolorscale.c | 246 +++++++++++++++++++++++++++++++++++++++++++++----------- libgimpwidgets/gimpcolorscale.h | 21 ++--- libgimpwidgets/gimpcolorscales.c | 20 +++++ libgimpwidgets/gimpwidgets.def | 1 + 4 files changed, 233 insertions(+), 55 deletions(-)
commit 0d8b8c2f99779833bb90ba1ee01685a814c9cb7e Author: Michael Natterer <mitch@gimp.org> Date: Fri May 27 01:12:35 2016 +0200 Bug 467930 - color selectors are not color managed Color manage the wheel/triangle color selector. modules/color-selector-wheel.c | 23 +++++-- modules/gimpcolorwheel.c | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- modules/gimpcolorwheel.h | 29 +++++---- 3 files changed, 206 insertions(+), 41 deletions(-)
This should be the last one, fixed: commit ee0c51a43edae41668f690110f87d534566f9de8 Author: Michael Natterer <mitch@gimp.org> Date: Sat May 28 00:38:57 2016 +0200 Bug 467930 - color selectors are not color managed Color manage the water color selector. modules/color-selector-water.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 140 insertions(+), 35 deletions(-)
Forgot one: commit dbb96f57bb0e069c96b080d2a517df4df7adcfe2 Author: Michael Natterer <mitch@gimp.org> Date: Sat May 28 01:41:46 2016 +0200 Bug 467930 - color selectors are not color managed Color manage GimpFgBgView. app/widgets/gimpfgbgview.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- app/widgets/gimpfgbgview.h | 7 +++-- 2 files changed, 84 insertions(+), 13 deletions(-)
Elle pointed out that this bug was both about color managing color selectors *and* painting with these colors, partly caused by wrong assumptions in comments 2 and 3. I now opened bug 766988 to track fixing *applying* of colors.
Forgot one: commit f9170b667e5e6579f08d1b9662dd27987d7f3c17 Author: Michael Natterer <mitch@gimp.org> Date: Tue Oct 18 22:48:04 2016 +0200 Bug 647957 - GimpColorFrame's CMYK mode is not color managed Convert GimpRGB to CMYK using a color transform to the configured CMYK profile instead of the naive gimp_rgb_to_cmyk(). Add gimp_color_frame_set_color_config() and call it on all color frames in the GUI (color picker tool, cursor info, sample point view). Keep a GimpColorTransform around that does the conversion. Also color manages the frame's color area now (visible in the sample point view), which was forgotten earlier. Addresses bug #467930. app/display/gimpcursorview.c | 24 ++++++-- app/display/gimpcursorview.h | 2 +- app/tools/gimpcolorpickertool.c | 4 ++ app/widgets/gimpcolorframe.c | 154 ++++++++++++++++++++++++++++++++++++++++++++++------ app/widgets/gimpcolorframe.h | 10 +++- app/widgets/gimpsamplepointeditor.c | 31 ++++++++--- app/widgets/gimpsamplepointeditor.h | 2 +- 7 files changed, 192 insertions(+), 35 deletions(-)