由于UIImage引起的内存警告级别1
问题描述:
我正在处理一个需要缩放和旋转图像的组件。以下是部分由于UIImage引起的内存警告级别1
的流量选择从照片库中的图像 - >显示的UIImageView的形象 - >做缩放 - >保存此图像文件。
这适用于低分辨率图像。
,但一旦我选择具有较高分辨率的图像我第一次得到内存警告级别1.但我水湿释放的形象,因为我需要用相同的图像进一步进行。
我来知道图像由(宽×高×4)解压缩,所以如果我选择的图像1800 * 1200内存消耗是8.6 MB [还与仪器检查。
任何人都可以帮我解决这个问题吗?这会产生2个队列
- 我们可以使用高分辨率的图像吗?
- 2个UIImageview有两个高分辨率图像呢?
感谢,
萨加尔
答
你可以改变你的操作顺序位。
选择从照片库中的图像 - >缩放图像 - >保存缩放后的图像文档目录 - >显示在UIImageView的缩放后的图像。
缩放和保存图像需要时间,所以你的用户将有一点等待的,他们看到的图像在你的UIImageView之前。用取消选项显示活动指示符是个好主意。
我已经使用这种技术与相当大的图像,它在较旧的设备上工作,而不会引起内存警告。
此外,请注意autorelease池。如果不小心,物体可以保持比预期更长的寿命。 – rpetrich 2010-09-29 05:49:13
感谢机器人的快速回复,但协议是用户将首先选择图像,如果需要,然后他将使用缩放选项来缩放它以适合全屏。所以与此挣扎。 – 2010-09-29 05:49:59
我不清楚你的意思是“缩放以适合全屏”。为什么不使用图像选择器的能力来选择图像的一部分?或者,如果图像已经比“全屏”大得多,请保存缩小到屏幕分辨率的版本并使用它。它仍会使用比原来少得多的内存。 – 2010-09-29 06:04:00