Bug 452084

Summary: Krita exported PNG or JPG images are desaturated on social media even if sRGB 8bit is forced
Product: [Applications] krita Reporter: SirPigeonz <GBirdboy>
Component: Color modelsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: major CC: ghevan
Priority: NOR    
Version First Reported In: nightly build (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: All   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description SirPigeonz 2022-03-30 18:36:27 UTC
Version: 5.0.2-alpha (git ca4f0c8) (Krita Plus)

SUMMARY
Before I worked with a sRGB monitor, but recently I switched to a wide gamut DCI-P3 monitor (calibrated) and noticed that my exported PNG and JPG looks washed out/desaturated a bit on Twitter.

My first reaction was that Twitter probably uses some crappy conversion to sRGB and I just exported PNG with wide gammut profile attached to it.
I tried converting image to sRGB 8bit, but it already was in sRGB profile (the one named Default) and 8bit.
Then I tried to use exporter options: "Embed sRGB profile" and "Force convert to sRGB".
None of this worked, and the same problem is with JPG.

For now the only thing that works is either exporting to WebP for Twitter and for the Instagram convert my PNG using this online tool https://www.online-convert.com/.

I also tested it with GIMP and it had the same problem. My guess is that some library that both program use is bundling my monitor ICC to the file even if I manually convert, or force sRGB, and then social media detects it and do their crappy conversion.

I attach my PNG JPG and WebP for tests. I also include screenshot how it behaves on my setup. It's a twitter post creation window, on the left is WebP export on the right PNG and JPG. You can see images on the right are a bit desaturated.

Extra info. My other software like ImageGlass, Windows Image Viewer or even Paint don't have this problem, only some web based software like Gumroad as well.

SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.2-alpha (git ca4f0c8)
 Installation type: installer / portable package
 Languages: en_GB, en, en_US, en, en_GB, en, en_US, en, en_GB, en, en_US, en, en_GB, en, en_US, en, en_GB, en, en_US, en
 Hidpi: false

Qt

  Version (compiled): 5.12.12
  Version (loaded): 5.12.12

OS Information

  Build ABI: x86_64-little_endian-llp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: winnt
  Kernel Version: 10.0.19043
  Pretty Productname: Windows 10 (10.0)
  Product Type: windows
  Product Version: 10

ADDITIONAL INFORMATION
Comment 1 SirPigeonz 2022-03-30 20:13:30 UTC
I could attach my files because limit is too small so here is on gdrive: https://drive.google.com/file/d/1juCAV_q7_xLteDN7hywS938lxlus3yLX/view?usp=sharing
Comment 2 SirPigeonz 2022-04-02 17:04:00 UTC
Can somebody check this? This sounds like really major bug.
Comment 3 vanyossi 2022-04-05 17:53:13 UTC
Hi! your images should have no ICC profile attached to them for web purposes. When exporting for png for web the embed profile is recommended to not be set for web usage. "Force convert to RGB" will convert your image to "sRGB built-in" and tag it with it, profile tagging seems to be missing on webp export which makes your image be exported with no profile information (the webtool you cited seems to strip any profile tag information btw).

Twitter and instagram not displaying the image as you see it is not a bug in krita by default. In this case it is best to read the format twitter/instagram is expecting and upload the image in the format and colorspace expected. For jpeg uncheck ICC profile embed, for PNG it seems its enough to unset "Force convert to PNG" (your image colospace has to be previously converted to sRGB for export)

check https://docs.krita.org/en/tutorials/saving-for-the-web.html for some basic info on exporting for web

I will mark this as "NOT A BUG" for now