Apple的iOS SDK使用pngcrush的修改版本来转换iOS捆绑包中的png文件。 他们的版本也可以恢复更改(使用“-revert-iphone-optimizations”开关),但原始版本不能。pngcrush:uncrush在linux上?
有没有一种工具可以在Linux上运行并恢复iphone优化?
谢谢。
Apple的iOS SDK使用pngcrush的修改版本来转换iOS捆绑包中的png文件。 他们的版本也可以恢复更改(使用“-revert-iphone-optimizations”开关),但原始版本不能。pngcrush:uncrush在linux上?
有没有一种工具可以在Linux上运行并恢复iphone优化?
谢谢。
iphone-fixpng适用于Linux。看到这个discussion解释它做什么。我正在链接到web.archive.org,因为原件已关闭。
您可以选择使用这一个:
内Linux下安装的Hackintosh,在VirtualBox中。安装的Xcode里面,然后像做this
$ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir uncrushed -revert-iphone-optimizations -q *.png
本采用了改良pngcrush苹果撤销其优化。猜猜这将与所有粉碎的PNG一起工作。从this blog见this更多accurated命令xcrun
下载iPIN.py和执行为
$ python ipin.py
这将从实际的目录及其子目录uncrush的所有文件。不要担心两次打电话,根据我的经验不会腐蚀已经破坏的png。从here你会发现ipin.py不deoptimize所有苹果的PNG
它(ipin.py)不能处理多个IDAT块,不ADAM7隔行扫描图像的工作,并不能解决预乘以alpha。
使用特定的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维护者(嗨格伦)。
我目前没有计划将pngdefry功能吸收到真正的pngcrush中,但是我在SourceForge的pngcrush页面上放了一个pngdefry链接。 –
请阅读问题。与iOS sdk一起提供的pngcruch二进制文件包含Apple原始版本的pngcrush中没有的代码。它应该在http://www.apple.com/opensource上,但可悲的是它不是。 –
有罪。我重写了我的答案。 – Jano
谢谢。实际上,你链接的讨论有一个更好的链接(为了我的需要) - 一个基于Python的“iPhone PNG图像标准化器” - http://axelbrz.com.ar/?mod=iphone-png-images-normalizer 。 – noamtm