我有两个UIImageView叠放在一起(图片+叠加框),我想将它们作为一张图片保存到相机胶卷中。
我应该如何合并这两个UIImageView,以便我可以调用UIImageWriteToSavedPhotosAlbum函数,使用一个“result”UIImage?
我有两个UIImageView叠放在一起(图片+叠加框),我想将它们作为一张图片保存到相机胶卷中。
我应该如何合并这两个UIImageView,以便我可以调用UIImageWriteToSavedPhotosAlbum函数,使用一个“result”UIImage?
+ (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; }
我此刻没有我的Mac电脑,但我以前做过这件事。
具体步骤是将UIImageView
渲染到位图上下文中,然后从该上下文创建CGImage
,再用它创建一个新的UIImage
。
请阅读有关CGBitmapContext
的内容,包括CGBitmapContextCreateImage
。
- (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;
}