gpt4 book ai didi

ios - 如何将 PHLivePhoto 保存到照片库?

转载 作者:行者123 更新时间:2023-11-30 12:25:55 26 4
gpt4 key购买 nike

我是 Swift 新手,正在开发一个应用程序,该应用程序从库中选取一张实时照片并将其显示在 ImageView 上,直到该部分正常工作,但该 ImageView 位于另一个具有自定义图像的 ImageView 之上(如背景图像)。当我点击保存按钮时,它只存储具有自定义背景的 ImageView 。我使用以下代码将其存储在库中:

let imageData = UIImagePNGRepresentation(myView.image!)
let compressedImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil)

此代码当然位于保存按钮上。

我想做的是让用户能够同时存储这两件事,例如:

我有一个以星系图像为背景的 ImageView ,在它的顶部有一个显示实时照片的 ImageView ,所以我想将这两个东西存储到库中,当我在库上检查它时,我将有一张以星系为背景的新实时照片。

我不知道是否有人会理解这个例子,但我认为这是我能做的最好的描述问题的方法。

**这是例子

enter image description here

最佳答案

您需要在backgroundImage之上绘制selectedImage,并保存结果。

添加UIImage的扩展

extension UIImage {
func saveImage(withImage image: UIImage) -> UIImage? {
// create image
UIGraphicsBeginImageContext(size)
draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
let centeredFrame = CGRect(x: (size.width - image.size.width)/2, y: (size.height - image.size.height)/2, width: image.size.width, height: image.size.height)
image.draw(in: centeredFrame)
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
}

并使用它

if let newImage = backgroundImage.saveImage(withImage: userImage), let imageData = UIImagePNGRepresentation(newImage), let compressedImage = UIImage(data: imageData) {
UIImageWriteToSavedPhotosAlbum(compressedImage, nil, nil, nil)
}

其中backgroundImage是自定义背景,userImage是从用户库中选择的实时照片。

关于ios - 如何将 PHLivePhoto 保存到照片库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44222412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com