1
0
Эх сурвалжийг харах

Remove ICC if source image is linear

DarthSim 1 жил өмнө
parent
commit
46e63464f7

+ 1 - 0
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

+ 5 - 1
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
 		}