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.
This commit is contained in:
Simon Tatham
2016-04-24 07:30:20 +01:00
parent 02ce237f91
commit 6a8a53e723

View File

@ -127,7 +127,7 @@ sub readicon {
# point, to avoid having to do it ourselves (.BMP and hence # point, to avoid having to do it ourselves (.BMP and hence
# .ICO are bottom-up). # .ICO are bottom-up).
my $data = []; 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; push @$data, $rgb while (read IDATA,$rgb,4,0) == 4;
close IDATA; close IDATA;
# Check we have the right amount of data. # Check we have the right amount of data.