2013-12-18 31 views
6

我使用GraphicsMagick工具,目前運行到了以下問題:執行GraphicsMagick工具CgBI未知的關鍵塊

gm identify <filename>.png 

,我發現了以下錯誤:

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

這是從iPhone中提取的png。雖然它可能不包含實際的圖像,但我確實需要圖像信息。

試圖與多個編輯器打開它:

  1. 的PNG確實與右高度×寬度油漆打開,但作爲全白。
  2. 的PNG確實在GIMP開,稱其可能被損壞
  3. 的PNG確實開在Paint.net與右高度×寬度爲透明圖像

使用調試參數提供以下行:

libpng-1.5.14 error: CgBI: unknown critical chunk 

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

有誰知道發生了什麼,以及我將如何獲得此圖像以返回圖像信息?

在此先感謝。

回答

6

您試圖閱讀的PNG已經通過Apple的「Xcode」版本的pngcrush運行,該版本創建的文件不是PNG。我相信蘋果公司的pngcrush也可以使用「-revert-iphone-optimizations」選項來消除損壞並且或多或少地恢復原始的PNG,儘管在數學上不可能精確地恢復透明或半透明的顏色通道像素。

+0

這的確可能是問題。你知道我應該如何着手通過pngcrush恢復原始的PNG(或至少撤消損壞)嗎? – bknopper

+1

查看此[iPhone Dev Wiki文章](http://iphonedevwiki.net/index.php/CgBI_file_format#Decoding)瞭解如何解碼此類PNG文件。 – rdvdijk

+0

你必須使用Apple的pngcrush,而不是真正的pngcrush。我不知道確切的選項,但它就像「-revert-iphone」。請參閱上面rdvdijk的答案中引用的Wiki。 –

3

在Xcode中設置構建這個標誌設置爲NO

刪除文本的元數據PNG文件= NO