本文介绍了找到设备的相机分辨率iOS的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用设置 AVCaptureSessionPresetPhoto 找到要捕获的图像分辨率的最佳方法。

我想在捕获之前找到分辨率图片。

Whats the best method to find the image resolution going to be captured using setting AVCaptureSessionPresetPhoto.
I am trying to find the resolution before capturing the image.

推荐答案

使用下面的函数,您可以通过编程方式从 activeFormat 在捕获开始之前,但不是在添加输入和输出之前:

With the function below, you can programmatically get the resolution from activeFormat before capture begins, though not before adding inputs and outputs:https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureDevice_Class/index.html#//apple_ref/occ/instp/AVCaptureDevice/activeFormat

private func getCaptureResolution() -> CGSize {
    // Define default resolution
    var resolution = CGSize(width: 0, height: 0)

    // Get cur video device
    let curVideoDevice = useBackCamera ? backCameraDevice : frontCameraDevice

    // Set if video portrait orientation
    let portraitOrientation = orientation == .Portrait || orientation == .PortraitUpsideDown

    // Get video dimensions
    if let formatDescription = curVideoDevice?.activeFormat.formatDescription {
        let dimensions = CMVideoFormatDescriptionGetDimensions(formatDescription)
        resolution = CGSize(width: CGFloat(dimensions.width), height: CGFloat(dimensions.height))
        if (portraitOrientation) {
            resolution = CGSize(width: resolution.height, height: resolution.width)
        }
    }

    // Return resolution
    return resolution
}

这篇关于找到设备的相机分辨率iOS的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 22:06