You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
ColorProfileHandling.Preserve behaves as designed in v4: it retains the embedded ICC profile without applying it. CMYK data still needs to be converted into RGB pixels, but that conversion does not use the embedded profile. Consequently, Preserve does not guarantee that the output will visually match the original in a color-managed viewer.
ColorProfileHandling.Convert is the appropriate option for applying the embedded profile and converting the pixels to sRGB. The remaining color differences you report with that option need separate investigation.
We cannot change the Preserve contract in v4. For v5, we’re considering converting to sRGB during decoding and converting back to the original profile during encoding, where supported. That would aim to preserve appearance, although it cannot guarantee recovery of the original channel values or colors outside sRGB’s gamut.
Activity
JimBobSquarePants commentedon Sep 21, 2026
ColorProfileHandling.Preservebehaves as designed in v4: it retains the embedded ICC profile without applying it. CMYK data still needs to be converted into RGB pixels, but that conversion does not use the embedded profile. Consequently,Preservedoes not guarantee that the output will visually match the original in a color-managed viewer.ColorProfileHandling.Convertis the appropriate option for applying the embedded profile and converting the pixels to sRGB. The remaining color differences you report with that option need separate investigation.We cannot change the
Preservecontract in v4. For v5, we’re considering converting to sRGB during decoding and converting back to the original profile during encoding, where supported. That would aim to preserve appearance, although it cannot guarantee recovery of the original channel values or colors outside sRGB’s gamut.