2012-04-25 50 views
0

当动画的数使用的UIImageView帧如何的iOS它们映射到存储器中,是单纯的图像分辨率X比特深度(即,200×200的24bit TGA将是相同的,为200×200的24bit JPG)或确实的iOS取考虑图像中未使用的alpha像素。还如何与图片这项工作加载到Xcode项目(可能未使用)和那些直接加载到内存中(即使用的UIImage imageNamed:从应用程序内)?的UIImageView内存使用

+1

您可以监视仪器内存消耗,并建立一个测试案例来监控应该是直接的。 – fbrereto 2012-04-25 17:55:36

+0

谢谢,我会这样做的。 – fuzzygoat 2012-04-25 18:07:20

回答

1

我认为,即使图像是24位,它也会解压缩到32位,因为默认的颜色空间是4通道,尺寸通常是number_of_pixel_in_row*number_of_pixel_in_height*byte_for_pixels。在我的测试中,即使对于不同的格式,我总是看到相同的内存消耗。图像以他们所需要的情况下要绘制,之后,如果不释放他们保持内存pressure.That意味着,即使你创建一个UIImage对象也不会进行解压缩,直到它需要绘制的时间延迟加载。诸如-imageNamed之类的方法将图像缓存在内存中,我通常只将它用于重复图像。
希望这有助于

+0

谢谢你安德烈,那是非常有帮助的,大加赞赏。 – fuzzygoat 2012-04-25 20:25:22

+0

你是welcome.Probably你觉得有趣也从苹果这个充足的代码中存在的iOS [LargeImageDownsizing是解释图像渲染(里面有很多的评论http://developer.apple.com/library/ios/#samplecode/LargeImageDownsizing/简介/ Intro.html) – Andrea 2012-04-26 05:41:22