合并两个UIImage' s

时间:2015-11-09 22:41:14

标签: ios swift uiimageview uiimage core-graphics

我想合并两个UIImage,但我遇到了一些困难。我正在玩一个绘图应用程序,当用户完成时,用户将最终绘图与他们想要绘制的原始图像合并。

topImage和bottomImage都是最终图像,需要与相应的aspectFit aka比例合并。

然后用户最终可以将两个图像组合成一个,但是底部图像的UIImage的大小会有所不同。

我一直在尝试合并它们而不会影响newImage或宽高比(合适)

设置:

我有两个UIImageView设置为(宽度:310,高度:400)

bottomImageView

bottomImage是JPEG:size(600,800)//其他图像的比例会有所不同

topImageView

topImage是PNG(透明度):size(310,400)

作为Facebook帖子的一部分的bottomImage是用户理论上会画出的#34;。 topImage(红线/圆圈)是应该与底部图像合并的内容。

enter image description here

如何在不改变UIImage的大小的情况下将它们合并在一起?

我尝试了两种不同的方式但无济于事。

方式1:

let bottomImageView: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 310, height: 400))
let topImageView: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 310, height: 400))

bottomImageView.image = topImage
topImageView.image = bottomImage

bottomImageView.contentMode = .ScaleAspectFit
topImageView.contentMode = .ScaleAspectFit

UIGraphicsBeginImageContext(bottomImageView.frame.size)

bottomImageView.image?.drawInRect(CGRect(x: 0, y: 0, width: bottomImageView.frame.size.width, height: bottomImageView.frame.size.height), blendMode: CGBlendMode.Normal, alpha: 1.0)
topImageView.image?.drawInRect(CGRect(x:0, y: 0, width: topImageView.frame.size.width, height: topImageView.frame.size.height), blendMode: CGBlendMode.Normal, alpha: 1.0)

let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsGetImageFromCurrentImageContext()

方式1,不起作用,因为它创建了一个新的画布(300,400),最终改变了扭曲我的bottomImage和topImage的大小。

方式2:

mov [ebx+ecx*4], eax

方式2:我认为通过放置两个UIImageViews然后按下"他们在一起会工作,但它最终扭曲我的newImage像方式1。

是否可以在不影响newImage外观的情况下将它们组合起来?

0 个答案:

没有答案