如何将PHLivePhoto保存到照片库?
问题描述:
我是Swift中的新成员,我正在开发一款应用程序,可以从库中选取实时照片并将其显示在图像视图上,直到该图像可以工作为止,但imageview位于另一个具有自定义图像的图像视图之上(如背景图像)。当我点击保存按钮时,它只存储具有自定义背景的图像视图。我正在使用以下代码将其存储在库上:如何将PHLivePhoto保存到照片库?
let imageData = UIImagePNGRepresentation(myView.image!)
let compressedImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil)
此代码当然是保存按钮。
我想要做的就是给用户的是能力两件事存储在同一时间,例如像:
我有一个ImageView的一个星系的图片作为背景,在它之上我有一个显示现场照片的图像视图,所以我想将这两个东西存储到图书馆,当我在图书馆检查它时,我将获得一张带有银河背景的新照片。
我不知道有人会理解这个例子,但是我认为这是我能做的最好的来描述这个问题。
** 这就是例子
答
您需要绘制selectedImage
在backgroundImage
的顶部,并保存结果。
添加这个扩展的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
是从用户库中选择现场照片。
感谢您的回复!我有一些问题,试图将代码添加到我的代码:( –
最新问题? –
我想我必须将“backgroundImage”更改为什么它是指代我的背景的代码片段?插件? 事情是我改变它,它似乎没有“大小”的成员 –