在有或没有 Xcode 的情况下为 Mac OS X 获取 pngcrush
PNGcrush 是一种图像优化实用程序,其主要功能是以无损方式减小 PNG 图像的整体文件大小。它非常受开发人员和设计人员的欢迎,虽然它从一开始就捆绑在某些版本的 linux 中,但如果不安装 Xcode,默认情况下它不会包含在 OS X 中。我们将介绍在 Mac 上使用或不使用 Xcode 的四种简单方法来获取该实用程序,并且还提供了一个可能更适合许多用户的优秀免费 GUI 替代方案。
ImageOptim,优秀的pngcrush GUI替代品
ImageOptim 是一个包罗万象的图像优化实用程序,它也恰好在其功能中集成了 pngcrush。因为 ImageOptim 不仅可以处理 png 文件,还可以处理 jpg 和 gif,所以长期以来,它一直是我们从 OS X 压缩和优化图像的总体建议:
ImageOptim 非常有效,它平均无损地减少图像文件大小15-35%。它也是从图像文件中快速剥离 EXIF 数据的出色工具,它与文件大小减小同时完成:
对命令行不适应的人应该坚持使用ImageOptim,因为它非常好用,支持拖放和批处理,而且基本上是万无一失的。尽管如此,这里还有一个命令行版本的 ImageOptim-CLI 可用,或者那些熟悉终端的人可以继续使用 MacPorts 或 Homebrew 安装 pngcrush 而无需 ImageOptim。
使用Xcode获取pngcrush
如果你在OS X中安装了Xcode,那么你已经安装了pngcrush,它恰好埋藏在Xcode应用程序包的深处,位于以下位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush
这是一个非常庞大的路径,所以如果你打算直接使用pngcrush,你可以直接将它添加到你的PATH,或者在你的.bash_profile中为它创建一个别名:
alias pngcrush='/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush'
走这条路显然需要安装相当大的Xcode,如果你不是iOS或Mac开发人员那么仅仅获得命令行pngcrush工具有点过分,因此MacPorts和 Homebrew 是更好的选择。
使用MacPorts在OS X中安装pngcrush
ImageOptim 和ImageOptimCLI 没有为你做,你不想安装Xcode?您也可以通过 MacPorts 或 Homebrew 获得 pngcrush。在 OS X 中安装 MacPorts 显然是一个先决条件,如果你还没有它,你可以通过源代码安装它,一个简单的包,或者直接从开发人员那里获得 svn。
sudo 端口安装pngcrush
使用Homebrew安装pngcrush
对于Homebrew用户,安装pngcrush和往常一样简单:
brew 安装pngcrush
当然,你需要先安装Homebrew,这很容易通过在终端执行以下命令来完成:
"ruby -e $(curl -fsSL https://raw.github.com/mxcl/homebrew/go) "
如果您在安装 Homebrew 或 MacPorts 时遇到问题,您可能最近没有安装命令行工具。免费并可从 Apple 获得,单独安装命令行工具需要开发人员中心登录(免费品种工作正常)。
从命令行使用pngcrush
不管是用Homebrew、MacPorts还是Xcode别名安装pngcrush,使用工具都是一样的,基本格式是这样的:
pngcrush inputfile.png outputfile.png
输入文件不会被修改,它将被复制为输出文件,并赋予不同的名称,如下所示:
pngcrush ~/Desktop/BloatedImage.png ~/Desktop/CompressedImage.png
pngcrush 将提供一份压缩报告,展示总文件大小的减少以及过程中使用了多少 CPU:
Best pngcrush method=10 (fm 5 zl 9 zs 1) for /Users/OSXDaily/Desktop/PngCrushTest.png (29.90% IDAT reduction) (25.23% filesize减少)CPU使用时间=0.249秒(解码0.024,编码0.217,其他0.008秒)
很像ImageOptim,它对减少PNG文档的文件大小非常有效:
然而,与ImageOptim不同,pngcrush不适用于其他图像文件格式。