CGContextClipToMask возвращает пустое изображение

Я новичок в Quartz. У меня есть 2 изображения, фон и маска с формой выреза, которую я хочу наложить на фон, чтобы вырезать часть. Полученное изображение должно иметь форму выреза. Это моя маска (форма в середине 0 альфа):

image mask

А это мой код:

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];

Только ничего не появляется... Есть идеи, где я ошибаюсь? Большое спасибо.

10
задан Smikey 29 May 2012 в 15:01
поделиться