2012-02-29 17 views
7

Estoy haciendo un dibujo usando un CGContext. Actualmente estoy enmascarar el dibujo mediante un archivo PNG como esto:Enmascaramiento CGContext con un CGPathRef?

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

Esto funciona bien, pero ahora me gustaría utilizar un CGPathRef existente como mi máscara. ¿Debo considerar la conversión de CGPathRef en un UIImage y máscara como el anterior? En caso afirmativo, ¿cómo haría la conversión? -O- ¿Hay una mejor manera de abordar esto?

Respuesta

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

Esto funciona bien para rects y elipse. Pero no funciona para mí si addArcWithCenter crea una ruta de acceso: radius: ... Y cuando necesito solo una línea de píxeles para mantener. –

+0

¿Qué deberíamos hacer si no queremos que se recorte? Por ejemplo, si queremos enmascarar una ruta personalizada en una imagen sin recortarla en los límites de la ruta? @cxa –

Cuestiones relacionadas