我正在使用Core Graphics绘制一个圆形图像,使用的是SO答案的修改版实现。
以下是我的源代码:
边缘模糊,我不确定原因(我认为设备的分辨率不重要,它应该可以立即使用)。
我尝试将
我应该如何解决我的模糊问题?为什么
以下是我的源代码:
+ (UIImage*)circularImageWithRadius:(CGFloat)radius color:(UIColor*)color{
CGRect rect = CGRectMake(0.0f, 0.0f, radius*2, radius*2);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillEllipseInRect(context, rect);
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
边缘模糊,我不确定原因(我认为设备的分辨率不重要,它应该可以立即使用)。
我尝试将
CGContextFillEllipseInRect(context, rect);
替换为 CGContextFillRect(context, rect);
,但仍然模糊。然后我尝试了CGContextFillRect(context, CGRectMake(0, 0, radius*4, radius*4)
,这样图像就非常清晰了(虽然是一个正方形,而不是圆形)。所以我又改回了CGContextDrawEllipseInRect(context, CGRectMake(0, 0, radius*4, radius*4)
,但结果如下图:
相比之下,当使用矩形时,尺寸与使用radius*2时相同,但图像更加清晰。我应该如何解决我的模糊问题?为什么
CGContextFillEllipseInRect
没有填充预定义的图像矩形?