我正在创建一个应用程序,用户可以从中选择一组图像(多个)并将所选图像添加到所选背景中。然后他们应该能够保存图像,所以我需要帮助将所有图像合并为一个图像来保存。
ViewController有一个大的UIImageView作为背景。当用户选择要添加的图像时,图像将作为子视图添加到UIImageView。
//chosenImage is a UIImageView with an chosen image
backgroundImageView.addSubView(chosenImage)
我需要将图像保存为带有重叠图像的backgroundView的大小。
我怎样才能做到这一点?
我已经四处寻找,但只找到了Obj-C的答案和一些不能工作的答案。
对于那些寻找相同答案的人来说,这就是您按下按钮时保存图像的方法:
@IBAction func saveImage(sender: AnyObject) {
let snapShot:UIView = backgroundImage.snapshotViewAfterScreenUpdates(true)
UIGraphicsBeginImageContext(backgroundImage.bounds.size)
snapShot.drawViewHierarchyInRect(backgroundImage.bounds, afterScreenUpdates: true)
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
答案 0 :(得分:2)
我需要将图像保存为带有重叠图像的backgroundView的大小。
你有两个选择。一种是在代码中绘制合成图像,只是将图像按照图像视图及其子视图的位置绘制到图像图形上下文中。但是,在您的情况下,更简单的方法是简单地渲染或快照图像视图:这将有效地成为图像视图及其子视图的屏幕截图,正是用户所看到的。