UIImage проблемы маскировки iOS 7
Я заимствовал (стандартный) код, который применяет маску UIImage в градациях серого к UIImage.}
- (void) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef imageRef = image.CGImage; // main UIImage
CGImageRef maskRef = maskImage.CGImage; // grayscale UIImage mask
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask(imageRef, mask);
maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(mask);
CGImageRelease(masked);
imageView.image = maskedImage;
Затем я сохраняю imageView.image в файл. Код работает как брелок в iOS 6 и 6.1; сохраненное изображение содержит основной UIImage с примененной маской. Тем не менее, я заметил, что этот код не работает так же, как в iOS 7 (iPhone). В iOS 7 сохраненное изображение содержит только основной UIImage без примененной маски. Я не уверен, заключается ли проблема в методе CGImageCreateWithMask () или в другом месте.
Любое понимание будет оценено. Огромное спасибо заранее.