首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从使用UIImagePickerController post iOS 11.0拾取的图像中读取EXIF数据

从使用UIImagePickerController post iOS 11.0拾取的图像中读取EXIF数据
EN

Stack Overflow用户
提问于 2021-06-06 21:34:14
回答 1查看 79关注 0票数 0

我想要从我用UIImagePickerController挑选的图像中读取EXIF数据,尤其是dateTimeOriginal。

我用以下代码成功地提取了相机拍摄的新图像的数据:

代码语言:javascript
复制
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)
        }
    }
}

我最终还设法用以下代码从图片库中提取了已经存在的图像的数据:

代码语言:javascript
复制
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 (我想我已经浏览了这个主题的每一篇文章)?

EN

回答 1

Stack Overflow用户

发布于 2021-06-07 18:54:08

我终于找到了解决方案:

代码语言:javascript
复制
if let asset = info[UIImagePickerController.InfoKey.phAsset] as? PHAsset
{
    if let date = asset.creationDate
    {
            ...
    }
            
    if let location = asset.location
    {
            ...
    }
}

实际上,如果你知道该怎么做,这是很容易的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67859721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档