AVCapture任意形状的镜头

时间:2016-01-02 09:34:02

标签: ios swift avfoundation avcapture

开始在一个快速的应用程序中处理相机我有以下的代码块(我从网上获得)正常工作。

previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer!)
previewLayer?.frame = self.view.layer.frame
captureSession.startRunning()

我现在想修改它,所以我可以决定镜头的形状,此时它是一个标准的矩形。

我必须能够使用椭圆,星形,多边形......或其他任何东西。

我认为我应该在previewLayer工作,但我对此并不确定,更重要的是我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

如果这可能对其他人有用,我在这里发布我找到的解决方案,以椭圆形为例。

previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer!)
previewLayer?.frame = self.view.layer.frame

let maskLayer = CAShapeLayer()
maskLayer.path = CGPathCreateWithEllipseInRect(CGRect(x: 50.0, y: 100.0, width: 200.0, height: 100.0), nil)
previewLayer!.mask = maskLayer

captureSession.startRunning()