我想加载和显示图像(.jpg,.png)具有大尺寸, 1800x1200或2000x1800(宽x高)。 如果我在UIImageView中显示如此大尺寸的图像(1800x1200或2000x1800),它也消耗大量内存,应用程序崩溃。 也根据Apple的文档(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html),我们应该避免创建尺寸大于1024 x 1024的UIImage对象。 一个解决方案是调整图像大小。我已经应用逻辑来使用以下代码调整图像大小。UIImage与大图像大小 - 内存问题 - 崩溃
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这工作正常,并调整图像大小。但是,当它在设备上下文中加载大图以调整大小时,它会在一秒钟内消耗大量内存,并且因为应用程序崩溃。 所以这种方法是行不通的。如果您有更好的方法调整大小而不会崩溃,请分享。
此外,在此(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html)链接,苹果公司表示,
“你应该避免创建于1024×1024尺寸更大的UIImage对象。除了大量的内存这样的图像将消耗,在将图像用作OpenGL ES中的纹理或将图像绘制到视图或图层时,可能会遇到问题。如果您正在执行基于代码的操作(如调整大于1024 x的图像的大小),则此大小限制不适用通过将它绘制到一个支持位图的图形上下文来实现1024个像素。事实上,您可能需要以这种方式调整图像大小(或将其分成几个较小的图像),以便将其绘制到您的某个视图中。“
有人可以详细说明"This size restriction does not apply if you are performing code-based manipulations, such as resizing an image larger than 1024 x 1024 pixels by drawing it to a bitmap-backed graphics context."
吗?如何在位图支持的图形上下文上绘制图像?什么是位图支持的图形上下文?如果有人可以共享示例代码,它会帮助我。 在此先感谢!