ios - 如何在应用程序创建的 PHAsset 上设置 mediaSubtype

标签 ios swift gallery photo phasset

我正在创建一个旨在输出带有自定义深度图的图像的应用程序。经过一些摆弄之后,我设法做到了这一点,并且效果很好。然而,尽管同时具有深度图和人像 mask 效果,并且尽管我能够在我的应用程序中成功加载和使用它们,但 Assets 仍然没有正确的媒体子类型(PHAssetMediaSubtype.photoDepthEffect ).这对我很重要,因为我想过滤用户的画廊并仅显示那些包含深度效果的图像,而正确的方法是查询媒体子类型。

有谁知道必须做什么才能确保正确设置此子类型?我找不到改变它的方法,只能假设系统从 Assets 的辅助数据中推断出来。

最佳答案

下面的代码将显示相机在纵向模式下拍摄的所有图像

func getImages(){
        let assetCollection = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .smartAlbumDepthEffect, options: nil).firstObject!
            let result = PHAsset.fetchAssets(in: assetCollection, options: nil)
        result.enumerateObjects { (ph_asset, int, unsafe_mutable_pointer) in
            PHImageManager.default().requestImageData(for: ph_asset, options: nil, resultHandler: { (data, string, image_orientation, info) in
                self.imageData.append(data!)
                self.imageString.append(string!)
                DispatchQueue.main.async {
                    self.myCollectionView.reloadData()
                }
            })
        }
    }

关于ios - 如何在应用程序创建的 PHAsset 上设置 mediaSubtype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54024768/

相关文章:

ios - 如何使用 Metal 获得准确的帧速率?

swift - 在 swift 3.0 中将文本框输入 View 从 pickerview 更改为键盘

swift - 不支持 CoreBluetooth

安卓 : deleting an image

Android:如何查询存储桶名称列表

android - 如何从 Android 图库中的图像检索路径?

objective-c - 让成员变量保留而不是分配是更好的做法吗

iphone - 从 nib 文件加载 View

ios - 为照片添加多种效果

ios - 自 Xcode 7 以来的 Xcode 控制台警告