如何直接从ios中的文件加载较小版本的Image?

时间:2011-11-05 20:08:35

标签: ios uiimage

当我在UIImageView(2000x3000以上)中打开大图像时,我的应用程序因内存消耗而崩溃,因此我们的想法是缩放图像。到目前为止,我只看到加载大图像的代码,然后在较小的上下文中绘制它,这仍然需要大文件的内存。

有没有办法直接从文件中绘制上下文或从具有正确尺寸的文件创建UIImage?

我想要的是显示内容让我们说一个2000x3000像素的jpeg文件让我们说一个500x750像素的UIImageView。并且没有消耗太多内存,因为有多个图像要显示。

欢迎任何帮助/想法!

1 个答案:

答案 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];