Incorrect gAMA in PNGs written by ImageMagick
Posted: 2012-10-24T08:01:15-07:00
Hi,
let's try some commands:
What are we looking at? We get a random PNG file from the internet and check it with "identify". No error messages here.
Then "convert" gets used to get a translucent version of this image. This is a command that is used in some build system and should work with as many ImageMagick versions as possible. However, whenever the resulting image is loaded by any program, libpng prints a warning message.
But just sending the image through "convert" again, without changing anything, gets rid of that error.
Could this be a bug somewhere in ImageMagick? The output of "identify -verbose" doesn't get changed by that last "convert" call and I have no clue what exactly causes this error.
Alternatively, I would also happily learn about more sane ways to do this transformation with ImageMagick that works with older versions and ignore this issue, but it might still be something that should be fixed.
Thanks for looking into this.
let's try some commands:
Code: Select all
$ wget 'http://git.naquadah.org/?p=awesome.git;a=blob_plain;f=themes/default/titlebar/close_focus.png;hb=HEAD' -O orig.png
[...]
$ identify orig.png > /dev/null
$ convert orig.png -gamma 0.6 -channel A -evaluate Multiply 0.4 res.png
$ identify res.png > /dev/null
incorrect gamma=(0/100000)
identify.im6: Ignoring incorrect gAMA value when sRGB is also present `res.png' @ warning/png.c/MagickPNGWarningHandler/1754.
$ convert res.png res2.png
incorrect gamma=(0/100000)
convert.im6: Ignoring incorrect gAMA value when sRGB is also present `res.png' @ warning/png.c/MagickPNGWarningHandler/1754.
$ identify res2.png > /dev/null
Then "convert" gets used to get a translucent version of this image. This is a command that is used in some build system and should work with as many ImageMagick versions as possible. However, whenever the resulting image is loaded by any program, libpng prints a warning message.
But just sending the image through "convert" again, without changing anything, gets rid of that error.
Could this be a bug somewhere in ImageMagick? The output of "identify -verbose" doesn't get changed by that last "convert" call and I have no clue what exactly causes this error.
Alternatively, I would also happily learn about more sane ways to do this transformation with ImageMagick that works with older versions and ignore this issue, but it might still be something that should be fixed.
Thanks for looking into this.