与xcode一样批量优化iphone/ipad显示器的PNG

与xcode一样批量优化iphone/ipad显示器的PNG,iphone,ipad,ios,png,Iphone,Ipad,Ios,Png,我正在为ipad制作一个杂志查看器,我正在为它的性能而挣扎 我发现显示PNG最昂贵的部分是加载过程。 我知道xcode能够在构建期间优化PNG,这样的映像加载速度更快。但是我不能把所有的图片都包括在构建中,因为它会很大 您知道如何优化任意png而不将其包含在构建过程中吗 你知道iphone的最佳格式是什么吗?我认为PNG应该使用RGB-8888配色方案,但我不确定还有什么是重要的 也许你知道imagemagick的确切参数?我们过去常常压缩大量PNG。你也可以试试这个。如果你不需要透明度,那么你

我正在为ipad制作一个杂志查看器,我正在为它的性能而挣扎

我发现显示PNG最昂贵的部分是加载过程。 我知道xcode能够在构建期间优化PNG,这样的映像加载速度更快。但是我不能把所有的图片都包括在构建中,因为它会很大

您知道如何优化任意png而不将其包含在构建过程中吗

你知道iphone的最佳格式是什么吗?我认为PNG应该使用RGB-8888配色方案,但我不确定还有什么是重要的


也许你知道imagemagick的确切参数?

我们过去常常压缩大量PNG。你也可以试试这个。如果你不需要透明度,那么你也可以试试JPG,而不是PNG。但是,您可能会为此经历许多尝试和错误过程,多次比较大小和质量的权衡

我想我找到了一篇关于iphone png优化的好文章:

建议xcode使用以下命令:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iPhoneOS optimize

上面的命令似乎使用了pngcrush的修改版本来优化PNG和变换颜色通道:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush-iphone-f 0 orig.png optimized.png


优化真的很有帮助。我的图像加载速度快了5倍

据我所知,最好的结果是通过使用它来实现的,我将自己用于未通过Xcode部署的PNG。它使用
pngcrush
和其他一些PNG优化工具来实现最佳压缩。据我所知,它没有使用alpha预乘法和字节交换。ImageOptim还有一个漂亮的GUI,支持拖放操作,可以同时粉碎多个文件。

试试看

它不仅可以优化PNG,还可以减少颜色,例如RGBA4444或RGB565,从而显著减少ping大小,并改善设备上的渲染

您还可以为支持PVR的设备(如iOS、某些Android)导出PVR文件


它还支持缩小低分辨率设备的图像

我已经使用了大量的空间,但我还没有做任何测试,看看解码图像是否会减慢速度。

事实证明,文件大小比Xcode预处理更重要(Xcode文件更大,加载速度也更慢)

减少PNG文件大小的最佳方法是将其转换为PNG8+alpha格式-您可以这样做(或使用手动调整)


但是,如果在您的案例中,从RGBA到预乘BGRA的转换花费的时间最多,那么将允许您批量将PNG转换为iOS的本机格式。

我一直在尝试pngnq、pngquant、pngcrush、optipng等

对于我的PNG集,我已经通过pngquant、pngnq和pngcrush实现了最小文件大小

Dir.glob("**/*.png").each do |file|
  ['pngnq -e .png -f', 'pngquant -f -speed 1 -ext .png', 'pngcrush'].each do |command|
    puts "#{command} #{file}"
    `#{command} #{file}`
  end
end

更多详细信息请访问:

很遗憾,我不熟悉imagemagick。所以我什么也说不出来。我只关心装载速度。大小不重要。但是我会尝试pngcrush,它也被xcode使用。加载时间取决于您正在加载的内容的大小。不是吗?有点。据time profiler称,该应用程序大部分时间都在转换图像。读取该文件并没有那么昂贵。但无论如何,Pngcrush是一种方式,因为我在下面使用的iphoneos优化命令使用它。在我的图像上运行该命令后,我节省了约0.55%,但它变得完全透明:/@Craig:一旦优化,你就无法再使用任何图像查看器或图像处理应用程序可靠地打开该PNG;生成的PNG不符合标准,只能保证在iOS应用程序中使用。那么,即使在iOS上加载,图像是否也变得完全透明?此外,如果您是用户,则图像不是完全透明的,因为iphoneos optimize会进行alpha通道预乘,因此即使在完全忽略alpha值的情况下,也会在渲染过程中考虑alpha通道。对固定级别(如4444)的哑量化会不必要地丢失质量。我写了()以感知的方式选择级别-对算法进行放气没有太大影响,但对人类有影响。ImageOptim很棒,但iOS的Xcode取消了优化。看。@porneL我以前见过,但我没有读过,因为你明确建议我们在Xcode中关闭iOS压缩。这就是你通常建议做的吗?@Danyal Aytekin:文件大小对速度的影响比Xcode的优化更大,所以如果你能用ImageOptim获得更小的文件,它们的加载速度也会更快。请在回答中包含一些代码。我们喜欢的答案不仅仅是链接,而且有自己的内容。我知道。但是,如果人们不必通过网站上的链接来获得答案,那就太好了。谢谢!很抱歉给您带来麻烦。在pngnq之后运行pngquant不会有任何作用,因为图像已经有256色了。你最好只运行
pngquant