如何将 UIImage 临时保存到相机胶卷

How to temporarily save UIImage to Camera Roll

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

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

但是,由于没有直接路径,因此无法提供了解图像具体存储位置的方法。

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

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

有一个很好的示例项目,它还展示了如何delete photos(<- 直接链接到删除部分)从该文档页面引用。

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

请记住,您需要在 PHPhotoLibrary.

performChanges 调用中执行更改请求(包括创建和删除)

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

希望这有助于您入门。