iOS SDK – Máscara de image

¿Cómo enmascarar una image con otra image por píxeles no transparentes? P.ej

introduzca la descripción de la imagen aquí

Cuando la image de la máscara es en blanco y negro, uso esta function:

- (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); return [UIImage imageWithCGImage:masked]; } 

¿Pero cómo hacer esto en mi caso?

Estos son los pasos para lograr el resultado.

1) Cree una vista de image y calcule el tamaño óptimo para ella (+ opción setFit)

2) Obtenga el marco de visualización de imágenes y cree una máscara con esas opciones (es decir, escala su image de máscara pnetworkingefinida)

3) Vista de image de máscara, con su máscara creada

     UIImageView * maskView = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @ "star_mask_alpha.png"]];
     self.needsMaskImageView.layer.mask = maskView.layer;
     [self.needsMaskImageView setNeedsDisplay];