我使用核心顯卡與修改執行本SO answer核芯顯卡圓形圖像模糊
這裏畫一個圓圈形象是我的源:
+ (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;
}
的邊緣模糊,我不知道爲什麼(我認爲它與設備的分辨率無關,它可以直接使用)。
我試着用CGContextFillRect(context, rect);
代替CGContextFillEllipseInRect(context, rect);
,那也太模糊了。然後,我嘗試CGContextFillRect(context, CGRectMake(0, 0, radius*4, radius*4)
,它完美,清晰的形象和一切(雖然是一個正方形,而不是一個圓圈)。所以我改回CGContextDrawEllipseInRect(context, CGRectMake(0, 0, radius*4, radius*4)
但是這是我的結果:
,而用矩形,它是使用尺寸半徑* 2時,但具有更清晰的圖像相同。
我該如何解決我的模糊問題,爲什麼CGContextFillEllipseInRect
不能填充預定義的圖像矩形?
我也有這個問題。解決方法是將刻度設置爲0.0,從而將圖像繪製到設備的比例尺上。原始UIGraphicsBeginImageContext將不透明設置爲NO,默認縮放至1.0。我指出了這一點,因爲我原本以爲該修復與將不透明設置爲NO有關。 – Gandalf458