如何将 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:)
来创建资产。
希望这有助于您入门。
我知道我可以使用以下代码将 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:)
来创建资产。
希望这有助于您入门。