Per risolvere il mio ultimo problema: Draw/Paint like sketch color inside a bezier path in UIView, ho scattato un'immagine esatta (del percorso) piena di colore selezionato. Poi, a disegnare che nel UIView
, per il contesto di colore ho preso:Disegnare in UIView sui touchpoint dà effetto di sfocatura sui confini
lineColor=[UIColor colorWithPatternImage:img];
in 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);
Si disegna esattamente nel percorso di vista, ma sui confini del colore va fuori come effetto la fusione.
Fonte immagine in cui il colore deve essere riempito:
immagine da utilizzare come colorWithPatternImage (img)
Dopo aver disegnato su tocchi, Immagine resultimg:
Cosa am Mi manca qui per riempirlo perfettamente? Qualsiasi aiuto con la grafica di base è il benvenuto! Grazie!
Per mascherare l'immagine che ho fatto anche:
-(void)clipView :(MyUIBezierPath*)path drawingView:(DrawingView*)myView
{
MyUIBezierPath *myClippingPath =path;
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = myClippingPath.CGPath;
myView.layer.mask = mask;
}
Ma colorWithPatternImage e questo mascheramento fa lo stesso trucco vale a dire mi permette di disegnare solo all'interno del percorso, il problema che sto affrontando ora è: Dà un effetto negativo disegnando su punti di contatto attorno ai confini del percorso!
Se non si applica una maschera di ritaglio al livello, lo si vede solo disegnandolo all'interno di Bezier. Vedi http://stackoverflow.com/questions/20410146/use-bezier-path-as-clipping-mask –
Ho provato tutto pronto. Ha lo stesso problema con questo, il colore intorno al confine sembra ancora scorrevole, non al di fuori però , dall'interno scorre lontano dai confini del percorso. Il problema è con il disegno ai punti di contatto, il mascheramento non è il problema. –
È lo stesso con l'anti-alias disattivato? –