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

Respuestas a la pregunta(3)

Su respuesta a la pregunta