在 iPhone 上加载大图像的最快方法是什么?
我应该使用 UIImage 还是 CGImage ? PNG 或 JPG ? 我已阅读该文档并尝试了不同的方法,但没有注意到显着的改进。 加载图像可能需要 1 秒,看起来很慢
Should I use UIImage or CGImage ? Png or Jpg ?
I've read the doc and tried different things but did not notice significant improvement.
Loading an image can take 1 good second which seems slow
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
UIImage
只是CGImage
的 ObjC 包装器,因此它们是相同的。来自 SDK 文档:
如果您有一个巨大的图像,您可以尝试使用
UIWebView
来减少内存消耗。加载图像的时间分为两部分:解压缩图像的时间(与选择 JPG 或 PNG 相关)和渲染图像的时间。
为了解压,我建议你分析简单的语句
UIImage
is just an ObjC wrapper ofCGImage
, so they're the same.From the SDK doc:
If you have a huge image, you could try to use a
UIWebView
to reduce memory consumption.The time to load an image has 2 parts: the time to decompress the image (relevant to choosing JPG or PNG) and the time to render the image.
For decompressing, I'd suggest you profile the simple statement
iPhone加载 PNG 比 JPG 更快,因为 PNG 在捆绑到应用程序中时进行了优化(尽管不是从远程加载)。
Addison Wesley 的 iPhone Cookbook 中的一个例外:
“Xcode 使用 SDK 附带的 pngcrush 实用程序自动优化您的 PNG 图像。(您可以在 /Developer 的 iPhoneOS 平台文件夹中找到该程序。从命令行运行它: –iphoneswitch 将标准 PNG 文件转换为 iPhone 格式的文件。)因此,请尽可能在 iPhone 应用程序中使用 PNG 图像作为首选图像格式。”
此外,PNG 是一种无损格式< /strong> 和 JPG 是有损的。 Apple 出于这些原因选择了这种格式。
-凯文
It is faster for the iPhone to load PNGs than JPGs because PNGs are optimized when bundled in your application (although, not loaded from remote).
An except from Addison Wesley's iPhone Cookbook:
"Xcode automatically optimizes your PNG images using the pngcrush utility shipped with the SDK. (You'll find the program in the iPhoneOS platform folders in /Developer. Run it from the command line with the –iphoneswitch to convert standard PNG files to iPhone- formatted ones.) For this reason, use PNG images in your iPhone apps where possible as your preferred image format."
Also, PNG is a lossless format, and JPGs are lossy. Apple chose this format for these reasons.
-Kevin