Estoy intentando crear una máscara de imagen a partir de un compuesto de dos imágenes existentes.Crear máscara con CGImageMaskCreate es todo negro (iphone)
Primero comienzo con la creación de material compuesto que consiste en una pequeña imagen que es la imagen de máscara, y una imagen más grande, que es del 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();
me puede dar salida a este UIImage (MaskImageFull) y se ve bien, es un tamaño de fondo de tamaño completo y es un fondo blanco con el objeto de máscara en negro, en el lugar correcto en la pantalla.
Luego paso el MaskImageFull UIImage a través de este:
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 el retImage es todo negro. Si envío un UIImage prefabricado como máscara funciona bien, es justo cuando intento hacerlo desde varias imágenes que se rompe.
Pensé que era una cuestión de espacio de colores pero no parecía poder solucionarlo. ¡Cualquier ayuda es muy apreciada!
Me ayudó mucho. ¿Podría agregar el encabezado y el pie de página de la función para completarlo? – Eden
¿Qué es thumbnailPoint.x exactamente? @catlan –
@ Reza.Ab lo siento, no recuerdo. escala * también se ve raro 9 años después. Supongo que en la mayoría de los casos la máscara es rect y la imagen rect debe ser la misma. Pruébalo y cuéntanos qué encuentras, – catlan