我想显示一个相当大的图像中UIImageView
。图像可以正确下载(使用NSSessionDownloadTask
),我可以从中创建一个UIImage
,但是UIImageView中什么都没有显示。我没有收到任何内存警告或错误。有人知道发生了什么吗?
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
{
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]];
self.imageView.image = image;
self.progressView.progress = 0.0f;
[self.activityView stopAnimating];
[self.activityView setHidden:YES];
NSLog(@"Received full Image!"];
}
您的图片刚刚崩溃,我试图在4GB笔记本电脑上显示该Chrome标签。这也导致我的笔记本电脑在保存之前溅出了很多水。
这是一个36MB的jpeg压缩位图。18K x 18K像素。让我们做一些数学运算。
给定分辨率,您总共拥有324000000像素。324M像素。每个由内存中3个字节的颜色信息表示。一个很好的近似值就是所有原始像素数据均为1GB。而且我不确定这是否会考虑UIImage
实例在内部存储该实例的方式。
鉴于上述情况,以及最新(且功能强大)的iOS设备总共具有1GB RAM的事实,即使没有固有的大小限制,我也可以肯定地说图像太大。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句