IOS:在不降低图像质量的情况下缩小图像尺寸

时间:2012-04-01 22:56:06

标签: ios image tableviewcell

我在tableview单元格中显示图像(图像名称保存在plist中)。在将其设置为单元格之前,我将图像的大小调整为<​​br/> imageSize = CGSizeMake(32, 32);

但是,在调整图像大小后,视网膜显示质量也会下降。

enter image description here

我将两个图像添加到项目中(即1x和@ 2x)。

这就是我将图像尺寸缩小到32x32的方式。

+ (UIImage *)scale:(UIImage *)image toSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}

对此非常感激。

由于

1 个答案:

答案 0 :(得分:19)

试试这个:而不是UIGraphicsBeginImageContext(size);使用UIGraphicsBeginImageContextWithOptions(size,NO,0.0);

根据我的理解你正在做什么,无论分辨率如何,都将图像大小调整为32x32(以磅为单位)。 UIGraphicsBeginImageContextWithOptions将图像缩放到设备屏幕的比例。因此,您将图像大小调整为32x32点,但保留了视网膜显示的分辨率

(请注意,这是我从苹果公司的uikit参考中了解到的..可能不是这样..但它应该) 阅读here