UIImageView 中的大小限制?

cfi*_*her 3 objective-c uiimageview uiimage ios

我想显示一个相当大的图像UIImageView。图像正确下载(使用 a 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!"];
}
Run Code Online (Sandbox Code Playgroud)

dan*_*n78 5

你的图片刚刚崩溃了我试图在 4GB 笔记本电脑上显示它的 Chrome 标签。它还导致我的笔记本电脑在保存之前出现了相当多的抖动。

它是一个 36MB 的 jpeg 压缩位图。18K x 18K 像素。让我们做一些数学运算。

鉴于分辨率,您总共有 324000000 个像素。3.24 亿像素。每个由内存中的 3 个字节的颜色信息表示。一个很好的近似值是总共 1GB 的原始像素数据。而且我不确定是否考虑到UIImage实例如何在内部存储它。

鉴于上述情况以及最新(且功能强大的)iOS 设备总共有 1GB 的 RAM 的事实,我认为即使没有涉及固有的大小限制,也可以肯定地说图像太大。