我有大量借用(標準)代碼,將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
完美工作,謝謝! –