Ios UIImage是否缓存文件或渲染的位图?
我通常在iOS项目(加载到Ios UIImage是否缓存文件或渲染的位图?,ios,memory-management,uiimageview,Ios,Memory Management,Uiimageview,我通常在iOS项目(加载到UIImageView实例的NIB中)中使用Fireworks PNG(具有不同的层,一些隐藏的,等等)。通常,我使用PNG并将其重新保存为PNG-32以使文件更小,但我现在对此提出质疑(因为这样我就必须单独存储PNG) 在我粗略的测试中,较小的文件大小不会影响最终的内存使用是否存在关系,或者最终渲染的位图是否重要? 注意:我不是在问使用像素太大的图像。一个有效的比较应该是1mb的高质量jpeg与100K的相同内容的低质量jpeg。内存使用是否相同?UIImageVie
UIImageView
实例的NIB中)中使用Fireworks PNG(具有不同的层,一些隐藏的,等等)。通常,我使用PNG并将其重新保存为PNG-32以使文件更小,但我现在对此提出质疑(因为这样我就必须单独存储PNG)
在我粗略的测试中,较小的文件大小不会影响最终的内存使用是否存在关系,或者最终渲染的位图是否重要?
注意:我不是在问使用像素太大的图像。一个有效的比较应该是1mb的高质量jpeg与100K的相同内容的低质量jpeg。内存使用是否相同?
UIImageView
不进行任何处理,因此,如果设置大图像,则无论imageView的大小如何,当imageView需要时,整个内容都会加载到内存中。所以,是的,这确实有区别。您应该存储在imageView
中工作的最小图像
当您当前的示例使用NIB时,如果您正在创建一个显示从其他来源(如设备摄像头或外部服务)获取的大型图像的应用程序,那么您将在
UIImageView
中使用这些图像之前,先将其缩放到显示大小对不起,我这里指的是文件大小,而不是图像大小或显示大小。答案是否仍然相关?谢谢。我的答案与内存大小有关。如果文件最终具有相同的内存占用空间,那么使用哪一个就无关紧要了。较小的文件大小应该加载得更快一些,但这可能不明显。一般来说,我总是建议使用最小大小的资源。考虑到其他限制(如你的时间等)是合理的。这才是真正的问题。确定内存占用的是结果位图(全尺寸),还是必须解析的文件?UIImage缓存是什么?渲染位图还是文件?对于这个问题,加载时间无关紧要,除非每次都从文件加载UIImage。只是修改了问题以反映这个更简单的问题。再次感谢。生成的位图决定了内存占用。文件大小确实与此相关,例如,越小越好,并且会产生影响。加载数据后,您应该在仪器中看到这一点(例如显示imageView
)。