我已经使用CAShapeLayer来屏蔽我的图像,而我只想检索已经屏蔽的部分。 当我检索时,我只获得完整的图像。
有人可以提供一些有关此事的代码/信息吗?
CAShapeLayer * maskLayer = [CAShapeLayer layer];
maskLayer.frame = CGRectMake(0, 0, clippingPath.bounds.size.width, clippingPath.bounds.size.height) ;
maskLayer.path = [clippingPath CGPath];
maskLayer.fillColor = [[UIColor blackColor] CGColor];
maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
[ imgView removeFromSuperview ] ;
imgView.layer.mask = maskLayer ;
提前致谢:)
答案 0 :(得分:1)
CALayer
仅用于显示,实际上并不是修改图像本身。
要屏蔽您自己必须创建的图像,可以使用Quartz 2D绘图或使用CoreImage框架中的CIFilter
/ CIImage
。
要使用Core Graphics(Quartz 2D)屏蔽图像,请使用CGImageCreateWithMask
和CGImageMaskCreate
。这些功能允许您使用另一个图像的内容屏蔽一个图像。你说你现在使用bezier路径来掩盖,所以你必须首先将该路径渲染到图像中才能掩盖原始图像。
要使用CoreImage屏蔽图像,请查看CIBlendWithMask
过滤器。