JXL images are not color-managed
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 14.4k
- Forks
- 752
- Avg merge
- 10d 14h
- Merged PRs (30d)
- 1
Description
Windows OS version
Windows 11 25H2
ImageGlass version
10.0.3.720-rc-win-x64
ImageGlass release
Classic
1️⃣ Steps to reproduce
- Set Windows desktop to SDR mode.
- Ensure ACM ("automatically manage color for apps") is turned off in Windows color management settings (ACM breaks color management and wide gamut support)
- Set monitor mode to wide gamut (ensure OS has correct ICC monitor profile registered)
- Use ImageGlass to browse attached SDR wide gamut test images ('Display P3' color space)
2️⃣ Actual behavior
3/4 test images are displayed incorrectly.
- Reference image is displayed correctly (P3-original.png)
- P3-AF-Q100.jxl is undersaturated.
- P3-cjxl-D0.0.jxl is undersaturated.
- P3-cjxl-D0.1 is undersaturated and clipped ('W' is not visible).
3️⃣ Expected behavior
All JXL test images should appear identical to the reference image (P3-original.png).
- Fully saturated.
- Visible 'M' character (red-on-red).
There are currently no editors/viewers that I am aware of that can correctly display lossy compressed JXL images without using the compatibility workaround described below (less efficient, lower quality). This seems to be a significant gap in the ecosystem, as "perceptually lossless" is the most efficient format that produces the highest quality image for the smallest file size (--distance=1.0).
- P3-AF-Q100.jxl is moderately lossy compression with a compatibility workaround (used by Affinity):
cjxl input.png output.jxl --distance=1.0 --modular=1 --disable_perceptual_optimizations
- P3-cjxl-D0.0.jxl is mathematically lossless:
cjxl input.png output.jxl --distance=0.0
- P3-cjxl-D0.1.jxl is minimally lossy:
cjxl input.png output.jxl --distance=0.1
4️⃣ Screenshots / Video / Sample image file
5️⃣ Additional context
Partial duplicate of bug report #2311 (ImageGlass 9.x) incorrectly closed as duplicate of an HDR-related issue.
IIRC, ImageGlass 9.x only failed to display P3-cjxl-D0.1.jxl correctly, so ImageGlass 10.x has a similar problem that manifests differently.
Note: All test files are SDR, the problem is manifest when Windows 11 desktop is in SDR mode. This was also the case with #2311.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with the attached tests.zip under Windows 11 SDR mode, with ACM disabled and a wide-gamut monitor profile configured. Trace the JXL decoding and color-management path, comparing the three affected images with P3-original.png. Done means all test images display with matching saturation and the expected visible characters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- computer-graphics, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100