我正在创建一个相机应用程序。我可以拍摄一张图像,该图像将传递回视图控制器以显示该图像。它还会保存到相机胶卷中。如果我将带有相机预览的图像与保存的图像进行比较,似乎相机预览有点放大了。
来自相机预览的图像:

图片来源:

这是我的代码到目前为止的相机预览:
let cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
cameraPreviewLayer.videoGravity = .resizeAspectFill
cameraPreviewLayer.connection?.videoOrientation = .portrait
cameraPreviewLayer.frame = view.frame
view.layer.insertSublayer(cameraPreviewLayer, at: 0)
captureSession.startRunning()如何使相机预览的大小与保存的图像相同?
发布于 2020-04-12 00:19:43
罪魁祸首是videoGravity设置。.resizeAspectFill将调整预览大小以填充整个视图,即使这意味着裁剪内容。
如果要查看整个帧,请将其设置为.resizeAspect。不过,这将引入黑条。
发布于 2021-08-25 09:32:00
如果您希望捕获的图像具有与相机预览相同的大小。您应该设置videoGravity = .resize
https://stackoverflow.com/questions/61155258
复制相似问题