ios - AVCapture 任意形状镜头

标签 ios swift avfoundation avcapture

开始在 swift 应用程序中处理相机,我有以下代码块(我从网上获得)按预期工作。

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

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

我必须能够使用椭圆、星形、多边形……或其他任何形状。

我想我应该在 previewLayer 上工作,但我什至不确定,更重要的是我真的不知道该怎么做。

最佳答案

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

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()

关于ios - AVCapture 任意形状镜头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564450/

相关文章:

ios - Swift 3 Xcode8 - 如何实例化按钮操作上的不同 View

ios - 在从函数返回之前等待 Firebase 加载

iOS 屏幕捕获和性能

ios - 使用新的预写日志 (WAL) 日志记录预填充核心数据 SQL 存储

iphone - UILabel 类别和 setFont : crash

ios - 使用第三方库和 Carthage 进行单元测试

swift - 用动画交换 rootViewController?

ios - 如何将实时相机预览添加到 UIView

ios - 从 [UIImage], Swift 创建电影

ios - 带有 TextField 和 Button 的 UIView 内的 UIView 不工作