gpt4 book ai didi

ios - 合并两个不同大小的 UIImageView

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

我正在制作一个 iOS 应用程序,用户应该能够将一个图像覆盖在另一个图像上。用户可以选择背景图像,该图像将存储在名为 imageView 的 UIImageView 中。然后,用户可以决定将图像覆盖在该图像之上,该图像将存储在名为 imageTwo 的 UIImageView 中。然后,用户可以移动 imageTwo 并调整其大小。但是,我希望能够将这些 ImageView 合并到一张图像中并下载它。

我目前正在使用以下功能来尝试下载图像:

@IBAction func downloadImage(_ sender: Any) {
let bottomImage:UIImage = imageView.image!
let topImage:UIImage = imageTwo.image!

let mySize = CGSize(width: (imageView.frame.size.width), height:(imageView.frame.size.height))

UIGraphicsBeginImageContextWithOptions(mySize, false, 1)
bottomImage.draw(in: CGRect(x: 0,y:0,width: mySize.width,height: mySize.height))
topImage.draw(in: CGRect(x: imageTwo.frame.origin.x ,y: imageTwo.frame.origin.y , width: (imageTwo.frame.size.width),height:(imageTwo.frame.size.height)), blendMode:CGBlendMode.normal, alpha:1.0)
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIImageWriteToSavedPhotosAlbum(newImage, nil,nil,nil)
UIGraphicsEndImageContext()
}

但是,它的效果并不是很好。这是图像在我的应用程序中的外观: Image viewed from app

但是,当我使用上面的函数下载图像时,背景图像看起来被拉伸(stretch),并且 topImage/bird 不在正确的位置:Downloaded image

有人对完成此任务的更简单方法有任何建议,或者我应该如何从上面更改我的代码?我读到这里有人建议将 UIImageViews 放入他们自己的 View 中,但这被证明是相当棘手的......

最佳答案

问题是您正在合成支持 ImageView 的图像,这些图像与 ImageView 实际显示的内容不同。您可以应用必要的转换,以便图像与 ImageView 中显示的内容相匹配,或者您可以偷懒,只捕获屏幕上的图像 snapshotView(afterScreenUpdates:)

关于ios - 合并两个不同大小的 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507952/

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