1.image中画线方法
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageView=[[UIImageView alloc] initWithFrame:self.view.frame];
[self.view addSubview:imageView];
self.view.backgroundColor=[UIColor blueColor];
UIGraphicsBeginImageContext(imageView.frame.size);
[imageView.image drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); //边缘样式
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 15.0); //线宽
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0); //颜色
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), 100, 100); //起点坐标
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), 200, 100); //终点坐标
CGContextStrokePath(UIGraphicsGetCurrentContext());
imageView.image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
2.获取当前Context画线方法:(未主动创建path)
CGContextRef ctx = UIGraphicsGetCurrentContext();//获取当前ctx
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(ctx, 15.0); //线宽 CGContextSetAllowsAntialiasing(ctx, YES); CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 1.0); //颜色 CGContextBeginPath(ctx); CGContextMoveToPoint(ctx, 100, 100); //起点坐标 CGContextAddLineToPoint(ctx, 200, 100); //终点坐标 CGContextStrokePath(ctx);
其他画线: //画两条射线 // 创建一个Path句柄 CGMutablePathRef pathRef = CGPathCreateMutable(); // 初始化该path到一个初始点 CGPathMoveToPoint(pathRef, &CGAffineTransformIdentity, 100.0f, 0.0f); // 添加一条直线,从初始点到该函数指定的坐标点 CGPathAddLineToPoint(pathRef, &CGAffineTransformIdentity, 150.0f, 100.0f); CGPathMoveToPoint(pathRef, &CGAffineTransformIdentity, 100.0f, 0.0f); CGPathAddLineToPoint(pathRef, &CGAffineTransformIdentity, 100.0f, 150.0f); CGPathCloseSubpath(pathRef); // 关闭该path CGPathCloseSubpath(pathRef); // 将此path添加到Quartz上下文中 CGContextAddPath(ctx, pathRef); // 对上下文进行描边 CGContextStrokePath(ctx); //画三角形 //CGMutablePathRef pathRef = CGPathCreateMutable(); // 初始化该path到一个初始点 CGPathMoveToPoint(pathRef, &CGAffineTransformIdentity, 0.0f, 0.0f); // 添加一条直线,从初始点到该函数指定的坐标点 CGPathAddLineToPoint(pathRef, &CGAffineTransformIdentity, 50.0f, 100.0f); CGPathAddLineToPoint(pathRef, &CGAffineTransformIdentity, 100.0f, 50.0f); // 关闭该path CGPathCloseSubpath(pathRef); // 关闭该path CGPathCloseSubpath(pathRef); // 将此path添加到Quartz上下文中 CGContextAddPath(ctx, pathRef); // 对上下文进行描边 CGContextStrokePath(ctx);
|