0

当使用 UIImageView 为多个帧设置动画时,iOS 如何将它们映射到内存中,是简单的图像分辨率 x 位深度(即 200x200 24 位 TGA 将与 200x200 24 位 JPG 相同)还是 iOS 是否考虑了未使用的 alpha 像素图片。此外,这如何处理加载到 Xcode 项目中的图像(可能未使用)和直接加载到内存中的图像(即使用 UIImage imageNamed: 从应用程序内)?

4

1 回答 1

1

我认为即使图像是 24 位,它也会解压缩到 32 位,因为默认颜色空间是 4 通道,大小通常是number_of_pixel_in_row*number_of_pixel_in_height*byte_for_pixels. 在我的测试中,即使对于不同的格式,我总是看到相同的内存消耗。图像在需要在上下文中绘制时延迟加载,之后如果不释放它们会保持内存压力。这意味着即使您创建了 UIImage 对象,它也不会被解压缩,直到需要绘制它。-imageNamed 等方法将图像缓存在内存中,我通常只用于重复图像。
希望这可以帮助

于 2012-04-25T18:43:34.813 回答