How to merge multiple UIImageViews into one UIImag

2019-03-30 16:25发布

I have 2 UIImageViews laying on top of each other ( picture + overlay frame ) and I want to save them to the camera roll as 1 picture.

How should I combine those 2 UIImageViews so that I can call the UIImageWriteToSavedPhotosAlbum function, using a 'result' UIImage?

3条回答
smile是对你的礼貌
2楼-- · 2019-03-30 16:57

I don't have my Mac nearby at the moment, but I have done this before. The process is that you'll render the UIImageViews into a bitmap context, then create a CGImage from that context that you can use to create a new UIImage from. Read up on CGBitmapContext, including CGBitmapContextCreateImage

查看更多
Evening l夕情丶
3楼-- · 2019-03-30 16:59

To merge two images in one image use the following code:

- (UIImage * ) mergeImage: (UIImage *) imageA withImage:  (UIImage *) imageB
{

UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageA.size.width, imageA.size.height), YES, 0.0);

[imageA drawAtPoint: CGPointMake(0,0)];

[imageB drawAtPoint: CGPointMake(0,0)
          blendMode: kCGBlendModeNormal // you can play with this
              alpha: 1]; // 0 - 1

UIImage *answer = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return answer;

}
查看更多
走好不送
4楼-- · 2019-03-30 17:01
+ (UIImage * ) mergeImage: (UIImage *) imageA
                                 withImage:  (UIImage *) imageB
                                 strength: (float) strength {

UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageA.size.width, imageA.size.height), YES, 0.0); 

[imageA drawAtPoint: CGPointMake(0,0)];

[imageB drawAtPoint: CGPointMake(0,0) 
          blendMode: kCGBlendModeNormal // you can play with this
              alpha: strength]; // 0 - 1

UIImage *answer = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();
return answer; }
查看更多
登录 后发表回答