我在tableview单元格中显示图像(图像名称保存在plist中)。在将其设置为单元格之前,我将图像的大小调整为<br/>
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;
}
对此非常感激。
由于
答案 0 :(得分:19)
试试这个:而不是UIGraphicsBeginImageContext(size);
使用UIGraphicsBeginImageContextWithOptions(size,NO,0.0);
根据我的理解你正在做什么,无论分辨率如何,都将图像大小调整为32x32(以磅为单位)。 UIGraphicsBeginImageContextWithOptions
将图像缩放到设备屏幕的比例。因此,您将图像大小调整为32x32点,但保留了视网膜显示的分辨率
(请注意,这是我从苹果公司的uikit参考中了解到的..可能不是这样..但它应该) 阅读here