https://bugs.kde.org/show_bug.cgi?id=367832
Bug ID: 367832 Summary: Do not export PNG with Embed sRGB profile checked by default because Firefox color shift and more. Product: krita Version: unspecified Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: File formats Assignee: krita-bugs-n...@kde.org Reporter: tyson...@mail.com Krita has the ability to embed the current sRGB profile during exporting to PNG and JPG. By default, the checkbox for this function is ON for PNG, OFF for JPG. However, saving with Krita's embedded sRGB profile (I assume it’s sRGB-elle-V2-srgbtrc.icc) leads to undesired color shift when the picture is being viewed with a Color Management enabled viewer (notably Firefox) under certain widely happening OS environment. This is not a Krita bug, nor a Firefox bug. It’s caused by a problematic way our industry has been handling the default ICC profile for displays. Here I will discuss what triggers it and suggest how Krita can work around this by changing a single default saving value. Reproducible: Always Steps to Reproduce: 1) Krita exported PNG with the Embedded sRGB profile checkbox checked; or Save ICC profile checked for JPG. I assume it embeds sRGB-elle-V2-srgbtrc.icc. This is not the official sRGB profile from ICC. 2) OS has its Color Management Enabled. I can confirm that Windows 10 and Gnome 3 has Color Management ON by default. Most most modern OS should have this ON by now. 3) OS recognized the current display and automatically installed drivers accordingly. On Windows the driver is just a place holder for PNP device. It comes with a default ICC profile. On Gnome 3, gnome-color-manager automatically generates a similar ICC profile and assign it to the display. 4) This mystical ICC profile, which I often regard as “the fake ICC Profile”, no matter on Windows or Gnome, has a increased RED responsive curve. If an image viewer respect this ICC profile, the picture becomes slightly brighter, pinkish, and has less contrast. Blue color takes the heaviest impact. 5) Users do not manually assign a correctly calibrated ICC profile to the display, nor do they remove the "fake ICC" or turn the Color Management of the OS off. If they do any of these, the color shift will not happen. But I think 99% people will never do. 6) Most image viewers do not do color management by default. So there is no color shift when using them. 7) But Firefox, one of the most popular web browser, has its Color Management ON by default. So if 1) ~ 5) is happening (which is 99% the case) and they are using Firefox, the color shift will happen. Which means a lot of people are affected. 8) Firefox use “gfx.color_management.mode” to control it Color management behavior in “about:config” page. The default value is 2, meaning Firefox only does Color Management if the picture has an non sRGB Embeded ICC profile. If we set this value to 1, then all pictures, regardless of having an embedded ICC or not, will be color managed. You may find more information here: http://kb.mozillazine.org/Gfx.color_management.enabled 9) Firefox detects the embedded ICC profile of the picture. If it's sRGB, it will not color manage it, hence no color shift. Adobe Photoshop's sRGB embedded picture is not affected because Photoshop embeds the official sRGB profile from ICC. Krita is affected because sRGB-elle-V2-srgbtrc.icc is not official and Firefox consider it to be a calibrated ICC. Actual Results: So all and all, Firefox is doing its job according to the rules, while the OS is supplying it with a wrong reference, causing the color shift to happen. There is nothing we can do about it unless the ICC people realized it. Or they did this for some unknown reason. Expected Results: Although it's technically not Krita's fault, we can do something to avoid being affected. So far Krita saving as JPG has ICC off by default, which is a good thing. All we need is to turn off ICC for PNG (and all other universal formats that has the ability to embed ICC). The other way is of course to embed the non-free sRGB profile from ICC. Which I don't think being possible. -- You are receiving this mail because: You are watching all bug changes.