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

A.S*_*.S. 8 image tableviewcell ios

我在tableview单元格中显示图像(图像名称保存在plist中).在将其设置为单元格之前,我正在调整图像大小
imageSize = CGSizeMake(32, 32);

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

在此输入图像描述

我将两个图像添加到项目中(即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;
}
Run Code Online (Sandbox Code Playgroud)

关于此的任何指示非常感谢.

谢谢

sky*_*ytz 19

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

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

(请注意,这是我从苹果的uikit参考中理解的...可能不是这样......但它应该)在这里阅读