尝试使用 Phasset 从 UIImage 添加位置:
// image is a variable like so: image: UIImage
var newAsset = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
newAsset.location = CLLocation(latitude: coordinate.latitude, coordinate.longitude)
这段代码显然有效 -> 将新资源保存到具有良好坐标的照片库中。我可以在图书馆里看到它。
但是当我使用 exif 工具和类似工具时,大多数时候,GPS 字典是空的,就好像未设置位置一样。
(另外,我注意到 GPS 信息不是 exif 格式)
所以我想,位置信息也在其他地方......
那么 PHAsset 的 location 属性有什么问题?
如何正确设置位置?
照片在其自己的数据库中跟踪位置元数据,与每个照片文件中存储的 EXIF 元数据分开。当您(作为 Photos API 的客户端)或用户创建/添加新资源时,Photos 会从文件中读取 EXIF 位置数据,并在其数据库中设置位置以进行匹配。然而除此之外,照片 API 并没有努力保持这些同步。
如果您想更新 EXIF 元数据在文件中,你需要自己做。 (图像 I/O 可以帮助解决这个问题 - 请参阅这个答案 https://stackoverflow.com/a/5294574/957768.) 然后,添加整个文件,而不仅仅是一个UIImage
从它创建,到照片使用creationRequestForAssetFromImageAtFileURL:
或新的PHAssetCreationRequest
iOS 9 中的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)