在我的iOS应用程序中,我试图使用CoreGraphics绘制曲线。绘图本身工作正常,但在Retina显示屏上,图像使用相同的分辨率绘制,没有被像素加倍。结果是一个像素化的图像。
我正在使用以下函数进行绘制:
我找到的建议是使用
非常感谢任何帮助。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:self.canvasView];
UIGraphicsBeginImageContext(self.canvasView.frame.size);
[canvasView.image drawInRect:self.canvasView.frame];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetShouldAntialias(ctx, YES);
CGContextSetLineCap(ctx, kCGLineCapRound);
CGContextSetLineWidth(ctx, 5.0);
CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 1.0);
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(ctx, currentPoint.x, currentPoint.y);
CGContextStrokePath(ctx);
canvasView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
lastPoint = currentPoint;
// some code omitted from this example
}
我找到的建议是使用
scaleFactor
属性或CGContextSetShouldAntialias()
函数,但迄今为止这两者都没有帮助。(尽管我可能使用不当。)非常感谢任何帮助。