【问题标题】:Does UIImage Cache the File or the Rendered Bitmap?UIImage 是否缓存文件或渲染的位图?
【发布时间】:2012-02-08 07:49:41
【问题描述】:

我通常在我的 iOS 项目(加载到 UIImageView 实例中的 NIB 中)中使用 Fireworks PNG(具有不同的层,一些隐藏等)。通常,我使用 PNG 并将其重新保存为 PNG-32 以使文件更小,但我现在对此提出质疑(因为那时我必须单独存储 Fireworks PNG)......

在我的粗略测试中,较小的文件大小不会影响最终的内存使用。 是否存在关系,还是最终渲染的位图很重要?

注意:我不是在询问使用像素太大的图像。一个有效的比较将是一个重量为 1mb 的高质量 jpeg 与一个重量为 100K 的相同内容的低质量 jpeg。内存使用是一样的吗?

【问题讨论】:

    标签: ios memory-management uiimageview


    【解决方案1】:

    UIImageView 不做任何处理,所以如果你设置一个大图像,无论 imageView 的大小如何,当 imageView 需要它时,整个东西都会被加载到内存中。所以,是的,它确实有所作为。您应该存储在imageView 中工作的最小图像。

    虽然您当前的示例使用的是 NIB,但如果您正在创建一个显示从其他来源(例如设备摄像头或外部服务)获取的大图像的应用程序,那么您可以先将它们缩放到显示尺寸,然后再在 @ 中使用它们987654323@.

    【讨论】:

    • 对不起,我说的是文件大小,不是图像大小,也不是显示大小。答案仍然相关吗?谢谢。
    • 我的回答是与内存大小相关。如果文件最终具有相同的内存占用,那么使用哪个都没有关系。较小的文件大小应该加载得更快一些,但这可能并不明显。一般来说,我总是建议使用最小的可用资源。考虑其他限制(即您的时间等)是合理的。
    • 这确实是个问题。是最终的位图(全尺寸)决定了内存占用,还是必须解析的文件? UIImage 缓存什么?渲染位图还是文件?等等等等。对于这个问题,加载时间并不重要(很多),除非 UIImage 每次都从文件加载。只是修改了问题以反映这个更简单的问题。再次感谢。
    • 生成的位图决定了内存占用。文件大小确实与此相关,例如越小越好,并且会有所作为。加载数据后,您应该会在仪器中看到这一点(例如,显示 imageView)。
    猜你喜欢
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多