我正在尝试使用UIImage
的{{1}}方法绘制图像。这是代码:
drawInRect:
问题是生成的图像模糊。这是与源图像(左侧)相比得到的图像(在右侧):
我已经尝试了UIImage *image = [UIImage imageNamed:@"OrangeBadge.png"];
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), NO)
,但这并没有解决问题。
有什么想法吗?
提前致谢。
答案 0 :(得分:30)
如果您正在使用视网膜设备进行开发,可能问题与图形上下文的分辨率有关。你会尝试:
UIGraphicsBeginImageContextWithOptions(size, NO, 2.0f);
这将启用视网膜分辨率。此外,您的图像应该以@ 2x分辨率提供,以便工作。
如果您也想支持非视网膜设备,可以使用:
if ([UIScreen instancesRespondToSelector:@selector(scale)]) {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0f);
} else {
UIGraphicsBeginImageContext(newSize);
}