gpt4 book ai didi

ios - 使用 AVCaptureVideoPreviewLayer 时如何保持捕获的视频大小

转载 作者:行者123 更新时间:2023-11-29 12:12:24 27 4
gpt4 key购买 nike

当使用 AVCaptureSession 将相机图像显示到小预览层 (AVCaptureVideoPreviewLayer) 时,图像会缩放以适合层大小。

为了填充所有预览层,可以通过设置来配置缩放比例:

previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;

问题是这只会调整大小以填充图层,并且由于相机图像非常大,图像调整后变得太小。

我正在寻找的方法是让我的预览层显示与内置相机相同级别的比例,丢弃剩余的图像(想象一下设备相机被屏蔽,只在屏幕中间显示一个正方形)。

我还尝试通过发布多个预设来更改捕获预设,但无济于事:

AVCaptureSession *session = [[AVCaptureSession alloc]init];
session.sessionPreset = AVCaptureSessionPresetMedium;

最佳答案

这是你要做的:

你得到了输入视频的大小:

AVCaptureDeviceInput *videoDeviceInput = // initialised already in your app

// Here you can get the video dimensions:
CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(videoDeviceInput.device.activeFormat.formatDescription);

您将 previewLayer 的大小调整为视频源的大小。现在您有一个 1:1 比例的视频层。

然后您只需将 previewLayer 在窗口中居中。

关于ios - 使用 AVCaptureVideoPreviewLayer 时如何保持捕获的视频大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com