如何将缩放变换应用于 AVCaptureVideoPreviewLayer
How to Apply a Scale transform to an AVCaptureVideoPreviewLayer
我有一个名为 previewlayer
的 AVCaptureVideoPreviewLayer
,它被设置为一个名为 VideoOut
的 UIImageView
,它是使用 Storyboard
实现的
我用来连接它们的代码如下
previewlayer.frame = VideoOut.bounds
然后我想添加一个“放大”按钮,每次按下“放大”按钮时,该按钮都会 VideoOut
缩放 0.25
倍。我尝试使用的方法如下所示
@IBAction func Zooma(_ sender: Any) {
UIView.animate(withDuration: 0.0, delay: 0.0, options: [], animations: {
self.VideoOut.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)
}, completion: nil)
虽然这在使用视频源缩放 ImageView 方面没有任何作用。虽然当我在未连接到 AVCaptureVideoPreviewLayer
的 Imageview 上使用相同的代码时,代码行按预期工作。
任何建议或见解将不胜感激
如果您想要流畅的视频缩放,请在捕获层源自的 AVCaptureDevice
对象上尝试 zoom ramp:ramp(toVideoZoomFactor: 1.25, withRate: 0.25)
我有一个名为 previewlayer
的 AVCaptureVideoPreviewLayer
,它被设置为一个名为 VideoOut
的 UIImageView
,它是使用 Storyboard
我用来连接它们的代码如下
previewlayer.frame = VideoOut.bounds
然后我想添加一个“放大”按钮,每次按下“放大”按钮时,该按钮都会 VideoOut
缩放 0.25
倍。我尝试使用的方法如下所示
@IBAction func Zooma(_ sender: Any) {
UIView.animate(withDuration: 0.0, delay: 0.0, options: [], animations: {
self.VideoOut.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)
}, completion: nil)
虽然这在使用视频源缩放 ImageView 方面没有任何作用。虽然当我在未连接到 AVCaptureVideoPreviewLayer
的 Imageview 上使用相同的代码时,代码行按预期工作。
任何建议或见解将不胜感激
如果您想要流畅的视频缩放,请在捕获层源自的 AVCaptureDevice
对象上尝试 zoom ramp:ramp(toVideoZoomFactor: 1.25, withRate: 0.25)