0

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

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

此代码当然在保存按钮上。

我想要做的是让用户能够同时存储这两种东西,例如:

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

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

** 这是示例

在此处输入图像描述

4

1 回答 1

0

您需要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是从用户库中选择的实时照片。

于 2017-05-28T01:21:53.053 回答