我正在尝试在我的iOS APP中显示图像。图像是10000x8000,远高于iPhone的屏幕分辨率,如果我将其添加到UIImageView,APP将收到内存警告并导致崩溃。可以任何一个给我一个关于如何处理它的建议?非常感谢。
答案 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的答案减少后将这个高分辨率图像存储到某个地方。然后在重新请求相同的图像网址时,您应首先查看存储的目录,如果该图像不存在,则可以请求图像。
但是,是的,我并不建议你按照我的回答,因为你需要下载这个非常高分辨率的图像(实际上没有用),所以如果你从这里得到这个图像您的服务器,您可以要求他们为您缩小图像尺寸。我听说过,他们可以将图片缩小到不同的尺寸,以帮助应用在不同的地方展示特定的图片。