ref: 6a8a53e7235a8621313b792b498ebb43452f9e38
parent: 02ce237f911f7b970ea9b093226a9e7d09fffbf4
author: Simon Tatham <anakin@pobox.com>
date: Sun Apr 24 03:30:20 EDT 2016
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.
--- a/icons/icon.pl
+++ b/icons/icon.pl
@@ -127,7 +127,7 @@
# 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.