为啥 UIImage 的尺寸比实际尺寸大 3 倍?
Posted
技术标签:
【中文标题】为啥 UIImage 的尺寸比实际尺寸大 3 倍?【英文标题】:Why is the size of the UIImage 3xtimes larger than the real size?为什么 UIImage 的尺寸比实际尺寸大 3 倍? 【发布时间】:2014-10-02 19:56:11 【问题描述】:我在我的应用程序中使用了一些非常大的图像。它们的分辨率很大,所以在 iphone 6+ 上看起来不错。图像大小约为 3.5MB。
当我在 iphone 上运行应用程序并使用 [UIImage imageNamed:@"foo.png"]
加载单元格中的图像时;如果我滚动浏览所有 10 个单元格,它会将内存填充到 100MB。
我查看了 Instruments,它告诉我每张图片都有 9MB 大。这正常吗?
这是我的 UICollectionViewCell 代码,我必须告诉你,单元格加载正常,一次加载一个,所以单元格没有问题。
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
WallpaperCell *cell = (WallpaperCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"wallpaperCellIdentifier" forIndexPath:indexPath];
cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
NSString *imageName = [self.wallpapers objectAtIndex:indexPath.row];
UIImage *image = [UIImage imageNamed:imageName];
[cell setWallpaperImage:image];
[cell setWallpaperName:imageName];
NSLog(@"cell:%@",cell);
return cell;
【问题讨论】:
【参考方案1】:要将图像绘制到屏幕上,UIImage 需要是没有压缩的位图。您的 png 是压缩格式,因此比位图表示要小得多。
【讨论】:
以上是关于为啥 UIImage 的尺寸比实际尺寸大 3 倍?的主要内容,如果未能解决你的问题,请参考以下文章
为啥android浏览器视口比手机的实际屏幕尺寸小很多,即使使用width=device-width?
为啥我的 CGImage 是 UIImage 大小的 3 倍