Чтобы разобраться со своей последней проблемой: Draw/Paint like sketch color inside a bezier path in UIView, я взял точное изображение (пути), заполненное выбранным цветом. Затем, чтобы сделать что UIView
для контекста цвета я взял:Рисование в UIView на сенсорных точках дает эффект рисования размытия на границах
lineColor=[UIColor colorWithPatternImage:img];
в DrawRect:
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)
После нанесения на прикосновения, resultimg Изображение:
Что утра Я пропустил здесь, чтобы заполнить его отлично? Любая помощь с основной графикой наиболее приветствуется! Спасибо!
Чтобы скрыть изображение я сделал:
-(void)clipView :(MyUIBezierPath*)path drawingView:(DrawingView*)myView
{
MyUIBezierPath *myClippingPath =path;
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = myClippingPath.CGPath;
myView.layer.mask = mask;
}
Но colorWithPatternImage и эта маскировка делает то же трюк, т.е. позволяет мне рисовать только внутри пути, проблема я столкнулся сейчас: Это дает плохой эффект на рисование точек касания вокруг границ пути!
Если вы не применяете обтравочную маску к слою, так что вы видите только ее рисование внутри безье. См. Http://stackoverflow.com/questions/20410146/use-bezier-path-as-clipping-mask –
Я пробовал все это готово. Это же проблема с этим, цвет вокруг границы по-прежнему кажется текущим, а не снаружи , изнутри он течет от границы пути. Проблема заключается в рисовании в точках касания, маскировка - не проблема. –
То же самое с анти-алиасом? –