Crear máscara con CGImageMaskCreate es todo negro (iphone)
Estoy tratando de crear una máscara de imagen que a partir de un compuesto de dos imágenes existentes.
rimero, empiezo creando el compuesto que consiste en una imagen pequeña que es la imagen de máscara y una imagen más grande que tiene el mismo tamaño que el fondo:
UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;
CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Puedo generar este UIImage (MaskImageFull) y se ve bien, es un tamaño de fondo de tamaño completo y es un fondo blanco con mi objeto de máscara en negro, en el lugar correcto en la pantalla.
Luego paso el MaskImageFull UIImage a través de esto:
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* retImage= [UIImage imageWithCGImage:masked];
El problema es que retImage es todo negro. Si envío un UIImage prefabricado como máscara, funciona bien, es justo cuando trato de crearlo a partir de varias imágenes que se rompe.
Pensé que era una cuestión de espacio de color, pero parecía que no podía solucionarlo. ¡Cualquier ayuda es muy apreciada