如何在照片库中获取重复媒体?

Posted

技术标签:

【中文标题】如何在照片库中获取重复媒体?【英文标题】:How to get duplicated medias in Photo Library? 【发布时间】:2018-05-16 13:03:08 【问题描述】:

我想在照片库中查找重复的照片/视频并将其删除。但是我很困惑如何将所有照片相互比较并找出其中哪些是重复的。

比较字节没用,我应该采取哪种方式?

【问题讨论】:

【参考方案1】:

您可以使用下面的代码行来获取媒体的属性,并且可以将元数据与其他媒体文件进行比较。通过这种方式,您可以检查重复的媒体。

let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary    

【讨论】:

可以相互比较 2 张照片。但是如何比较前。 5k 张照片?【参考方案2】:

使用 Photos 框架,您可以使用以下内容获取所有媒体的列表

phphotoLibrary.requestAuthorization  status in
    if status == .authorized 
        let fetchOptions = PHFetchOptions()
        fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending:true)]
        assets = PHAsset.fetchAssets(with: fetchOptions)
    

上面的代码按创建日期对资产进行排序。这意味着在检查 5000 多种资产的列表时,您只需检查列表中的相邻资产以查看它们是否重复。

【讨论】:

以上是关于如何在照片库中获取重复媒体?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取用户/相机拍摄的最后一张照片

如何在 iOS 上整合社交媒体进行照片分享?

如何从 PHAsset 获取原始图像和媒体类型?

如何在数组中使用切片JS [重复]

Facebook - 如何获得永久用户访问令牌[重复]

Tweepy [ Twitter API v2 ] 无法上传照片/媒体 [重复]