iOS 在照片框架查询中从 Whatsapp 中排除图像

Posted

技术标签:

【中文标题】iOS 在照片框架查询中从 Whatsapp 中排除图像【英文标题】:iOS exclude images from Whatsapp in Photos framework query 【发布时间】:2018-10-26 14:58:33 【问题描述】:

是否可以只查询设备相机拍摄的 PHAsset?例如排除 Whatsapp 发送给您的图像。

我尝试了以下方法但没有成功: 1. 按资产 mediaSubtype 和 sourceType 过滤 2. 按原始文件名过滤,因为 Whatsapp 图像通常在文件名中使用 UUID。

第二个选项似乎最有希望,可能与位置等其他元数据结合使用(WhatsApp 图像通常会去除此信息)。

理想情况下,过滤应该发生在 PHAsset 查询上,并且出于性能原因不需要调用 ImageManager.requestImage()。

【问题讨论】:

【参考方案1】:

您可以过滤掉“WhatsApp”相册中的资产。

这是您可以使用的示例函数(swift 4.2):

static private func assetIsFromWhatsapp(_ asset : PHAsset) -> Bool 
    let collection = PHAssetCollection.fetchAssetCollectionsContaining(asset, with: .album, options: nil)

    for index in 0..<collection.count  
        let item = collection.object(at: index)
        if item.localizedTitle == "WhatsApp" 
            return true
        
    

    return false

【讨论】:

以上是关于iOS 在照片框架查询中从 Whatsapp 中排除图像的主要内容,如果未能解决你的问题,请参考以下文章