From: Simon Tatham Date: Sun, 24 Apr 2016 06:30:20 +0000 (+0100) Subject: Explicitly set RGB colourspace in icon.pl's use of convert. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=6a8a53e7235a8621313b792b498ebb43452f9e38;p=sgt-puzzles.git Explicitly set RGB colourspace in icon.pl's use of convert. This is that annoying feature of up-to-date 'convert' in which converting to or from a PNG file defaults to returning RGB values that have been 'helpfully' gamma-corrected (or some such) from the exact data stored in the source file to some nonsense you didn't want. Usually the worst this causes is slightly washed-out looking graphics, but in this case, since my entire aim was to squash the image into a specific set of exact RGB values so as to turn it into a paletted Windows icon file, it caused an actual build failure when the next loop in icon.pl couldn't find the gamma-corrected values in its expected palette map, and no wonder. --- diff --git a/icons/icon.pl b/icons/icon.pl index d0c5a8e..fcb1aa3 100755 --- a/icons/icon.pl +++ b/icons/icon.pl @@ -127,7 +127,7 @@ sub readicon { # point, to avoid having to do it ourselves (.BMP and hence # .ICO are bottom-up). my $data = []; - open IDATA, "convert -flip -depth 8 $filename rgba:- |"; + open IDATA, "convert -set colorspace sRGB -flip -depth 8 $filename rgba:- |"; push @$data, $rgb while (read IDATA,$rgb,4,0) == 4; close IDATA; # Check we have the right amount of data.