在Swift中,有没有一种简单的方法可以找到当前使用的相机的焦距?
我正在开发一个iOS应用程序,我需要使用iOS相机的焦距(像素或毫米)。我从苹果公司找到了关于焦距的文档,但没有关于如何获取焦距的信息。我去过两个地方:
mdlcamera
coreimage
我也检查过this question,但它似乎无法解决我的问题。
我知道焦距可以用视场计算如下:
focal_length_pixels = (image_diagonal_pixels/2)/tan(FOV/2)
但同样,在计算这个数量时没有指南。
你能帮忙吗?
谢谢。
最佳答案
这个功能是为那些像我一样有同样问题的人。基本上,我们需要拍摄一张照片,然后使用拍摄的照片检测焦距:
// 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)")
}