Soy nuevo en Quartz. Tengo 2 imágenes, un fondo y una máscara con una forma recortada que quiero extender sobre el fondo para cortar una sección. La imagen resultante debe ser la forma del corte. Esta es mi máscara (la forma en el medio es de 0 alfa):CGContextClipToMask devolver imagen en blanco
Y este es mi código:
UIView *canvas = [[[sender superview] subviews] objectAtIndex:0];
UIGraphicsBeginImageContext(canvas.bounds.size);
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef cgContext = CGBitmapContextCreate(NULL, canvas.bounds.size.width, canvas.bounds.size.height, 8, 0, colourSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colourSpace);
CGImageRef maskImage = [[UIImage imageNamed:@"Mask.png"] CGImage];
CGContextClipToMask(cgContext, CGRectMake(0, 0, canvas.frame.size.width, canvas.frame.size.height), maskImage);
CGImageRef maskedImageRef = CGBitmapContextCreateImage(cgContext);
CGContextRelease(cgContext);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];
UIGraphicsEndImageContext();
[button setBackgroundImage:maskedImage forState:UIControlStateNormal];
Excepto no aparece nada ... ¿Alguna idea de dónde voy ¿incorrecto? Muchas gracias.
Usted no lo hace parece dibujar cualquier cosa. No recortes nada de la nada y no obtienes nada. Como se esperaba. Entre recortar para enmascarar y crear la imagen, debes dibujar algo. –