【问题标题】:How to temporarily save UIImage to Camera Roll如何将 UIImage 临时保存到相机胶卷
【发布时间】:2024-01-13 15:40:01
【问题描述】:

我知道我可以使用以下代码将 UIImage 保存到相机胶卷/相册。

let image = UIImage(data: data) {
            UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
        }

但是,由于没有直接路径,因此无法知道该图像的具体存储位置。

我想知道是否可以将图像保存到相机胶卷,然后,是否可以单独使用 swift 代码删除该精确图像。

【问题讨论】:

    标签: swift uiimage photo-gallery ios-camera camera-roll


    【解决方案1】:

    这完全有可能!但是,您需要为此使用 PhotoKit 框架。你可以找到它的完整文档here

    有一个很好的示例项目,它还显示了如何从该文档页面引用delete photos

    首先要保存图像,您需要使用PHAssetChangeRequest 而不是UIImageWriteToSavedPhotosAlbum。具体来说,有PHAssetChangeRequest.creationRequestForAsset(from:)

    请记住,您需要在performChanges 调用PHPhotoLibrary 中执行更改请求(创建和删除)。

    顺便说一句。如果您从某处检索图像并需要保留元数据(如 Exif 数据),则应使用 PHAssetChangeRequest.creationRequestForAssetFromImage(atFileURL:) 创建资产。

    希望这有助于您入门。

    【讨论】: