Quiero recortar la image usando una ruta cercana como UIBezierPath. ¿Es posible en la aplicación de iPhone?

Quiero recortar la image en mi aplicación de iPhone usando cualquier ruta cercana como UIBezierPath. Sé que es posible usar rectángulo, pero quiero recortar en forma diferente. como hago una forma con el tacto y quiero recortar esa image para que sea posible. cualquier sugerencia o ayuda. Gracias por adelantado.

Puedes recortar tu image con un formlayer. Para hacerlo, debe crear una ruta que se usará como borde para su nueva image. Deberías mirar esta pregunta .

CALayer* contentLayer = [CALayer layer]; [contentLayer setFrame:CGRectMake(0, 0, 80, 80)]; CAShapeLayer* mask = [CAShapeLayer layer]; CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, 10, 10); CGPathAddLineToPoint(path, NULL, 10, 80); CGPathAddLineToPoint(path, NULL, 80, 80); CGPathAddLineToPoint(path, NULL, 80, 10); mask.path = path; [contentLayer setContents:(id)[[UIImage imageNamed:@"image.png"] CGImage]]; [contentLayer setMask:mask]; [[self layer]addSublayer:contentLayer]; 

Algo como esto.

Puedes lograr esto usando una máscara. puedes crear una máscara usando CGImageMaskCreate .

si necesita ejemplos:

¿Alguna idea de por qué este código de máscara de image no funciona?

http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html

// En uso de código:

  -(UIImage *)croppedImage { UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); [self.bezierPath closePath]; CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 0.0); _b_image = self.bg_imageview.image; CGSize imageSize = _b_image.size; CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height); UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]); [self.bezierPath addClip]; [_b_image drawInRect:imageRect]; UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return croppedImage;}