【问题标题】:determining ios camera aspect ratio确定ios相机纵横比
【发布时间】:2013-12-21 09:46:12
【问题描述】:

我想知道是否有人知道在拍摄照片之前获取 iOS 相机纵横比的方法。我做了一些阅读,似乎 4/3 的纵横比在设备上很常见,但不确定这是否适用于所有设备或交易是什么。我知道你可以在拍照后弄清楚,但我正在寻找一种方法来在拍照之前确定它。

谢谢

编辑:

从我目前收到的回复来看,我认为我需要澄清我的问题。 iOS 相机的纵横比是相机的物理属性,与拍摄照片的方向无关。有谁知道在拍照之前/不拍照时如何获得这个比例。

【问题讨论】:

  • 不,我想在拍照前知道宽高比。纵横比是相机拍摄的图像宽高比。

标签: ios iphone objective-c ios-camera


【解决方案1】:

从 iOS 7 开始,您可以获得视频/相机的尺寸:

CGSize size = CMVideoFormatDescriptionGetPresentationDimensions(camera.activeFormat.formatDescription, YES, YES);

其中camera 是相机的AVCaptureDevice* 对象。

还有 CMVideoFormatDescriptionGetDimensions()。不幸的是,这似乎与相机图像不同。在我的 iPhone 4S (iOS 7) 上,...GetDimensions() 返回 1920x1080,这似乎与 AVCaptureStillImageOutput 返回的尺寸不同。但是,纵横比是正确的。

如果您正在为 AVCaptureVideoPreviewLayer 寻找正确大小的纵横比,则无需担心。只需将框架设置为您想要放入的任何框架,它就会自动以正确的纵横比居中预览。在 iOS 7 上,它具有清晰的背景,所以一切正常。

【讨论】:

  • 我错过了什么吗?这不是 iPhone 4S 相机的正确纵横比。
【解决方案2】:

快速

let sizeCamera = CMVideoFormatDescriptionGetPresentationDimensions(backCamera.activeFormat.formatDescription, usePixelAspectRatio: true, useCleanAperture: true);

【讨论】:

    【解决方案3】:

    您可以尝试获取相机胶卷中的最后一张照片,看看它的纵横比是多少。

    这假设: 1)您的应用程序具有相机胶卷访问权限 2) 最后一张照片实际上是在当前设备上拍摄的

    【讨论】:

    • 这显然不可靠,基本上是一个保证的错误。除了您的评论之外,图片可能是屏幕截图(不一定与相机的分辨率相同),也可能是经过编辑的照片(iOS 7)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多