我正在编写一个iOS应用程序,但对使用png和性能有一些疑问,但我找不到任何答案。

我的应用使用来自2个来源的png,其中一些位于应用捆绑包中,而另一些则是从互联网上下载并存储在本地的。我经常使用的应用程序包中的程序包,我知道xCode在编译应用程序时将它们针对iOS进行了优化(字节交换和预乘Alpha)。我对从互联网上下载的png有以下问题。

1)如果图像是在捆绑包中下载的,那么在iOS中使用png仍然可以获得性能优势。是否可以将xCode优化以某种方式应用于下载的图像?

2)除了文件大小以外,使用png8和png24还有什么优点(或缺点)?从本地文件扩展时,它们占用的内存更少吗?扩展它们是否需要花费较少的精力?动画有什么性能提升吗?还是仅从较小的文件大小和更好的下载时间中获益?

在此先感谢您提供任何答案。

保罗

最佳答案

  • PNG优化由Apple自己的pngcrush版本完成(即使其作者指出



    -但Apple不在乎这些细节)。编译源代码时,XCode会调用pngcrush。编译后,XCode与以后下载的图像无关。但是,您可以在上传新图像之前应用Apple的pngcrush来“优化”新图像。在我看来,这是否值得付出努力值得怀疑。
  • 连续四次取决于。 (如果我计数正确)。8位PNG比24位PNG小3倍。使用单字节而不是3或4(RGB,RGBA)应该更快。当然,它使用更少的内存。它主要(或仅可能)取决于图像的内容。用PNG的算法会严重压缩照片图像,当以8位颜色索引模式保存时,图像会遭受颜色量化。具有相同颜色的大区域的典型“计算机”图像(例如,文本编辑器的快照)可能会非常快速地解压缩。

  • 如果要使用8位PNG,则不使用Apple修改版适用的“优化”。它的主要修改是重新排列RGB(A),以使其与iPhone/iPad的显示对齐。 (其次要目的似乎是使图像无效为有效的PNG。)

    关于ios - iOS中的Png-捆绑包中的png与下载-png8 vs png24,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21008079/

    10-08 21:37