如何获取iPhone中屏蔽的图像部分

时间:2013-05-24 09:14:11

标签: ios objective-c cashapelayer

我已经使用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 ;

提前致谢:)

1 个答案:

答案 0 :(得分:1)

CALayer仅用于显示,实际上并不是修改图像本身。

要屏蔽您自己必须创建的图像,可以使用Quartz 2D绘图或使用CoreImage框架中的CIFilter / CIImage

要使用Core Graphics(Quartz 2D)屏蔽图像,请使用CGImageCreateWithMaskCGImageMaskCreate。这些功能允许您使用另一个图像的内容屏蔽一个图像。你说你现在使用bezier路径来掩盖,所以你必须首先将该路径渲染到图像中才能掩盖原始图像。

要使用CoreImage屏蔽图像,请查看CIBlendWithMask过滤器。