我正在编写一个iOS应用程序,但对使用png和性能存在一些疑问,但我找不到任何答案。
我的应用使用来自2个来源的png,其中一些位于应用捆绑包中,而另一些则从互联网下载并存储在本地。我经常使用的应用程序包中的程序包,我知道xCode在编译应用程序(字节交换和预乘Alpha)时会针对iOS优化它们。我对从互联网上下载的png有以下问题。
1)如果图像是在捆绑包中下载的,那么在iOS中使用png仍然可以获得性能优势。xCode优化可以某种方式应用于下载的图像吗?
2)除了文件大小以外,使用png8和png24还有什么优点(或缺点)?从本地文件扩展时,它们占用的内存更少吗?扩展它们是否需要花费较少的精力?动画有什么性能提升吗?还是仅从较小的文件大小和更好的下载时间中获益?
预先感谢您的任何答案。
保罗
PNG优化是由Apple自己的版本完成的pngcrush
(即使其作者声明
[...] 2.更改后的版本必须清楚地标上原样,并且不得将其错误地表示为原始二进制文件或源文件。(http://optimate.dl.sourceforge.net/project/pmt/pngcrush/1.7.70/pngcrush-1.7.70-HELP.txt)
-但Apple不在乎这些细节)。pngcrush
XCode在编译源代码时调用。编译后,XCode与以后下载的图像无关。但是,您可以pngcrush
在上传新图像之前应用Apple的“优化”新图像。在我看来,这是否值得付出努力值得怀疑。
这取决于连续四次。(如果我计数正确)。8位PNG比24位PNG小3倍。使用单字节而不是3或4(RGB,RGBA)应该更快。当然,它使用更少的内存。它主要(或仅可能)取决于图像的内容。用PNG的算法会严重压缩照片图像,当以8位颜色索引模式保存时,图像会遭受颜色量化。具有相同颜色大区域的典型“计算机”图像(例如,文本编辑器的快照)可能会非常快速地解压缩。
如果你正在打算使用8位PNG,不使用“优化”,苹果修改后的版本适用。它的主要修改是重新排列RGB(A),以使其与iPhone / iPad的显示对齐。(其次要目的似乎是使图像无效为有效的PNG。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句