pngcrush:在linux上崩溃?

时间:2011-08-21 14:01:54

标签: ios sdk png pngcrush

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

是否有可以在Linux上运行并恢复iphone优化的工具?

感谢。

2 个答案:

答案 0 :(得分:3)

iphone-fixpng适用于Linux。请参阅此discussion解释它的作用。我正在链接到web.archive.org,因为原版已关闭。

答案 1 :(得分:3)

您可以选择使用以下方法之一:

  1. 使用VirtualBox在Linux中安装Hackintosh。在其中安装Xcode,然后执行this

    之类的操作
    $ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir uncrushed -revert-iphone-optimizations -q *.png
    

    这使用来自apple的修改后的pngcrush来撤消其优化。猜猜这将适用于所有压碎的朋友。有关更准确的命令 xcrun

  2. ,请参阅this
  3. iPIN.py下载this blog并执行

    $ python ipin.py
    

    这将解析实际目录及其子目录中的所有文件。不要担心叫它两次,从我的经验来看,没有腐败已经破裂的pngs。从here开始,你会发现ipin.py没有优化所有的苹果pngs

      

    它( ipin.py )无法处理多个IDAT块,不能与Adam7隔行扫描图像一起使用,也无法修复预乘的alpha。

  4. 使用特定的gnome binary tool。这需要一些低级步骤:

    $ 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错误!-3”消息。这是一个快速的解决方案,因为有趣的是,你会发现 ipin.py 会破坏这些文件。

  5. 阅读this了解围绕 pngdefry 的其他工具。它提供了关于所有这些东西的宝贵信息 - 即使它的来源 - 但我还没有尝试过。

    我的希望是pngcrush吸收了这些功能,所以你开箱即用,至少我已经发送邮件给pngcrush维护者(嗨格伦)。