获取 iOS 台设备的焦距
Get focal length of iOS devices
在Swift中,有没有简单的方法可以找到当前使用的相机的焦距?
我正在开发 iOS 应用程序,我需要使用 iOS 相机的焦距(以像素或毫米为单位)。我从 Apple 找到了有关焦距的文档,但没有关于如何获取它的信息。以下是我去过的两个地方:
我也检查了this question,但它似乎并没有解决我的问题。
我知道可以使用视野计算焦距,如下所示:
focal_length_pixels = (image_diagonal_pixels/2)/tan(FOV/2)
但同样,没有计算该数量的指南。
你能帮忙吗?
谢谢。
您可以使用 MDLCamera class。首先你必须导入 class.
import ModelIO
然后像下面这样使用它
print("focal length: \(MDLCamera().focalLength)")
顺便说一下,你可以把它放在 AppDelegate class.
此功能适用于和我有同样问题的朋友。基本上,我们得先拍照,然后用拍到的照片来检测焦距:
// delegate method for the image picker
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary
let exifdata = metadata!["{Exif}"] as! NSDictionary
// focal length
let focalLength = exifdata["FocalLength"] as! Double
print("Focal length \(focalLength)")
}
我认为 avfoundation 的焦距没有任何 API 功能。
相反,您可以通过计算分辨率、以度为单位的视野来获得其他信息,例如镜头光圈、尺寸、百万像素。
camera.lensAperture
camera.activeFormat.videoFieldOfView
camera.activeFormat.formatDescription
{
let dimensions=CMVideoFormatDescriptionGetDimensions(formatdescription)
}
在Swift中,有没有简单的方法可以找到当前使用的相机的焦距? 我正在开发 iOS 应用程序,我需要使用 iOS 相机的焦距(以像素或毫米为单位)。我从 Apple 找到了有关焦距的文档,但没有关于如何获取它的信息。以下是我去过的两个地方:
我也检查了this question,但它似乎并没有解决我的问题。 我知道可以使用视野计算焦距,如下所示:
focal_length_pixels = (image_diagonal_pixels/2)/tan(FOV/2)
但同样,没有计算该数量的指南。
你能帮忙吗? 谢谢。
您可以使用 MDLCamera class。首先你必须导入 class.
import ModelIO
然后像下面这样使用它
print("focal length: \(MDLCamera().focalLength)")
顺便说一下,你可以把它放在 AppDelegate class.
此功能适用于和我有同样问题的朋友。基本上,我们得先拍照,然后用拍到的照片来检测焦距:
// delegate method for the image picker
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary
let exifdata = metadata!["{Exif}"] as! NSDictionary
// focal length
let focalLength = exifdata["FocalLength"] as! Double
print("Focal length \(focalLength)")
}
我认为 avfoundation 的焦距没有任何 API 功能。 相反,您可以通过计算分辨率、以度为单位的视野来获得其他信息,例如镜头光圈、尺寸、百万像素。
camera.lensAperture
camera.activeFormat.videoFieldOfView
camera.activeFormat.formatDescription
{
let dimensions=CMVideoFormatDescriptionGetDimensions(formatdescription)
}