Bug 468706 - Color corrections behavior is either incorrect or misleading
Summary: Color corrections behavior is either incorrect or misleading
Status: RESOLVED FIXED
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: 23.04.0
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Adam Fontenot
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-20 09:10 UTC by Adam Fontenot
Modified: 2023-06-01 01:39 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 23.08


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Fontenot 2023-04-20 09:10:59 UTC
SUMMARY
I was under the impression until I happened to check the settings just now that Gwenview didn't support color corrections (mapping the color profile of an image into the color profile of the screen). It apparently does, but (a) applying color corrections should probably be the default behavior (as in digikam, eog, etc), and (b) the message under the setting is very confusing.

Go to Settings > Configure > Advanced. You'll find the setting "Color profile": "Apply only the profile embedded in the image file". Some text under this says "Assume that system-wide color correction already applies monitor profile."

That's not how color corrections work, at least under X11. colord is capable of applying white point and gamma correcting curves to the video card gamma table (VCGT). But after that, the screen is still not color corrected. The ICC profile contains the display character of the screen *after* applying the VCGT, but it is then (under X11) up to applications to read that color profile and render colors appropriately.

Some professional screens *can* be calibrated to a particular target, but in that case you would not set an ICC profile for the screen in colord, because there would then be no color corrections to do!

It's also unclear what this setting actually does. *How* is it handling embedded color profiles? What is the target profile when this setting is enabled? Does it take e.g. a ProPhoto or AdobeRGB image and then squish it into an sRGB profile, under the assumption that my screen targets sRGB?

Note 1: even if there were a way to do system-wide color corrections (under X11), this would be undesirable unless all applications could be made to target some wide gamut intermediate color space like Rec. 2020 (or maybe P3). If the system-wide color corrections require applications to be sRGB, you will lose the ability to show wide gamut colors.

Note 2: None of this applies to Wayland. AFAIK it doesn't even support profiled color corrections yet, but my understanding is that the protocol for color corrections that's being worked on would allow windows to have color-tagged paint areas, which could then be managed correctly by the compositor.

Operating System: Arch Linux 
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9
Kernel Version: 6.2.11-arch1-1 (64-bit)
Graphics Platform: X11

ADDITIONAL INFORMATION

My suggestion would be to invert the meaning of the setting, enable it by default, and have it read something like:

[x] Enable Color Corrections
Use color profile from colord or automatically detected for your screen to display corrected colors for images.
Comment 1 Bug Janitor Service 2023-05-20 04:00:55 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/gwenview/-/merge_requests/201
Comment 2 Nate Graham 2023-06-01 01:39:28 UTC
Git commit 5e6d1230d188b61d9b3293f1dba2b1c4d317efb1 by Nate Graham, on behalf of Adam Fontenot.
Committed on 01/06/2023 at 01:39.
Pushed by ngraham into branch 'master'.

Fix color management settings

The setting for disabling color management was incorrectly
described, and also activated by default. The latter was an
unintentional error in a previous commit.
FIXED-IN: 23.08

M  +4    -4    app/advancedconfigpage.ui
M  +1    -1    lib/cms/cmsprofile.cpp
M  +1    -1    lib/gwenviewconfig.kcfg

https://invent.kde.org/graphics/gwenview/-/commit/5e6d1230d188b61d9b3293f1dba2b1c4d317efb1