我有大量借用(标准)代码,将UIImage应用于灰度UIImage掩码。UIImage掩盖问题iOS 7
- (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()方法还是其他地方。
任何有识之士将不胜感激。提前谢谢你。
对,@dangel。这对我来说非常合适,开箱即用。 – kubi
完美工作,谢谢! –