(iphone)加载png到UIImage比png二进制大小占用更多的内存?

时间:2011-01-05 23:31:34

标签: iphone png uiimage

我正在加载100s 4k-8k png文件(768 * 768分辨率),总计不到1mg。

虽然我确实将它们转换为UIImage并偶尔调整/组合图像,但是 我很惊讶看到ipad设备因图像加载导致的内存警告而死亡。

转换为UIImage会占用比文件实际字节大小多得多的内存吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

那是因为png被解压缩到内存中,占用更多内存。每个解压缩的图像最多需要768 * 768 * 4 = 2.25 MB的内存。

答案 1 :(得分:0)

如果图像不是全部用于同时显示,您可能需要考虑如何加载图像。这里和其他地方有很多关于此的主题,例如this thread

UIImage imageNamed将缓存图像(有时Apple的缓存略有错误,无法正常释放),而UIImage imageWithData则不会,因此一旦不再显示,内存将被释放。根据您的具体情况,两者都有优点和缺点,因此请尽量了解差异。