本发明属于绘图技术领域,具体涉及一种智能画板的画面合成方法。
背景技术:
画板是用来绘图的工具,当前市面上的画板应用的可扩展性低,功能单一,并且存在以下问题:1.曲线不够圆滑;2.cpu占用高;3.缺少一项或多项功能(撤销、重做、橡皮擦、录制脚本)的功能;4.只支撑单人涂鸦;5.多人绘制时,显示端无法展示时快时慢的真实绘画感。
因此,有必要研究一种智能画板画面合成方法,提升画图时的性能,增加简单的功能。
技术实现要素:
为了克服背景技术中存在的不足,本发明提出一种智能画板画面合成方法;能够将多次绘画的视图合并在绘画视图层上。
为了达到上述目的,本发明通过如下技术方案实现的:
一种智能画板画面合成方法,包括以下步骤:
1)创建智能画板层级结构,所述智能画板层级结构从下到上依次为画板视图层、背景图层、合成视图层和绘画视图层;
2)使用贝赛尔路径记录在绘画视图层上绘画的路径,由路径生成图片,并将图片显示在绘画视图层上;
3)绘图完成后,将绘画视图层上的图片传递到合成视图层上缓存,绘画视图层消除其上的贝赛尔路径记录,恢复初始状态;
4)将合成视图层上缓存的图片与背景图层上的图片合成并在绘画视图层上生成图片相册。
进一步,在步骤2)中,绘画视图层恢复初始状态后,再次记录二次绘画的贝赛尔路径并二次生成图片,将二次生成的图片传递到合成视图层上缓存,绘画视图层消除其上的贝赛尔路径记录,再次恢复初始状态。
进一步,所述的贝赛尔路径记录绘画的路径包括以下具体步骤:
1)绘画视图层采集用户的滑动轨迹坐标点;
2)当采集到第5个点时,重新设置第4个点的值:第4个点的x坐标设置为第3个点的x坐标和第5个点的x坐标的平均值,第4个点的y坐标设置为3个点的y坐标和第5个点的y坐标的平均值;
3)以第1点为起点,第4点为终点,第2点和第3点为控制点,绘制二次贝塞尔曲线;
4)设置下次处理的第1点的坐标为本次的第5点的坐标,采集数加1;
5)重复第2步,直至处理完全部坐标点。
进一步,所述绘画视图层上生成图片相册后,画板生成脚本,脚本使用数组记录用户的绘制操作过程,绘制操作过程包括点击、移动、结束、保存和播放操作;点击操作时,脚本记录此时的坐标点、时间点、画笔的颜色、线宽和形状;移动操作时,脚本记录移动的坐标点和时间点;结束操作时,脚本记录此时的坐标点和时间点;完成操作时,脚本将数据打包存储在脚本数组中;保存操作时,将脚本数组归档至文件中。
进一步,背景图层用来显示背景图片。
与现有技术相比,本发明至少具有以下有益效果之一:
1.本方法绘制的图片较现有绘图方法绘制的图片没有明显的边角,曲线较圆润;
2.本发明使用时cpu占用较低,频繁和大量绘制时,cpu占用低于10%;
3.本方法功能较多,能够进行撤销、重做、橡皮擦和录制脚本的功能;
4.本发明支持多人涂鸦,并且多人绘制时,能够展示时快时慢的真实绘画感。
具体实施方式
为了使本发明的目的、技术方案和有益效果更加清楚,下面将结合附图,对本发明的优选实施例进行详细的说明,以方便技术人员理解。
实施例1
一种智能画板画面合成方法,包括以下步骤:
1)创建智能画板层级结构,所述智能画板层级结构从下到上依次为画板视图层、背景图层、合成视图层和绘画视图层,背景图层用来显示背景图片。
2)使用贝赛尔路径记录在绘画视图层上绘画的路径,由路径生成图片,并将图片显示在绘画视图层上;
3)绘图完成后,将绘画视图层上的图片传递到合成视图层上缓存,绘画视图层消除其上的贝赛尔路径记录,恢复初始状态;
4)将合成视图层上缓存的图片与背景图层上的图片合成并在绘画视图层上生成图片相册。
在绘制图片时,绘图者在绘画视图层上进行画图,贝赛尔路径记录在绘画视图层上绘画的路径,由路径生成图片,然后绘画视图层上的图片传递到合成视图层上缓存,将在合成视图层上缓存的照片和背景图层上的图片合成并在绘画视图层上生成图片相册。
实施例2
在实施例1的基础上进行优化,在步骤2)中,绘画视图层恢复初始状态后,再次记录二次绘画的贝赛尔路径并二次生成图片,将二次生成的图片传递到合成视图层上缓存,绘画视图层消除其上的贝赛尔路径记录,再次恢复初始状态。
在进行绘图过程中,绘图者在绘画视图层上进行画图,贝赛尔路径记录在绘画视图层上绘画的路径,由路径生成图片,并将图片传递到合成视图层上缓存,绘画视图层消除其上的贝赛尔路径记录,恢复初始状态,绘画视图层恢复初始状态后,再次记录二次绘画的贝赛尔路径并二次生成图片,将二次生成的图片传递到合成视图层上缓存,将两次在合成视图层上缓存的照片和背景图层上的图片合成并在绘画视图层上生成图片相册。
实施例3
在实施例2的基础上进行优化,所述的贝赛尔路径记录绘画的路径包括以下具体步骤:
1)绘画视图层采集用户的滑动轨迹坐标点;
2)当采集到第5个点时,重新设置第4个点的值:第4个点的x坐标设置为第3个点的x坐标和第5个点的x坐标的平均值,第4个点的y坐标设置为3个点的y坐标和第5个点的y坐标的平均值;
3)以第1点为起点,第4点为终点,第2点和第3点为控制点,绘制二次贝塞尔曲线;
4)设置下次处理的第1点的坐标为本次的第5点的坐标,采集数加1;
5)重复第2步,直至处理完全部坐标点。
贝赛尔曲线绘制能够使得绘制的图片没有明显的边角,曲线较圆润;并且多人绘制时,能够展示时快时慢的真实绘画感。
实施例4
在实施例2的基础上进行优化,所述绘画视图层上生成图片相册后,画板生成脚本,脚本使用数组记录用户的绘制操作过程,绘制操作过程包括点击、移动、结束、保存和播放操作;点击操作时,脚本记录此时的坐标点、时间点、画笔的颜色、线宽和形状;移动操作时,脚本记录移动的坐标点和时间点;结束操作时,脚本记录此时的坐标点和时间点;完成操作时,脚本将数据打包存储在脚本数组中;保存操作时,将脚本数组归档至文件中。
本方法绘制的图片较现有绘图方法绘制的图片没有明显的边角,曲线较圆润;本发明使用时cpu占用较低,频繁和大量绘制时,cpu占用低于10%;本方法功能较多,能够进行撤销、重做、橡皮擦和录制脚本的功能;本发明支持多人涂鸦,并且多人绘制时,能够展示时快时慢的真实绘画感。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。