¿Cómo eliminar el área transparente de una UIImageView después del enmascaramiento?

En una de mis aplicaciones para iOS, bash cortar una porción de una image usando CGImageMask . He conseguido enmascarar la image con el siguiente código:

 - (UIImage *)maskImage:(UIImage *)referenceImage 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([referenceImage CGImage], mask); return [UIImage imageWithCGImage:masked]; } 

Entonces, mi image será:

 myImageView.image = [self maskImage:[UIImage imageNamed:@"image.png"] withMask:[UIImage imageNamed:@"mask.png"]]; 

Problema: la image de salida tiene el mismo tamaño de image de reference ('image.png') con un área transparente alnetworkingedor. Pero quiero evitar esas áreas transparentes y recortar la image de resultado. ¿Cómo puedo conseguir esto? Hay varias máscaras y los frameworks de máscara no son similares a todos. Adjunto aquí una image de reference de la descripción del problema. Por favor, ayúdame amigos. Gracias por adelantado.

introduzca la descripción de la imagen aquí

Busca el recorte automático de un UIImage. Esto debería recortar cualquier cosa transparente.

¿Cómo autocultivo un UIImage?

    Intereting Posts