GraphicsMagick CgBI 未知关键块

Posted

技术标签:

【中文标题】GraphicsMagick CgBI 未知关键块【英文标题】:GraphicsMagick CgBI unknown critical chunk 【发布时间】:2014-01-06 10:54:38 【问题描述】:

我正在使用 GraphicsMagick,目前遇到以下问题:

执行时

gm identify <filename>.png

我收到以下错误:

gm identify: CgBI: unknown critical chunk (<filename>.png)
gm identify: Request did not return an image.

这是从 iPhone 中提取的 png。虽然它可能不包含实际图像,但我确实需要图像信息。

尝试用几个编辑器打开它:

    png 确实在 Paint 中以正确的高度 x 宽度打开,但完全是白色的。 png 确实没有在 GIMP 中打开,说它可能已损坏 png 确实在 Paint.net 中以正确的高度 x 宽度打开为透明图像

使用调试参数提供以下行:

libpng-1.5.14 error: CgBI: unknown critical chunk

我正在运行最新的 GraphicsMagick (1.3.18)。

有谁知道发生了什么,以及我将如何获得它以返回图像信息?

提前致谢。

【问题讨论】:

【参考方案1】:

您尝试读取的 PNG 已通过 Apple 的“Xcode”版本的 pngcrush 运行,该版本会创建非 PNG 文件。我相信 Apple 的 pngcrush 还具有使用“-revert-iphone-optimizations”选项撤消损坏和或多或少恢复原始 PNG 的能力,尽管在数学上不可能完全恢复透明或半透明的颜色通道像素。

【讨论】:

这确实可能是问题所在。你知道我应该如何通过 pngcrush 恢复原始 PNG(或至少撤消损坏)吗? 请参阅iPhone Dev Wiki article,了解如何解码此类 PNG 文件。 你必须使用苹果的 pngcrush,而不是真正的 pngcrush。我不知道确切的选项,但它类似于“-revert-iphone”。请参阅上面 rdvdijk 的答案中引用的 Wiki。 完整的故事以及补救措施也可以在我的网站上找到:jongware.com/pngdefry.html【参考方案2】:

在 xcode 构建中设置此标志为 NO

从 PNG 文件中删除文本元数据 = 否

【讨论】:

以上是关于GraphicsMagick CgBI 未知关键块的主要内容,如果未能解决你的问题,请参考以下文章

iOS真机运行 Xcode报错(libpng error: CgBI: unhandled critical chunk)问题已解决;

cocos2dx3.x + xcode7.3 问题“libpng error: CgBI: unhandled critical chunk”

ImageMagick 和 GraphicsMagick 有啥区别?

CentOS7下安装GraphicsMagick1.3.21

验证 Openresty+Lua+GraphicsMagick

linux图片处理工具GraphicsMagick安装使用