Here is what I did. The cameraImg is the image that I am getting from camera and the other three images are static images that I have displayed on the cameraImg. In this case, size defines, the size for the context we are going to start. The images are drawn in the rect defined by DrawInRect method. Make sure to end the context and you're done.
UIImage *cameraImg = image;
UIImage *leftImg = [UIImage imageNamed:@"apple.jpeg"];
UIImage *rightImg = [UIImage imageNamed:@"Cloud.png"];
UIImage *middleImg = [UIImage imageNamed:@"mario.jpeg"];
CGSize size = CGSizeMake(cameraImg.size.width, cameraImg.size.height);
UIGraphicsBeginImageContext(size);
[cameraImg drawInRect:CGRectMake(0, 0, self.view.window.frame.size.width, self.view.window.frame.size.height)];
[leftImg drawInRect:CGRectMake(x, y, width, height)];
[rightImg drawInRect:CGRectMake(x, y, width, height)];
[middleImg drawInRect:CGRectMake(x, y, width, height)];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,finalImage.size.width, finalImage.size.height)];
imageView.image = finalImage;
[self.view addSubview:imageView];