在iOS应用中显示10000x8000像素的图像

时间:2016-03-02 06:47:17

标签: ios uiimageview

我正在尝试在我的iOS APP中显示图像。图像是10000x8000,远高于iPhone的屏幕分辨率,如果我将其添加到UIImageView,APP将收到内存警告并导致崩溃。可以任何一个给我一个关于如何处理它的建议?非常感谢。

2 个答案:

答案 0 :(得分:2)

这是来自apple的示例应用程序,它显示大尺寸图像,它使用TileImageView缩放图像并根据当前缩放重用图块。

https://developer.apple.com/library/ios/samplecode/LargeImageDownsizing/Introduction/Intro.html

或者如果您只想缩小图像,可以使用它。

+ (UIImage*)imageWithImage:(UIImage*)image 
               scaledToSize:(CGSize)newSize;
{
   UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   return newImage;
}

答案 1 :(得分:0)

这只是旁注而非答案。

@AmitTandel的回答肯定会帮助你,但

记住,你不应该总是要求这个高分辨率的图像而应该实现一个逻辑,在使用@Amit的答案减少后将这个高分辨率图像存储到某个地方。然后在重新请求相同的图像网址时,您应首先查看存储的目录,如果该图像不存在,则可以请求图像。

但是,是的,我并不建议你按照我的回答,因为你需要下载这个非常高分辨率的图像(实际上没有用),所以如果你从这里得到这个图像您的服务器,您可以要求他们为您缩小图像尺寸。我听说过,他们可以将图片缩小到不同的尺寸,以帮助应用在不同的地方展示特定的图片。