pngcrush:在Linux上uncrush?

苹果的iOS SDK使用pngcrush的修改版本来转换iOS包中的png文件。 他们的版本也可以恢复更改(使用“-revert-iphone-optimizations”开关),但原始版本不能。

有没有一个可以在Linux上运行的工具,并恢复iphone的优化?

谢谢。

iphone-fixpng在Linux中工作。 看到这个讨论解释它做什么。 我连接到web.archive.org,因为原来是closures的。

你可以select使用其中的一个:

  1. 用VirtualBox在linux内部安装Hackintosh。 在其中安装Xcode,然后做这样的事情

    $ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir uncrushed -revert-iphone-optimizations -q *.png 

    这使用从苹果修改pngcrush撤消其优化。 猜猜这将与所有粉碎的PNG工作。 看到这个更准确的命令xcrun

  2. 从这个博客下载iPIN.py并执行

     $ python ipin.py 

    这将清除实际目录及其子目录中的所有文件。 不要担心两次打电话,从我的经验来说,不会腐蚀已经破坏的PNG。 从这里你会发现,ipin.py并没有去除所有苹果PNG优化

    它( ipin.py )不能处理多个IDAT块,不能处理Adam7隔行扫描图像,并不修复预乘alpha。

  3. 使用特定的gnome二进制工具 。 这需要一些低级别的步骤:

     $ git clone https://github.com/hadess/fixpng-thumbnailer.git $ cd fixpng-thumbnailer $ ./autogen.sh $ make $ sudo make install 

    之后,你可以使用一个新的命令gnome-fixpng-thumbnailer ,它的工作原理是这样的

    $ gnome-fixpng-thumbnailer [INPUT FILE] [OUTPUT FILE]

    注意这个命令,因为如果在同一个png上被调用两次,它会破坏png。

    我这样使用它:

     $ for file in *.png; do echo " $file";gnome-fixpng-thumbnailer $file $file; done 

    你会猜测为什么回显文件名。 这是因为这个命令可能会失败,(如果失败,不会有非零值),唯一的线索是“ZLib error!-3”消息。 这是一个快速的解决scheme,因为有趣的是,你会发现ipin.py确实uncrush这些文件。

阅读这是pngdefry的另一个工具。 它提供了关于所有这些东西的宝贵信息 – 即使它的来源 – 但我没有尝试过自己。

我希望在pngcrush中吸收这些function,所以你开箱即可,至less我已经发邮件给pngcrush维护者(嗨Glenn)。