【问题标题】:pngcrush: uncrush on linux? [closed]pngcrush:在 Linux 上解压? [关闭]
【发布时间】:2011-10-31 14:36:18
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: ios sdk png pngcrush


    【解决方案1】:

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

    【讨论】:

    • 请阅读问题。随 iOS sdk 提供的 pngcruch 二进制文件包含 Apple 的代码,该代码在 pngcrush 的原始版本中不可用。它应该在apple.com/opensource,但遗憾的是它不是。
    • 被指控有罪。我重写了我的答案。
    • 谢谢。实际上,您链接到的讨论有一个更好的链接(满足我的需要)-基于 Python 的“iPhone PNG Images Normalizer”-axelbrz.com.ar/?mod=iphone-png-images-normalizer
    • 嗨,有没有人有更新的链接在哪里可以找到 iphone-fixpng 应用程序?
    【解决方案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 以获得更准确的命令 xcrun

    2. this blog下载iPIN.py并执行为

      $ python ipin.py
      

      这将从实际目录及其子目录中解压所有文件。不用担心调用它两次,根据我的经验,它不会损坏已经未粉碎的 png。从here 你会发现ipin.py 不会去优化所有的苹果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 错误!-3”消息。这是一个快速的解决方案,因为有趣的是,您会发现 ipin.py 不会破坏这些文件。

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

    我希望pngcrush 吸收这些功能,以便您可以立即使用它,至少我已经向 pngcrush 维护者发送了一封邮件(嗨 Glenn)。

    【讨论】:

    • 我目前没有计划将 pngdefry 功能吸收到真正的 pngcrush 中,但我已经在 SourceForge 的 pngcrush 页面上放置了指向 pngdefry 的链接。
    猜你喜欢
    • 2020-12-10
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2018-12-19
    • 2010-11-04
    相关资源
    最近更新 更多