gpt4 book ai didi

ios - 将缩小 View 的图像与 subview 中保持原始大小的图像合并

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

我在 Stackoverflow 上看到了十几个类似的问题。

尽管如此,他们都没有帮助。我有一个应用程序,我可以在其中制作照片,然后在这张照片上添加一些图像。然后我需要保存拍摄的照片以及我放在上面的图像。这是我的结构:

enter image description here

如您所见,我有一个照片 ScrollView ,其中包含照片 View 。每个添加的贴纸都作为 subview 放入照片 ScrollView 中。

现在,如何将照片 ScrollView 中的所有图像合并为单个图像。到目前为止,我已经成功地以屏幕尺寸保存它,这绝对太小了。

func saveImage(_ sender: Any) {

//Create the UIImage
UIGraphicsBeginImageContext(photoScrollView.frame.size)
photoScrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

}

另外,我通过创建快照进行了尝试。在这种情况下,图像仅包含一个白色屏幕,没有其他内容(并且它不是任何 View 的背景颜色)。

func saveImage(_ sender: Any) {

let snapShot:UIView = self.photoScrollView.snapshotView(afterScreenUpdates: true)!
UIGraphicsBeginImageContext(self.photoScrollView.bounds.size)
snapShot.drawHierarchy(in: self.photoScrollView.bounds, afterScreenUpdates: true)

let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

}

有人可以帮我吗?

最佳答案

在尝试了各种方法之后,我找到了一个解决方案,将 Photo View 包装在一个简单的 UIView 中(我称之为 placeholderView)。我将所有添加的图像作为 subview 放入 placeholderView 中,以便它们与 photoView 处于同一级别。

因此,我的结构为:照片 ScrollView -> placeholderView-> ALL_OTHER_SUBVIEWSALL_OTHER_SUBVIEWS 由背景照片和在其上添加的图像组成。

代码如下所示:

@IBAction func saveImage(_ sender: Any) {

//Create the UIImage
let zoomVal = photoScrollView.zoomScale
photoScrollView.zoomScale = 1.0

UIGraphicsBeginImageContext(placeholderView.frame.size)
placeholderView.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
photoScrollView.zoomScale = zoomVal
//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

}

关于ios - 将缩小 View 的图像与 subview 中保持原始大小的图像合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328827/

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