Enmascarar imagen para redondear en iOS

Sé que hay muchas preguntas sobre la máscara, pero las respuestas a ellas no me ayudaron (solo en parte).

Necesito hacer mi imagen redonda. yo creé mask.png y utilícelo en el código:

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {    
CGImageRef maskRef = maskImage.CGImage; 

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                    CGImageGetHeight(maskRef),
                                    CGImageGetBitsPerComponent(maskRef),
                                    CGImageGetBitsPerPixel(maskRef),
                                    CGImageGetBytesPerRow(maskRef),
                                    CGImageGetDataProvider(maskRef), NULL, false);

CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* maskedImage = [UIImage imageWithCGImage:masked];

CGImageRelease(masked);
CGImageRelease(mask);
return maskedImage;
}

Todo fue genial y todos estaban felices. Pero cuando comienzo a probar este método en el dispositivo, descubrí que no enmascara mi imagen (en el simulador, todo funciona bien). ¿Cómo puedo enmascarar mi imagen?

PD: Temporalmente, establecí view.layes.mask como capa con mi máscara. Y esta variante está funcionando en el dispositivo. ¿Puede haber alguna forma de salvar la ronda de esta capa?

preguntado el 01 de febrero de 12 a las 14:02

Has mirado en CALayer.cornerRadius? -

Quiero guardar la imagen como redonda, no solo mostrarla como tal. -

1 Respuestas

No es necesario hacer todas esas cosas si todo lo que necesita es una vista de imagen redonda.

UIImageView * myimageview = [[UIImageView alloc]init];
myimageview.layer.cornerRadius = myimageview.frame.size.height;
myimageview.layer.masksToBounds = true;

use el código anterior y configure cualquier imagen para esa vista de imagen y obtendrá una vista de imagen redonda. aquí no está redondeando la imagen, sino la vista de imagen.

Respondido 23 Abr '16, 13:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.