在内存占用空间小的情况下调整iPhone上的UIImage大小

sam*_*ker 8 iphone memory-management uiimagepickercontroller uiimage

我已经看过几十次问这个问题但从未回答过.

你如何调整UIImage的大小(特别是从UIImagePickerController相机返回的).当我尝试任何方法时,我会得到20到40MB的内存峰值.它确实消失但我知道在某些硬件上这是完全不可接受的.

我尝试过使用以下操作的方法:drawInRect:,CGContextDrawImage(),imageWithCGImage:scale:orientation:

我知道生活在内存中的未压缩图像比磁盘上占用更多空间,但似乎最常见的UIImage调整大小操作涉及创建图像数据的副本.

即使Apple建议立即调整相机拍摄的照片大小.然而(b/c我相信他们知道这个话题非常复杂)他们没有就如何管理它提供任何指导.特别是在返回图像数据的时候该怎么做.

有没有人有一个平滑的方法来调整大型UIImage的大小,同时节省内存?我知道这是一项艰巨的任务.

Dav*_*son 0

我这里没有 100% 好的答案,但你有几个选择。iPhone会让你进入编辑/裁剪等模式。我认为这就是苹果希望你使用的。对我们来说这不太可接受。我们抓取图像数据,得到像素数据,释放原始图像。然后调整上半部分的大小,然后是我们自己。我会发布一些代码,但我不在工作。放假后几天我就可以...