Sono nuovo al quarzo. Ho 2 immagini, uno sfondo e una maschera con una forma ritagliata che voglio posare sullo sfondo per ritagliare una sezione. L'immagine risultante dovrebbe essere la forma del ritaglio. Questa è la mia maschera (la forma in mezzo è 0 alpha):CGContextClipToMask restituisce un'immagine vuota
E questo è il mio codice:
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];
Tranne appare niente ... Hai idea di dove sto andando sbagliato? Grazie molto.
Non lo sai sembra disegnare qualsiasi cosa. Non tocchi nulla dal nulla e non ottieni nulla. Come previsto. Tra il ritaglio per mascherare e creare l'immagine, dovresti disegnare qualcosa. –