shithub: puzzles

Download patch

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.