0

I have used CAShapeLayer for masking my image and i want to retrieve only the portion that i have masked. When i retrieve, i am getting only the full image.

Can anyone please provide me some code/information regarding this ?

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 ;

Thanks in advance :)

4

1 回答 1

1

ACALayer仅用于显示,它实际上并没有修改图像本身。

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

要使用 Core Graphics (Quartz 2D) 屏蔽图像,请使用CGImageCreateWithMaskCGImageMaskCreate。这些功能允许您用另一张图像的内容遮盖另一张图像。您说您现在使用贝塞尔路径进行遮罩,因此您必须先将该路径渲染到图像中才能遮盖原始图像。

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

于 2013-05-24T09:22:27.107 回答