我想在屏幕外渲染中使用 CGLayerRef 用另一个图像掩盖图像,因为它适用于文档中提到的高质量渲染
核心图形图层绘图:CGLayer 对象允许您的应用程序使用图层进行绘图。图层适用于以下内容: 您计划重用的高质量屏幕外渲染。
但是我在objective-c中找不到任何我可以理解它是如何工作的例子。在我的上下文中,我想用我以前这样做的形状图像(纯色形状)来掩盖图像
//The context I use to mask my image with the mask image.
CGColorSpaceRef colorSpace= CGColorSpaceCreateDeviceRGB();
CGContextRef mainViewContentContext = CGBitmapContextCreate (NULL, _bigImageRect.size.width, _bigImageRect.size.height, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
//Mask image
CGContextClipToMask(mainViewContentContext,
CGRectMake(0,
-_bigImageRect.origin.y,
_bigImageRect.size.width,
_bigImageRect.size.height),
_maskImage.CGImage);
//Drawing the image on the mask image.
CGContextDrawImage(mainViewContentContext,
CGRectMake(0,
0,
_bigImageRect.size.width,
_bigImageRect.size.height),
_ImageToBeMasked.CGImage);
CGImageRef mainViewContentBitmapContext = CGBitmapContextCreateImage(mainViewContentContext);
CGContextRelease(mainViewContentContext);
UIImage*maskedImage = [UIImage imageWithCGImage:mainViewContentBitmapContext];
CGImageRelease(mainViewContentBitmapContext)
return maskedImage;
但是我怎样才能使用下面的 CGLayers 来屏蔽呢?我很感激任何帮助。
CGLayerRef layer = CGLayerCreateWithContext(mainViewContentContext, _bigImageRect.size, NULL);
CGContextDrawLayerInRect(mainViewContentContext, _bigImageRect, layer);
CGLayerRelease(layer);
//And then.. how can I do the masking using this CGLayerRef???