我正在编写一个iOS应用程序,有一些关于使用png和性能的问题,我找不到任何答案。
我的应用程序使用来自两个来源的pngs,其中一些在应用程序包中,另一些则从互联网下载并存储在本地。在应用程序包中,我有自己的头脑,我知道在编译应用程序时,xCode会为iOS优化它们(字节交换和Pre相乘Alpha)。关于png从网上下载的情况,我有以下问题。
( 1)如果图片是在包中下载的,那么在iOS中使用pngs是否会带来性能上的好处?xCode优化可以以某种方式应用于下载的映像吗?
2)除了文件大小之外,使用png8和png24是否有任何优点(或缺点)?从本地文件展开时,它们是否占用较少的内存?是否需要更少的努力来扩大它们?动画有什么表现增益吗?还是从更小的文件大小和更好的下载时间中获得唯一的好处?
事先谢谢你的回答。
保罗
发布于 2014-01-09 09:50:29
pngcrush完成的(尽管作者声明
. 2.修改后的版本必须明确标明,不得被曲解为原始二进制或原始来源。(http://optimate.dl.sourceforge.net/project/pmt/pngcrush/1.7.70/pngcrush-1.7.70-HELP.txt)--但苹果并不关心这些细节)。pngcrush是由XCode在编译源代码时调用的。编译后,XCode不再与以后下载的图像有任何关系。然而,在上传新图像之前,你可以使用苹果的pngcrush来“优化”新图像。在我看来,这是否值得付出努力是值得怀疑的。
如果您要使用8位PNG,则不使用苹果修改后的版本所应用的“优化”。它的主要修改是重新排列RGB(A),大概是为了与iPhone/iPad的显示保持一致。(其次要目的似乎是使图像无效,使其成为有效的PNG。)
发布于 2014-01-08 23:27:44
当您将它们放入包中,并在Xcode中打开"compress“选项时,Xcode会重新格式化png,以使它们更快地加载(但通常比原来的要大,所以在这个行为上有很多线程)。
如果您真的很好奇,请查看应用程序的构建文件夹,并检查修改后的pngs。您将看到的选项是当前iOS的最佳选项。事实上,我隐约记得有一个线程,因此讨论了需要为一些图像转换程序(比如ImageMagik)提供哪些选项来模仿iOS正在做的事情(但我现在找不到)。
编辑:正如Jongware (其他答案)所暗示的那样,Xcode似乎正在使用修改后的pngcrush版本。给评估这些图像选项的人的链接。
https://stackoverflow.com/questions/21008079
复制相似问题