照片涂鸦 之 合并

一个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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文地址:http://www.cocoachina.com/industry/20140115/7703.htm...
    默默_David阅读 6,304评论 0 1
  • Quartz2D 简介 Quartz2D是二维(平面)的绘图引擎(经包装的函数库,方便开发者使用。也就是说苹果帮我...
    iOS_Cqlee阅读 692评论 0 2
  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 950评论 0 3
  • 慢下来,静下来,听一听花开的声音,看一看叶子舒卷的曼妙。 不要以为你放不下的人同样会放不下你,鱼没有水会死,水没有...
    上官曙光阅读 288评论 0 0
  • 那天等了好久,好久,一场大雨,一场小雨的下着,天很亮,看上去像要天明,可是街道显的那么黑,那么漆黑,像是没...
    小白一只阅读 197评论 0 0

友情链接更多精彩内容