2012-02-29 8 views
7

Robię rysowanie przy użyciu CGContext. Ja obecnie maskowania rysunek używając PNG tak:Maskowanie CGContext za pomocą CGPathRef?

UIImage * myImage = [UIImage imageNamed:@"frame.png"]; 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClipToMask(context, self.view.bounds, myImage.CGImage); 

Działa to dobrze, ale teraz chciałbym użyć istniejącego CGPathRef jako moją maskę. Czy powinienem patrzeć na konwersję CGPathRef na UIImage i maskę jak powyżej? Jeśli tak, to w jaki sposób powinienem wykonać konwersję? -OR- Czy istnieje lepszy sposób podejścia do tego?

Odpowiedz

10
CGContextAddPath(context, yourPath); 
CGContextClip(context); 
+1

Działa to dobrze dla rects & ellipse. Ale nie działa dla mnie, jeśli ścieżka jest tworzona przez addArcWithCenter: radius: ... A kiedy potrzebuję tylko jednej linii pikseli, aby zachować. –

+0

Co powinniśmy zrobić, jeśli nie chcemy, aby był obcięty? Na przykład, jeśli chcemy zamaskować niestandardową ścieżkę na obrazie bez przycinania go do granic ścieżki? @ cxa –