当我在UIImageView(2000x3000以上)中打开大图像时,我的应用程序因内存消耗而崩溃,因此我们的想法是缩放图像。到目前为止,我只看到加载大图像的代码,然后在较小的上下文中绘制它,这仍然需要大文件的内存。
有没有办法直接从文件中绘制上下文或从具有正确尺寸的文件创建UIImage?
我想要的是显示内容让我们说一个2000x3000像素的jpeg文件让我们说一个500x750像素的UIImageView。并且没有消耗太多内存,因为有多个图像要显示。
欢迎任何帮助/想法!
答案 0 :(得分:0)
我想要一个高度和宽度为48像素的图像,所以如果图像与该尺寸不同,我只需将图像调整为该尺寸:
#define kAppIconHeight 48
// Set appIcon and clear temporary data/image
UIImage *image = [[UIImage alloc] initWithData:self.activeDownload];
if (image.size.width != kAppIconHeight && image.size.height != kAppIconHeight)
{
CGSize itemSize = CGSizeMake(kAppIconHeight, kAppIconHeight);
UIGraphicsBeginImageContext(itemSize);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
[image drawInRect:imageRect];
self.appRecord.appIcon = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
else
{
self.appRecord.appIcon = image;
}
self.activeDownload = nil;
[image release];