根据“人脸”元数据获取 PHAsset
Posted
技术标签:
【中文标题】根据“人脸”元数据获取 PHAsset【英文标题】:Get PHAssets based on "Face" metadata 【发布时间】:2015-04-01 16:38:51 【问题描述】:在 Mac 中使用照片用户可以在照片中标记人物。然后,这些数据会同步到云端,在那里他们可以在 ios 上的照片中进行面部搜索。元数据的类型似乎是“人脸”。是否可以获得与其中一张面孔相关的所有资产?我想抓取其中有某个人的所有图像。您可以在 iOS 中的照片搜索中执行此操作,因此我希望它也对其他开发人员开放。
有人有什么想法吗?
提前致谢。
【问题讨论】:
【参考方案1】:Apple 发布了一个用于访问 Apple 照片的 SDK,称为 Photo Kit。在文档中,您将找到对照片应用程序和照片云的 API 访问。但是,如果您正在寻找一种 HTTP API,我认为尚未公开宣布。
如果您只需要访问照片 MacOS 应用程序上的数据,我建议您深入研究位于照片库数据库目录中的 SQLite photos.db。
/Users/[yourUserName]/Pictures/Photos Library.photoslibrary/database/photos.db
本周末我正在开展一个项目,该项目需要类似的面部数据,并将记录我的进度。这是一个示例 SQLite 查询,您可以使用它来获取所有面孔、照片和相应的人:
SELECT *, RKFace.modelId AS fId
FROM RKFace
JOIN RKMaster ON RKMaster.modelId = RKFace.imageModelId
LEFT JOIN RKFaceGroup ON RKFaceGroup.modelId = RKFace.faceGroupId
LEFT JOIN RKFaceCrop ON RKFaceCrop.faceId = RKFace.imageModelId
LEFT JOIN RKFacePrint ON RKFacePrint.faceId = RKFace.imageModelId
LEFT JOIN RKPerson ON RKPerson.modelId = RKFace.personId;
我希望这会有所帮助。 :-)
【讨论】:
【参考方案2】:目前 iOS 上还没有此类 API。
【讨论】:
以上是关于根据“人脸”元数据获取 PHAsset的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 通过 PHAsset 访问 UIImage 的元数据
为啥 PHAsset creationDate 与 exif 元数据不同?