2017-05-27 171 views
0

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

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

此代码当然是保存按钮。

我想要做的就是给用户的是能力两件事存储在同一时间,例如像:

我有一个ImageView的一个星系的图片作为背景,在它之上我有一个显示现场照片的图像视图,所以我想将这两个东西存储到图书馆,当我在图书馆检查它时,我将获得一张带有银河背景的新照片。

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

** 这就是例子

enter image description here

回答

0

您需要绘制selectedImagebackgroundImage的顶部,并保存结果。

添加这个扩展的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是从用户库中选择现场照片。

+0

感谢您的回复!我有一些问题,试图将代码添加到我的代码:( –

+0

最新问题? –

+0

我想我必须将“backgroundImage”更改为什么它是指代我的背景的代码片段?插件? 事情是我改变它,它似乎没有“大小”的成员 –

相关问题