从UIView或AVCaptureVideoPreviewLayer iPhone中“切割”一个形状

时间:2012-05-08 14:51:15

标签: iphone objective-c avfoundation calayer cashapelayer

我有一个需要剪切的AVCaptureVideoPreviewLayer,以便它可以很好地放在我的图像上,该图像具有需要看到的透明部分。

从AVCaptureVideoPreviewLayer中剪切形状的最佳/有效方法是什么?

我已经设法使用CAShapeLayer获得了正确的形状,但似乎AVCaptureVideoPreviewLayer没有Path属性来执行相同的操作。

cameraLayer = [[CAShapeLayer layer] retain];
CGRect rect = CGRectMake(64, 32, 190 , 152);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, rect);
cameraLayer.path = path;
CGPathRelease(path);

*编辑如果可以从UIView或Imageview中剪切出形状我应该能够做我想要的事情

由于

1 个答案:

答案 0 :(得分:1)

你说:

  

我已经设法使用CAShapeLayer获得了正确的形状但是它   似乎AVCaptureVideoPreviewLayer没有要做的Path属性   同样的。

这是对的。根据设计,只有CAShapeLayer具有路径属性。

如果要在视图中剪切几何孔,通常的方法是创建CAShapeLayer,将形状路径安装到其中,然后使形状图层成为视图图层的蒙版。这很好用。请注意,您需要将视图上的opaque属性设置为NO,以便能够通过“孔”查看视图下的内容。