一种生成无锯的签字图片的方法、装置和设备与流程

文档序号:20959792发布日期:2020-06-02 20:37阅读:248来源:国知局
一种生成无锯的签字图片的方法、装置和设备与流程

本发明涉及计算机技术领域,特别涉及一种生成无锯的签字图片的方法、装置和设备。



背景技术:

电子签字是无纸化行业中一项重要的技术,其核心就是以在屏幕上签字替代传统的纸张签字。

屏幕上签字的主要装置由电磁笔和电磁屏组成,该装置可以实时采集电磁笔在屏幕上划线时所处的位置以及笔在屏幕上的压力值。记录这些数据,可以作为在用户已经签过字的证明。但这些数据不具备可见性,尤其是在电子凭证上(如pdf凭证)需要展示用户签字的效果,以模拟纸张签字的情况。

业内通用常用采用根据插值方式(在签字轨迹数据的点之间插入粗细不同的圆点或矩形)根据签字数据生成jpg、png等格式的静态图片,图片合成到pdf,但在缩放pdf可以很明显的看到签字图片模糊、锯齿明显的问题。



技术实现要素:

本发明要解决的技术问题,在于提供一种生成无锯的签字图片的方法、装置和设备,通过描边生成,边缘平滑,可以有良好的抗锯齿的特性,拥有较好的展现效果。

第一方面,本发明提供了一种方法,包括:

步骤1、收集签字笔从按下到抬起之间每个点的位置和压力值;

步骤2、将笔画上每一点都基于前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点;

步骤3、在轨迹点上基于前进方向,延长出设定长度的线段,该线段的两个端点为控制点;

步骤4、将计算出的控制点作为三次贝塞尔曲线的控制点,将各个轨迹点进行连接后形成一个闭合的曲线,并填充。

进一步地,还包括步骤5、将上述计算的轨迹点和控制点按svg格式中的三次贝塞尔曲线的规范进行记录,行成svg文档。

进一步地,所述步骤2进一步具体为:将重复的点只要保留压力值最大的点,之后计算每一点基于其前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点。

第二方面,本发明提供了一装置,包括:

收集模块,收集签字笔从按下到抬起之间每个点的位置和压力值;

轨迹点模块,将笔画上每一点都基于前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点;

控制点模块,在轨迹点上基于前进方向,延长出设定长度的线段,该线段的两个端点为控制点;

填充模块,将计算出的控制点作为三次贝塞尔曲线的控制点,将各个轨迹点进行连接后形成一个闭合的曲线,并填充。

进一步地,还包括svg模块,将上述计算的轨迹点和控制点按svg格式中的三次贝塞尔曲线的规范进行记录,行成svg文档。

进一步地,所述轨迹点模块进一步具体为:将重复的点只要保留压力值最大的点,之后计算每一点基于其前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点。

第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本申请实施例提供的一种生成无锯的签字图片的方法、装置和设备,其过程清晰明了、运算简单,可以较为迅速的得到最终图片,对cpu、内存等没有较高要求,可以应用在pc、pad、智能设备等多种类型的环境下;

传统方法中,常用粗细不同的点或矩形连接轨迹点,在缩放时边缘锯齿较为明显;其生成的图片由于是通过描边生成,边缘平滑,可以有良好的抗锯齿的特性;在保存成svg后无论放大缩小都可以较好的展现效果;

采用业内有已有的标准规范(svg)保存相关曲线,可以方便在已有软件上的应用,避免额外的重复工作,有效增强其应用范围。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明实施例一中方法中的流程图;

图2为本发明实施例二中装置的结构示意图;

图3为本发明实施例四中示意图一;

图4为本发明实施例四中示意图二。

具体实施方式

本申请实施例通过提供一种方法、装置、系统、设备及介质,通过描边生成,边缘平滑,可以有良好的抗锯齿的特性,拥有较好的展现效果。

本申请实施例中的技术方案,总体思路如下:目前业内常用的签字笔迹采集设备,可以采集出签字笔按下、抬起过程间笔尖在屏幕上划过的位置(坐标)及压力值。将这些数据保存,记录成签字轨迹数据。

处理签字轨迹数据,生成签字笔画图片。笔画的粗细根据轨迹的压力值计算,压力值越大则笔画越粗。如此可以计算出笔画图形的边缘会经过的点,采用三次贝塞尔曲线将这些点进行连接,描摹成闭合曲线并填充,即可以绘制出平滑的、无锯齿的笔画。

按照svg的规范将生成的相关曲线记录形成svg文档。

实施例一

本实施例提供一种方法,如图1所示,包括;第一方面,本发明提供了一种方法,包括:

步骤1、收集签字笔从按下到抬起之间每个点的位置和压力值;

步骤2、将重复的点只要保留压力值最大的点,之后计算每一点基于其前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点;

步骤3、在轨迹点上基于前进方向,延长出设定长度的线段,该线段的两个端点为控制点;

步骤4、将计算出的控制点作为三次贝塞尔曲线的控制点,将各个轨迹点进行连接后形成一个闭合的曲线,并填充。

步骤5、将上述计算的轨迹点和控制点按svg格式中的三次贝塞尔曲线的规范进行记录,行成svg文档。

基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。

实施例二

在本实施例中提供了一种装置,如图2所示,包括:

收集模块,收集签字笔从按下到抬起之间每个点的位置和压力值;

轨迹点模块,将重复的点只要保留压力值最大的点,之后计算每一点基于其前进方向算出该点的垂直线段,该线段以该点为中心,所述垂直线段长度根据设定规则,通过压力值得到长度;该垂直线段两端的点为轨迹点;

控制点模块,在轨迹点上基于前进方向,延长出设定长度的线段,该线段的两个端点为控制点;

填充模块,将计算出的控制点作为三次贝塞尔曲线的控制点,将各个轨迹点进行连接后形成一个闭合的曲线,并填充。

svg模块,将上述计算的轨迹点和控制点按svg格式中的三次贝塞尔曲线的规范进行记录,行成svg文档。

由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

实施例四

为了达到笔画平滑的目的,采用贝塞尔曲线技术画出签字笔画,具体方法如下:

将签字笔从按下到抬起之间所有采集到的每个点的位置和压力值按先后顺序记录作为笔画的一笔的点的集合。示例如下:

(122,92,1710,0;122,92,1796,9;…;240,96,4,19;)

(156,107,1508,92;155,107,1768,7;…;128,178,2,18;)

采用小括号分隔笔画,每对括号中的点为一笔划。

采用分号分隔点。每个点有x、y、p、t四个属性,用逗号分隔,其中x、y表示该点相对左上角的位置,p表示压力值(0-1024),t表示点之间间隔时间。本方法主要用到x,y,p三个属性。

将这些点按按先后顺序直线连接就是该笔画的线条位置,但直线连接无法体现笔画的粗细变化,同时笔画的转折也不够平滑,所以需要以下步骤继续优化。

在笔画的每个点上都基于前进方向(该点的前、后点的连线)算出该点的垂直线段,该垂直线段以该点为中心,长度按照该点的压力值进行调整(压力值越大、线段越长)。具体的长度和压力值的对应关系可以灵活确定。例如,有一笔有三个点(如图3所示),那么算出来的新的点就是a1、a2、b1、b2、c1、c2,其中b1b2线段和a、c点的连线垂直,a1a2线段垂直于ab线段,c1c2线段垂直于bc线段。

将新计算的轨迹点逐一连接就是有粗细变化的线,但如此连接在转折处不够平滑,为了该目的,需要采用三次贝塞尔曲线技术。首先需要基于新的轨迹点计算贝塞尔曲线的控制点。

控制点的计算方法如下:在新的轨迹点上基于前进方向,延长出一定长度的线段,其端点就作为控制点。具体的延长长度会影响最终生成的笔画的平滑度,可以根据前、后点的距离动态确定。或者可以参考一些成熟的算法计算控制点。如图4所示,b1、b2点经过计算后的控制点(b1、b2上下的点就是控制点);

将计算出的控制点作为三次贝塞尔曲线的控制点将各个点进行连接后形成一个闭合的曲线,并填充。就得到一条平滑、无锯齿、有粗细变化的曲线。

将上述计算的轨迹点和控制点按svg格式中的三次贝塞尔曲线的规范进行记录,就行成了svg文档,通过svg软件(大部分网页浏览器)打开该图片后,会按照图片中定义的贝塞尔曲线参数实时绘制出笔画。在放大、缩小时软件会同步根据轨迹点和控制点重新绘制新的图片,达到不失真、不模糊的目的。

由于轨迹采集设备报点频率较高,会出现很多可优化的点,包括重复的点。对于重复的点只要保留压力值最大的点。从而提高绘制的效率。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1