在Windows上使用pngcrush恢复XCode压缩?

时间:2012-04-02 01:58:19

标签: xcode png libpng pngcrush

我从IPA文件中提取了一些png图像,我想要恢复原始PNG,我被告知pngcush完成了所需的任务,所以我下载了它并尝试运行以下命令:

pngcrush -fix icon.png icon1.png

但是我得到了一个libpng错误。我不知道是否还需要下载libpng,因为错误并没有说我需要一个不同版本的libpng,只是说:

While reading icon.png:
  pngcrush caught libpng error:
   incorrect header check

我也试过这个:

pngcrush -revert-iphone-optimizations icon.png icn1.png

pngcrush表现得好像不知道命令。

关于该怎么做的任何想法?

4 个答案:

答案 0 :(得分:3)

您可能对this C# library感兴趣我开发的用于反转pngcrush的内容。我发现的所有现有实现都要么充满了漏洞,要么太难以集成到我的项目中,所以我开发了这个。它有单元测试,如果这让你感觉更安全。

Apple添加了-iphone pngcrush,仅在iOS SDK的pngcrush版本中提供,可通过xcrun访问,如下所示:

xcrun -sdk iphoneos pngcrush -iphone|-revert-iphone-optimizations ...

答案 1 :(得分:2)

此答案:pngcrush: uncrush on linux?说明-revert-iphone-optimizations仅出现在pngcrush的Apple版本中。但它确实指出了其他可能有效的选择。 Linux,而不是Windows,但由于有源,你可以让它工作。

答案 2 :(得分:2)

也许您可以尝试 pngdefry

使用多个IDAT标签完美处理png。

答案 3 :(得分:0)

它可能不知道命令。我在-revert-iphone-optimizations上找到的文档来自apple developer page,它指的是pngcrush是IOS SDK的一部分。鉴于此,我建议它被苹果公司侵入该特定版本,并且可能不是官方pngcrush下载的一部分。如果这是真的,你实际上需要安装它并使用包含的pngcrush,如文章中所述。

我对该示例中使用的语法也有些不满。它看起来像一个长期选项,通常以两个hythens 开头,而不是一个。这可能只是一个错字,所以也尝试--revert-iphone-optimizations