我想要从我用UIImagePickerController挑选的图像中读取EXIF数据,尤其是dateTimeOriginal。
我用以下代码成功地提取了相机拍摄的新图像的数据:
if let meta = info[.mediaMetadata] as? NSDictionary
{
if let exif = meta [kCGImagePropertyExifDictionary] as? NSDictionary
{
if let dateTimeOriginal = exif[kCGImagePropertyExifDateTimeOriginal as String] as? String
{
print (dateTimeOriginal)
}
}
}我最终还设法用以下代码从图片库中提取了已经存在的图像的数据:
if let al = info[UIImagePickerController.InfoKey.referenceURL] as? URL
{
let result = PHAsset.fetchAssets(withALAssetURLs: [al], options: nil)
let asset = result.firstObject
print (asset?.creationDate)
}我尝试的其他所有操作都导致时间戳为空。
不幸的是,.referenceURL密钥和PHAsset.fetchAssets方法在iOS 11.0中被弃用,XCode建议使用PHPicker。不过,PHPicker就是iOS 14+。所以我想知道我应该如何在iOS 11 - 13中做到这一点。我的应用程序有iOS 11.0作为最低要求。
有没有其他方法可以从我可能遗漏的现有图片中读取dateTimeOriginal (我想我已经浏览了这个主题的每一篇文章)?
发布于 2021-06-07 18:54:08
我终于找到了解决方案:
if let asset = info[UIImagePickerController.InfoKey.phAsset] as? PHAsset
{
if let date = asset.creationDate
{
...
}
if let location = asset.location
{
...
}
}实际上,如果你知道该怎么做,这是很容易的。
https://stackoverflow.com/questions/67859721
复制相似问题