在触摸点上绘制UIView可以在边界上绘制出明显的绘图效果

解决我的最后一个问题: 在UIView的Bezier路径中绘制/绘制草图颜色 ,我拍摄了一个用所选颜色填充的精确图像(路径)。 然后,为了在UIView绘制,我获取了上下文颜色:

 lineColor=[UIColor colorWithPatternImage:img]; 

直截了当:

 CGPoint mid1 = midPoint(previousPoint1, previousPoint2); CGPoint mid2 = midPoint(currentPoint, previousPoint1); [curImage drawInRect:CGRectZero]; CGContextRef context = UIGraphicsGetCurrentContext(); [self.layer renderInContext:context]; CGContextMoveToPoint(context, mid1.x, mid1.y); CGContextAddQuadCurveToPoint(context, previousPoint1.x, previousPoint1.y, mid2.x, mid2.y); CGContextSetLineCap(context, kCGLineCapRound); CGContextSetBlendMode(context, kCGBlendModeCopy); CGContextSetLineJoin(context, kCGLineJoinRound); CGContextSetLineWidth(context, self.lineWidth); CGContextSetStrokeColorWithColor(context,lineColor.CGColor); CGContextSetShouldAntialias(context, YES); CGContextSetAllowsAntialiasing(context, YES); CGContextSetFlatness(context,0.5); CGContextSetAlpha(context, 1.0); CGContextStrokePath(context); 

它完全在视野中绘制,但在边界上,颜色像熔化效果一样消失。

必须填充颜色的源图像: 要填充颜色的图像

要用作colorWithPatternImage(img)的图像 在此处输入图像描述

在绘制触摸后,重新映射图像: 在此处输入图像描述

我在这里错过了什么来完美填补它? 对核心图形的任何帮助都是最受欢迎的! 谢谢!

为了掩盖图像我也做了:

 -(void)clipView :(MyUIBezierPath*)path drawingView:(DrawingView*)myView { MyUIBezierPath *myClippingPath =path; CAShapeLayer *mask = [CAShapeLayer layer]; mask.path = myClippingPath.CGPath; myView.layer.mask = mask; } 

但是colorWithPatternImage和这个掩盖做同样的技巧,即让我只在路径内绘制,我现在面临的问题是:它对绘制路径边界周围的触摸点产生了不良影响!

好吧,它通过colorWithPatternImage使用我自己的掩蔽方法,虽然通过裁剪掩盖它是一回事。绘制问题是因为在方法“calculateMinImageArea:CGPoint1:CGPoint2:CGPoint3”中的触摸点处绘制图像。 更改其尺寸(根据线宽的高度宽度)对其进行排序。

您可以从此图像中创建路径点。 然后创建一个CGPathRefCGMutablePathRef ,然后将其用作CGContextRef的掩码。