How to merge two UIImages?

Luca Alberto picture Luca Alberto · Aug 14, 2015 · Viewed 31.8k times · Source

I am trying to merge two different images and create a new one. This is the way I would like to do: I have this image (A): polaroid

It's a PNG image and I would like to merge this one with another image (B) which I took from the phone to create something like this: polaroid merged

I need a function who merge A with B creating C. The size must remain from the A image and the image B should auto adapt the size to fit into the polaroid (A). Is it possible to do that? Thank for your help!

UPDATE Just one thing, the image (A) is a square and the image i took is a 16:9, how can i fix that?? If i use your function the image (B) that i took become stretched!

Answer

Pallavi Konda picture Pallavi Konda · Aug 14, 2015

Hope this may help you,

var bottomImage = UIImage(named: "bottom.png")
var topImage = UIImage(named: "top.png")

var size = CGSize(width: 300, height: 300)
UIGraphicsBeginImageContext(size)

let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height)
bottomImage!.draw(in: areaSize)

topImage!.draw(in: areaSize, blendMode: .normal, alpha: 0.8)

var newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

All the Best :)