2011-08-21 53 views
3

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

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

谢谢。

回答

3

iphone-fixpng适用于Linux。看到这个discussion解释它做什么。我正在链接到web.archive.org,因为原件已关闭。

+1

请阅读问题。与iOS sdk一起提供的pngcruch二进制文件包含Apple原始版本的pngcrush中没有的代码。它应该在http://www.apple.com/opensource上,但可悲的是它不是。 –

+0

有罪。我重写了我的答案。 – Jano

+2

谢谢。实际上,你链接的讨论有一个更好的链接(为了我的需要) - 一个基于Python的“iPhone PNG图像标准化器” - http://axelbrz.com.ar/?mod=iphone-png-images-normalizer 。 – noamtm

2

您可以选择使用这一个:

  1. 内Linux下安装的Hackintosh,在VirtualBox中。安装的Xcode里面,然后像做this

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

    本采用了改良pngcrush苹果撤销其优化。猜猜这将与所有粉碎的PNG一起工作。从this blogthis更多accurated命令xcrun

  2. 下载iPIN.py和执行为

    $ python ipin.py 
    

    这将从实际的目录及其子目录uncrush的所有文件。不要担心两次打电话,根据我的经验不会腐蚀已经破坏的png。从here你会发现ipin.py不deoptimize所有苹果的PNG

    它(ipin.py)不能处理多个IDAT块,不ADAM7隔行扫描图像的工作,并不能解决预乘以alpha。

  3. 使用特定的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的[输入文件] [输出文件]

    请小心使用此命令,因为如果在同一个png上调用两次,它会破坏png。

    我使用这种方式:

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

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

this周边pngdefry又一工具。它提供了关于所有这些东西的宝贵信息 - 尽管它的来源 - 但我没有尝试过自己。

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

+1

我目前没有计划将pngdefry功能吸收到真正的pngcrush中,但是我在SourceForge的pngcrush页面上放了一个pngdefry链接。 –