SixLabors / SixLabors/ImageSharp
TIFF CMYK ICC Profile Color Rendering Issue
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 8k
- Forks
- 899
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 7
Description
Prerequisites
- I have written a descriptive issue title
- I have verified that I am running the latest version of ImageSharp
- I have verified if the problem exist in both
DEBUGandRELEASEmode - I have searched open and closed issues to ensure it has not already been reported
ImageSharp version
4.1.2
Other ImageSharp packages and versions
- SixLabors.ImageSharp.Drawing 3.1.0 - SixLabors.ImageSharp.Web 4.0.1
Environment (Operating system, version and so on)
Windows 11
.NET Framework version
.NET 10.0
Description
When loading a TIFF image with an embedded CMYK ICC profile using ColorProfileHandling.Preserve, the colors are rendered incorrectly and do not match the original image. The preserved version shows noticeably different colors compared to the original, while the converted version appears to produce more accurate results.
This suggests an issue with how ImageSharp handles CMYK ICC profile preservation when converting to the display color space (sRGB). The color transformation is not producing the expected visual output that matches the original image.
Steps to Reproduce
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats;
const string inputPath = "cmyk_image.tiff";
using (Image image = Image.Load(
new DecoderOptions
{
ColorProfileHandling = ColorProfileHandling.Preserve
},
inputPath))
{
image.Save("cmyk_image.preserve.tiff");
}
using (Image image = Image.Load(
new DecoderOptions
{
ColorProfileHandling = ColorProfileHandling.Convert
},
inputPath))
{
image.Save("cmyk_image.converted.tiff");
}
Open these files in the same color-managed image viewer:
◦ cmyk_image.tiff
◦ cmyk_image.preserve.tiff
◦ cmyk_image.converted.tiff
4.Compare both generated images with the original. Iv'e also add the images produce by the code
Expected result: Both generated images should visually match the original CMYK TIFF.
Actual result: Both generated images have noticeable color differences. The output created with Preserve differs the most from the original.
Images
cmyk_image.preserve.tiff
cmyk_image.preserve.tiff
cmyk_image.tiff
cmyk_image.tiff
cmyk_image.converted.tiff
cmyk_image.converted.tiff
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 running the provided DecoderOptions reproduction with cmyk_image.tiff and compare the three attached TIFFs in the same color-managed viewer. Trace ImageSharp's TIFF ICC profile handling for ColorProfileHandling.Preserve and Convert; done means the generated images visually match the original as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100