问题
I am using GraphicsMagick and currently running into the following issue:
when executing
gm identify <filename>.png
I'm getting the following error:
gm identify: CgBI: unknown critical chunk (<filename>.png)
gm identify: Request did not return an image.
This is a png extracted from an iPhone. Though it may not contain an actual image, I do need the image info.
Tried opening it with several editors:
- The png does open in Paint with the right height x width but as completely white.
- The png does not open in GIMP, saying it might be corrupted
- The png does open in Paint.net with the right height x width as a transparent image
Using the debug parameter provides the following line:
libpng-1.5.14 error: CgBI: unknown critical chunk
I'm running the latest GraphicsMagick (1.3.18).
Does anyone know what's going on, and how I will be able to get this to return the image info?
Thanks in advance.
回答1:
The PNG you are trying to read has been run through Apple's "Xcode" version of pngcrush, which creates files that aren't PNGs. I believe Apple's pngcrush also has the capability of undoing the damage and more-or-less restoring the original PNG, using the "-revert-iphone-optimizations" option, although it's not mathematically possible to restore the color channels exactly for transparent or semitransparent pixels.
回答2:
set in xcode build setting this flag to NO
Remove Text Metadata From PNG Files = NO
来源:https://stackoverflow.com/questions/20655151/graphicsmagick-cgbi-unknown-critical-chunk