【发布时间】:2014-11-07 13:34:03
【问题描述】:
我正在尝试在 imagePickerController: didFinishPickingMediaWithInfo 函数中打印所有图像元数据。当我使用 info.objectForKey(UIImagePickerControllerReferenceURL) 方法时,它返回 nil,如果尝试使用此结果,我的应用程序将崩溃。有谁知道为什么它返回 nil 以及当我选择图像时我还能用什么来打印所有图像元数据? (使用 UIImageJPEGRepresentation 不是一个选项,因为 EXIF 数据已被删除)。
这是我的代码:
func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: NSDictionary!)
{
let image = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage
let refURL : NSURL = info.objectForKey(UIImagePickerControllerReferenceURL) as NSURL
var localSourceRef: CGImageSourceRef = CGImageSourceCreateWithURL(refURL, nil)
var localMetadata: NSDictionary = CGImageSourceCopyPropertiesAtIndex(localSourceRef, 0, nil)
println("\n Photo data: \n")
println(localMetadata)
}
【问题讨论】:
-
UIImagePickerControllerReferenceURL 在几种情况下会为零,最常见的是来自相机(相对于相机胶卷),因为图像尚未保存。你能补充一些关于你到目前为止尝试过的测试用例的额外信息吗?
-
没错,它适用于相机胶卷。但如果照片是用相机拍摄的,或者我尝试从照片库访问照片,它会崩溃。您对我如何从照片中获取 gps 数据有什么建议吗?谢谢!
标签: ios swift uiimagepickercontroller