使用png和jpg的UIImage内存使用情况

时间:2009-12-05 04:12:54

标签: iphone objective-c

我在相机拍摄的同一图像的Documents目录中有两个文件。一个使用UIImagePNGRepresentation保存,另一个使用UIImageJPEGRepresentation保存。换句话说,一个是png,另一个是jpg。

现在,将仪器与真实设备配合使用。如果我加载png(initWithContentOfFile :),'真实内存'从2.34 MB变为2.43 MB。但是,如果我加载jpeg,内存从2.34 MB变为超过23 MB!加载任何png和jpeg都有类似的结果。

有人可以帮我理解原因吗?

2 个答案:

答案 0 :(得分:4)

它可能能够将用于PNG文件的内存直接映射到存储,而它无法使用必须解码的JPG执行此操作。

如果您考虑一下,对于来自iPhone相机的1600x1200图像,23 MB非常逼真,而.09 MB空间不足以保存图像数据。

答案 1 :(得分:0)

Apple为png文件提供了一种特殊的非标准格式,其中颜色字节的顺序与iPhone显示屏上的彩色条纹的顺序相同。 Png图像资源在Xcode复制到应用程序包时被重写。我怀疑在iPhone上用作图像时,png表示是特殊的。