一个UIimageView装载原始图片 一个UIview为画笔涂鸦板
涂鸦结束后在合并的时候 遇到了坑 也是因为对UIGraphicsBeginImageContext这些不太熟悉。
要合并首先先将画板内容转换成一张图片
(在这里遇到一个坑就是我把转换图片和生成图片放在了同一个图形上下文中 搞了很久图片都不对。因为画板生成图片的上下文区域大小和合并的区域大小不一样 需要使用两个上下文)
1 开启一个图形上下文
2 生成图片
3 从当前上下文获取新的图片
4 关闭上下文
以下是我在合并时的代码 self.touchdrawView为画板View
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(self.touchdrawView.frame.size, NO, 0.0); //2.开启图形上下文,这里的第一个参数是你的图形上下文的size
//将层及其子层呈现到指定的上下文中。 [self.touchdrawView.layerrenderInContext:UIGraphicsGetCurrentContext()]; UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
//防止low memory warning[self.touchdrawView.layerrenderInContext:UIGraphicsGetCurrentContext()];
self.touchdrawView.layer.contents= nil;
UIGraphicsEndImageContext();
CGSizesize = self.imageView.image.size;
CGRectrect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[self.imageView.imagedrawInRect:rect];//绘制图片1
[image drawInRect:rect];//绘制图片2
self.editImage= UIGraphicsGetImageFromCurrentImageContext();//生成所需图片
UIGraphicsEndImageContext();
在上网搜各种信息是发现了个非常好的文章,内容为
iOS Quart2D绘图之UIGraphicsGetCurrentContext基础。
地址 https://www.jianshu.com/p/8cf8d4b724d2https://www.jianshu.com/p/4e22c6ac114d