由于UIImage引起的内存警告级别1

由于UIImage引起的内存警告级别1

问题描述:

我正在处理一个需要缩放和旋转图像的组件。以下是部分由于UIImage引起的内存警告级别1

的流量选择从照片库中的图像 - >显示的UIImageView的形象 - >做缩放 - >保存此图像文件。

这适用于低分辨率图像。

,但一旦我选择具有较高分辨率的图像我第一次得到内存警告级别1.但我水湿释放的形象,因为我需要用相同的图像进一步进行。

我来知道图像由(宽×高×4)解压缩,所以如果我选择的图像1800 * 1200内存消耗是8.6 MB [还与仪器检查。

任何人都可以帮我解决这个问题吗?这会产生2个队列

  1. 我们可以使用高分辨率的图像吗?
  2. 2个UIImageview有两个高分辨率图像呢?

感谢,

萨加尔

你可以改变你的操作顺序位。

选择从照片库中的图像 - >缩放图像 - >保存缩放后的图像文档目录 - >显示在UIImageView的缩放后的图像。

缩放和保存图像需要时间,所以你的用户将有一点等待的,他们看到的图像在你的UIImageView之前。用取消选项显示活动指示符是个好主意。

我已经使用这种技术与相当大的图像,它在较旧的设备上工作,而不会引起内存警告。

+0

此外,请注意autorelease池。如果不小心,物体可以保持比预期更长的寿命。 – rpetrich 2010-09-29 05:49:13

+0

感谢机器人的快速回复,但协议是用户将首先选择图像,如果需要,然后他将使用缩放选项来缩放它以适合全屏。所以与此挣扎。 – 2010-09-29 05:49:59

+0

我不清楚你的意思是“缩放以适合全屏”。为什么不使用图像选择器的能力来选择图像的一部分?或者,如果图像已经比“全屏”大得多,请保存缩小到屏幕分辨率的版本并使用它。它仍会使用比原来少得多的内存。 – 2010-09-29 06:04:00