当使用UIImageView动画多个帧时,iOS如何将它们映射到内存中,它是简单的图像分辨率x位深度(即200x200 24位TGA将与200x200 24位JPG相同)或iOS是否考虑未使用图像中的alpha像素。此外,如何将图像加载到Xcode项目中(可能不使用)和直接加载到内存中的图像(即使用UIImage imageNamed:来自应用程序内部)?
答案 0 :(得分:1)
我认为即使图像是24位,它也会解压缩到32位,因为默认颜色空间是4通道,大小通常是number_of_pixel_in_row*number_of_pixel_in_height*byte_for_pixels
。在我的测试中,即使对于不同的格式,我总是看到相同的内存消耗。图像在需要在上下文中绘制时被懒惰地加载,之后如果没有释放它们会保持内存压力。这意味着即使你创建了一个UIImage对象,它也不会被解压缩,直到它需要被绘制。诸如-imageNamed之类的方法将图像缓存在内存中,我通常仅将其用于重复图像。
希望这有帮助