在我开发的应用程序中,我的任务是使用PHPickerViewController向用户展示他们的设备照片。
一旦被选中,我需要访问:
的创建日期
如果我能够完全访问用户的照片,这对于PHAsset来说很简单--我可以使用PHPickerViewController结果值,其中包括照片标识符来查询PhotoKit中的PHAssets。但是,不能保证我可以完全进入。此外,如果用户没有授予访问权限或有限的访问权限,并且有限的选择不包括在PHPickerViewController中选择的照片,我将无法查询它们。(我尝试过这样做,并且正如预期的那样,查询的结果是0,这是有意义的)。
我可以获得的UIImage只是原始图像数据(缺少exif数据等)的代理,因此对于我的应用程序的用户情况来说,这是不够的。假设有数据项提供程序,我仍然需要获得文件名和创建日期等信息。
那么,有没有办法获取这些信息呢?
发布于 2020-08-13 04:27:43
我可以获得的UIImage只是原始图像数据的代理(缺少exif数据等),因此对于我的应用程序的用户情况来说,这是不够的。
返回到NSItemProvider,并询问它图像的数据表示形式。现在,按照通常的方式提取元数据。
// prov is the item provider
prov.loadDataRepresentation(forTypeIdentifier: UTType.image.identifier) { data, err in
if let data = data {
let src = CGImageSourceCreateWithData(data as CFData, nil)!
let d = CGImageSourceCopyPropertiesAtIndex(src,0,nil) as! [AnyHashable:Any]
print("metadata", d)
}
}https://stackoverflow.com/questions/63004391
复制相似问题