chiark / gitweb /
Add '-set colorspace RGB' to some icon convert commands.
authorSimon Tatham <anakin@pobox.com>
Sat, 3 Oct 2015 12:15:59 +0000 (13:15 +0100)
committerSimon Tatham <anakin@pobox.com>
Sat, 3 Oct 2015 15:07:20 +0000 (16:07 +0100)
Its absence was breaking the icon build on Ubuntu 14.04, because you
ask convert to map an image into a specific 16-colour palette, and it
does so and _then_ nonconsensually maps those colours in turn through
a colourspace transformation you didn't ask for, causing icon.pl to
fail an assertion when it finds an RGB value not in the palette.

icons/Makefile

index e5720e8fd07561f009f7cc70914b0c7293683e70..612b93c77e9b0438d389a0b8d697477191c060dd 100644 (file)
@@ -27,6 +27,10 @@ RC = $(patsubst %,%.rc,$(PUZZLES))
 BIN = ../
 PIC = ./
 
+# Work around newer ImageMagick unilaterally distorting colours when
+# converting to PNG.
+CSP = -set colorspace RGB
+
 base: $(BASE)
 web: $(WEB)
 pngicons: $(P48D24) $(P32D24) $(P16D24)
@@ -93,7 +97,7 @@ $(IBASE): %-ibase.png: %-base.png
 # seems to work better than reducing it in 24 bits and then
 # dithering.
 $(IBASE4): %-ibase4.png: %-ibase.png
-       convert -colors 16 +dither -map $(PIC)win16pal.xpm $^ $@
+       convert -colors 16 +dither $(CSP) -map $(PIC)win16pal.xpm $^ $@
 
 # Build the 24-bit PNGs for the icons, at three sizes.
 $(P48D24): %-48d24.png: %-ibase.png
@@ -115,15 +119,15 @@ $(P48D8) $(P32D8) $(P16D8): %d8.png: %d24.png
 # much...)
 $(P48D4): %-48d4.png: %-ibase4.png
        $(PIC)square.pl 48 1 $^ $@-tmp2.png
-       convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+       convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
        rm -f $@-tmp2.png
 $(P32D4): %-32d4.png: %-ibase.png
        $(PIC)square.pl 32 1 $^ $@-tmp2.png
-       convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+       convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
        rm -f $@-tmp2.png
 $(P16D4): %-16d4.png: %-ibase.png
        $(PIC)square.pl 16 1 $^ $@-tmp2.png
-       convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+       convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
        rm -f $@-tmp2.png
 
 # Build the actual Windows icons themselves, by feeding all those