Я новичок в Quartz. У меня есть 2 изображения, фон и маска с формой выреза, которую я хочу заложить на фоне, чтобы вырезать секцию. Полученное изображение должно быть формой выреза. Это моя маска (форма в среднем составляет 0 альфа):CGContextClipToMask возвращает пустое изображение
И это мой код:
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];
За исключением ничего не появляется ... Любая идея, где я собираюсь неправильно? Большое спасибо.
Вы не кажется, что-то рисуют. Вы ничего не выталкиваете из ничего и ничего не получаете. Как и ожидалось. Между отсечением для маскировки и созданием изображения вы должны нарисовать что-то. –