diff --git a/CHANGELOG.md b/CHANGELOG.md index ed459596..6bc095a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Fix - Fix parsing of HEIF files with large boxes. +- Fix wrong colors when the source image has a linear colorspace. ## [3.19.0] - 2023-08-21 ### Add diff --git a/processing/import_color_profile.go b/processing/import_color_profile.go index 8d00bda3..9641466f 100644 --- a/processing/import_color_profile.go +++ b/processing/import_color_profile.go @@ -18,7 +18,11 @@ func importColorProfile(pctx *pipelineContext, img *vips.Image, po *options.Proc convertToLinear := config.UseLinearColorspace && (pctx.wscale != 1 || pctx.hscale != 1) - if convertToLinear || !img.IsRGB() { + if img.IsLinear() { + // The image is linear. If we keep its ICC, we'll get wrong colors after + // converting it to sRGB + img.RemoveColourProfile() + } else if convertToLinear || !img.IsRGB() { if err := img.ImportColourProfile(); err != nil { return err }