将 PNG 添加到 XCode iPhone 项目时,编译器会使用 pngcrush 对其进行优化。一旦在设备上,图像的渲染性能非常快。
我的问题是我的应用程序在运行时从外部源(从 Picasa 网络相册,使用 Google 数据 API)下载其 PNG。不幸的是,这些图像的性能很差。当我在图像上进行自定义渲染时,它似乎比其内部存储的对应物慢 100 倍。我强烈怀疑这是因为下载的图像尚未优化。
有谁知道如何在 iPhone 上运行时优化外部下载的 PNG?我希望有一堂课能做到这一点。我什至考虑将 pngcrush 的源代码添加到我的应用程序中,这似乎很激烈。我自己也找不到合适的答案。我将非常感谢任何帮助。
谢谢!
更新:有些人建议这可能是由于文件的大小,但事实并非如此。在我的测试过程中,我添加了一个切换按钮,用于在使用嵌入式版本和下载完全相同的 PNG 版本之间进行切换。唯一的区别是嵌入式的在编译过程中被“pngcrush”优化了。这会进行一些字节交换(从 RGBA 到 BRGA)和 alpha 的预乘。(http://iphonedevelopment.blogspot.com/2008/10/iphone-optimized-pngs.html)
另外,我指的性能不是下载,而是渲染。我将自定义绘画叠加在图像之上(覆盖 UIView 的 drawRect 方法),当背景是下载版本时非常不稳定,而当它是嵌入式(因此优化)版本时非常流畅。同样,它是完全相同的文件。唯一的区别是优化,我希望我可以在运行时,在设备上,下载后对图像执行。
再次感谢大家的帮助!