CN111524209B - 电子书写方法、装置、终端以及存储介质 - Google Patents
电子书写方法、装置、终端以及存储介质 Download PDFInfo
- Publication number
- CN111524209B CN111524209B CN201910106941.6A CN201910106941A CN111524209B CN 111524209 B CN111524209 B CN 111524209B CN 201910106941 A CN201910106941 A CN 201910106941A CN 111524209 B CN111524209 B CN 111524209B
- Authority
- CN
- China
- Prior art keywords
- pixel points
- sequence
- stroke
- width
- strokes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供一种电子书写方法、装置、终端以及存储介质。电子书写方法包括获取书写笔迹经过路径的原始像素点;将获取的原始像素点进行等距离插补,并将所有的像素点存入序列;选取序列中存入的像素点绘制笔画,并根据单位时间内序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋。本发明通过异步绘制笔画,并对笔画的像素点宽度进行补充形成笔锋,从而使电子书写更加美观,具备手写文字的特征。
Description
技术领域
本发明涉及电子书写,具体涉及一种电子书写方法、装置、终端以及存储介质。
背景技术
现在流行的在线远程教育,授课老师一般在一个直播间进行同比例画面直播,其中,必不可少就是用于授课的黑板。传统黑板一方面书写和擦除不是很方便,比如一些几何图形的绘制、笔记的保存和恢复;另一方面比较浪费资源。所以现在出现了电子黑板。电子黑板不仅可以像真实黑板一样书写,并且还能对笔记进行保存和回退以及对于一些常用的几何图形进行快速绘制等。
现在有很多网络签名的应用,比如银行在线贷款合同等,会需要用户在手机上进行书写签名。
电子黑板和手机等可用于书写的电子产品均由触摸屏和可书写的软件组成,但是,在电子产品上书写出来的笔画或者线条粗细没有变化,使得书写的笔画或者线条显得生硬,不能准确体现出手写文字的特征。
发明内容
本发明提供一种电子书写方法、装置、终端以及存储介质,以解决现有技术中的一个或者多个技术问题。
为实现上述目的,根据本发明的一个方面,本发明提供了一种电子书写方法,包括:
获取书写笔迹经过路径的原始像素点;
将获取的原始像素点进行等距离插补,并将所有的像素点存入序列;
选取所述序列中存入的像素点绘制笔画,并根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋。
在一种实施方式中,所述选取所述序列中存入的像素点绘制笔画,并根据计算出单位时间内的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋的具体步骤包括:
选取所述序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的所述初始宽度为像素点的最小单位宽度;
计算在当前所述序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,所述序列中原始像素点的选取和存入同时并行;
将所述计算出单位时间内的像素点的数量与设定的所述单位时间内像素点的标准数量进行比对;
当所述计算出单位时间内的像素点的数量小于等于所述单位时间内像素点的标准数量时,对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等;
当所述计算出单位时间内的像素点的数量大于所述单位时间内像素点的标准数量时,对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。
在一种实施方式中,所述对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小的具体步骤包括:
计算出的当前所述序列的单位时间内的像素点的数量为第一值;
根据所述第一值,将绘制笔画时选取的第一组像素点补充第一设定宽度;
按照第一等差数列,以第一组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第一组像素点移出所述序列;其中,选取的每组像素点包括至少一个像素点;
计算以第二组像素点为起始像素点的当前所述序列的单位时间内的像素点的数量为第二值;
根据所述第二值,将绘制笔画时选取的第二组像素点补充第二设定宽度;
按照第二等差数列,以第二组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第二组像素点移出所述序列;
按照上述步骤,重复补充绘制笔画选取的每组像素点的宽度,直至将存入所述序列的最后一组像素点的宽度补充,其中,设定宽度与当前所述序列的单位时间内的像素点的数量成反比。
在一种实施方式中,对绘制笔画的像素点进行宽度补充形成笔锋的方法还包括:
判断书写笔迹的收笔;
当所述序列在规定时间内不存入原始像素点,判断书写笔迹为收笔笔迹,对绘画笔画的选取的所有像素点中第一个像素点补充设定宽度,且后续的像素点补充的宽度值逐渐变小;
当所述序列在规定时间内存入原始像素点,判断书写笔迹为正常笔迹,对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等。
在一种实施方式中,所述将获取的原始像素点进行等距离插补,并将所有的像素点存入序列的具体步骤包括:
计算出获取的原始像素点中任一相邻两个像素点之间的实际距离;
当计算出的任一实际距离大于相邻两个像素点之间的标准间距时,对该实际距离进行等距离拆分,并在对应拆分位置补充新的像素点,以使补充像素点后的任意相邻像素点之间的实际距离小于等于所述标准间距;
将获取的原始像素点和补充的像素点均存入所述序列。
在一种实施方式中,所述选取所述序列中存入的像素点绘制笔画的步骤包括:
采用画贝塞尔曲线的方式进行绘制笔画。
在一种实施方式中,对绘制笔画时选取的任一像素点增加1或2像素的同颜色的阴影效果。
根据本发明的又一个方面,提供了一种电子书写装置,包括:
获取单元,所述获取单元配置成用于获取书写笔迹经过路径的原始像素点;
拆分单元,所述拆分单元配置成用于将获取的原始像素点进行等距离插补,并将所有的像素点存入序列;
绘制单元,所述绘制单元配置成用于选取所述序列中存入的像素点绘制笔画,并根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋。
在一种实施方式中,所述绘制单元包括:
绘制子单元,所述绘制子单元配置成用于选取所述序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的所述初始宽度为像素点的最小单位宽度;
计算子单元,所述计算子单元配置成用于计算在当前所述序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,所述序列中原始像素点的选取和存入同时并行;
比对子单元,所述比对子单元配置成用于将所述计算出单位时间内的像素点的数量与设定的所述单位时间内像素点的标准数量进行比对;
当所述计算出单位时间内的像素点的数量小于等于所述单位时间内像素点的标准数量时,所述比对子单元配置成用于对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等;
当所述计算出单位时间内的像素点的数量大于所述单位时间内像素点的标准数量时,所述比对子单元配置成用于对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。
根据本发明的再一个方面,提供了一种电子书写终端,包括:
一个或者多个处理器;
存储装置,用于存储一个或者多个程序;
当所述一个或多个程序被所述一个或者处理器执行时,使得所述一个或者多个处理器实现如上述任一实施方式中所述的电子书写方法。
根据本发明的再一个方面,提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行实现如上述任一实施方式中所述的电子书写方法。
本发明采用上述技术方案,具有如下优点:本发明异步绘制笔画,并通过像素点等距离插补增加电子书写笔画的平滑度,又通过对绘制笔画的宽度进行补充形成笔锋,从而使电子书写更加美观,具备手写文字的特征。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施例中电子书写方法中的示意性流程图;
图2为本发明实施例中电子书写方法中的另一示意性流程图;
图3为本发明实施例中电子书写方法中的又一示意性流程图;
图4为本发明实施例中电子书写装置的示意性框架图;
图5为本发明实施例中电子书写装置中绘制单元的示意性框架图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本实施例第一方面提供了一种电子书写方法。参见图1所示,电子书写方法包括:
步骤S110:获取书写笔迹经过路径的原始像素点。在获取像素点的同时获取像素点的坐标,以定位像素点位置。
在具体实施例中,使用电子笔书写“人”字时,需要书写的笔画数为二,第一笔画为“丿”,第二笔画为“丶”,则电子笔首先书写第一笔画“丿”,书写第一笔画“丿”即为一次书写笔迹,在书写第一笔画“丿”的同时,获取笔画“丿”在显示屏上笔画路径经过的像素点,获取的像素点即为第一笔画“丿”路径经过的所有原始像素点。
步骤S120:将获取的原始像素点进行等距离插补,并将所有的像素点存入序列。理论上书写笔迹经过所有像素点,但是实际应用程序中,如H5-canvas,不是所有的像素点都显示给开发者。在书写时由于书写速度的不同时,前端获取的原始像素点的实际距离存在差异,例如,书写笔迹实际经过10个像素点,而前端显示给开发者的只是其中5个像素点,5个像素点之间的距离要大于10个像素点之间的距离,书写速度越快,显示的像素点越少,因此,对原始像素点进行等距离插补,可以在原始像素点之间补充新的像素点,从而保证拆分后的相邻所有像素点之间的间距相同且小于等于标准间距,从而增加视觉平滑性,然后将原始像素点和插补像素点都存入序列,并在存入时记录像素点的存入时间。序列类似于一个存储库,可以对像素点进行存储和排列。
步骤S130:选取序列中存入的像素点绘制笔画,并根据单位时间内序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋。选取序列中的一个像素点作为绘制笔画的第一个像素点,然后根据序列中排列的顺序依次获取绘制的像素点,直至确认选取最后一个绘制的像素点,从而将所有获取的像素点绘制在显示端时,在视觉上形成笔画,实现异步绘制笔画。根据上述具体实施例,绘制的笔画应为第一笔画“丿”。单位时间内像素点的数量体现书写速度,在根据手写笔画的特征,进而推断在该书写速度下产生的笔锋特征,从而对绘制笔画的像素点进行宽度补充形成笔锋,使电子书写的笔画具备笔锋,体现出手写笔画的特征。步骤S130中开始绘制的第一笔画“丿”仅是按照路径和像素点绘制,并没有出现体现出手写特征,之后根据电子笔的书写速度,推断出手写时该速度出现的笔锋,在对开始绘制第一笔画“丿”的像素点进行宽度补充,在原来笔画的基础上补充出笔锋特征,至此才完成书写第一笔画“丿”。
步骤S110~步骤S130整个过程,即为绘制具体实施例中第一笔画“丿”的过程,由于书写汉字均是按照笔画一笔一笔书写的,因此,每一笔画均会通过步骤S110~步骤S130整个过程来完成,从而使不同笔画出现不同的笔锋特征,步骤S110~步骤S130整个过程实际上是一种异步绘制笔画的过程,但是步骤S110~步骤S130整个过程的时间极短,通常在书写笔迹出现后即可绘制相应的带有笔锋特征的笔画。
一种具体实施例中,具备步骤S110~步骤S130类似过程,但是在步骤S130中,没有先形成笔画,而是以极快的速度按照步骤S130的算法,快速算出每个像素点形成笔锋时的宽度,然后直接以该宽度形成笔画,书写过程与形成笔画之间存在极短的延时,这样,可以以一种书写和笔画同时进行的方式显示。
本实施例通过对绘制笔画的宽度进行补充形成笔锋,从而使电子书写更加美观,具备手写文字的特征。
在一实施例中,参见图2所示,步骤S130选取序列中存入的像素点绘制笔画,并根据单位时间内序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋的具体步骤包括:
步骤S141:选取序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的初始宽度为像素点的最小单位宽度。这样,将绘制笔画分成两部分,第一部分是先将选取的像素点绘制笔画,形成笔画雏形,使用像素点的初始宽度有利用之后对该像素点的宽度进行补充。
步骤S142:计算在当前序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,序列中原始像素点的选取和存入同时并行。计算的差值时间为绘制笔画的时间,并获取绘制该笔画所用的原始像素点的数量,根据已知单位时间,可计算出单位时间内像素点的数量,单位时间内像素点的数量可体现出书写的速度。单位时间内像素点的标准数量可看作为正常书写速度时产生的像素点。单位时间内序列存入原始像素点的数量越多,书写速度越快。步骤中每一个像素点的存入时间可以认为是或者替换为该像素点的时间戳。时间戳能表示一份数据是在某个特定时间之前已经存在的、完整的和可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。确定像素点的时间戳,则不会在存入或者获取像素点时获取存入时间错误的像素点。
在绘制笔画的过程中,当序列存入的像素点达到一定数量后,就选取进行笔画绘制,由于书写速度不同,选取和存入序列的像素点不同,因此,在选取和存入同时进行的情况下,均需要重新计算单位时间内的像素点的数量。
步骤S143:将计算出单位时间内的像素点的数量与设定的单位时间内像素点的标准数量进行比对。具体的比对方法包括:
步骤S143a:计算出单位时间内的像素点的数量小于等于单位时间内像素点的标准数量,对绘制笔画的选取的像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等。计算出的单位时间内序列存入像素点的数量小于等于单位时间内像素点的标准数量,则认为书写速度为正常的书写速度,按照手写特征,可知当书写速度正常时,会产生笔锋且笔锋按照同等宽度延伸,因此,对绘制笔画的像素点进行宽度补充形成笔锋,且补充的宽度值均等,从而使绘制笔画具备手写时的笔锋特征。
步骤S143b:计算出单位时间内的像素点的数量大于单位时间内像素点的标准数量,对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。计算出的单位时间内序列存入像素点的数量大于单位时间内像素点的标准数量,则认为书写速度超过正常的书写速度,按照手写特征,可知当书写速度加快时,会导致笔锋逐渐变窄,因此,对绘制笔画的像素点进行宽度补充形成笔锋,且每个像素点补充的宽度值逐渐变小,从而使绘制笔画具备手写时的笔锋特征。
在一具体实施例,步骤S143(包括步骤S143a~S143b)类似绘制第一笔画“丿”时,按笔画顺序,应该由上向下绘制第一笔画“丿”,在书写第一笔画“丿”时,在起笔的一段时间内,是按照正常书写速度书写,则起笔处对像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等,书写一段时间后,加快书写速度形成“撇”,则从步骤S143a结束的像素点为步骤S143b的起始像素点进行宽度补充,步骤S143b的起始像素点补充的宽度为设定宽度,之后像素点的补充宽度均以起始像素点补充的宽度或等差递减或等比递减,从而形成第一笔画“丿”中的“撇”的笔锋。
在一实施例中,步骤S143b中对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小的具体步骤包括:
计算出的当前序列的单位时间内的像素点的数量为第一值。
由于存入和选取同时进行,在选取或者正要选取的过程中,就会有新的原始像素点补充进来,同时由于步骤S120利用等距离插补将原始像素点拆分,存入序列的像素点可能要比选取的像素点的数量多,则每次绘制时,均需要计算一次当前序列的单位时间内的原始像素点的数量,以确定当前序列对应的书写速度。
根据第一值,将绘制笔画时选取的第一组像素点补充第一设定宽度。
在一具体实施例中,按照当前序列的单位时间内的像素点的数量可以获得相应的笔画书写速度,而笔画书写速度影响笔锋形成的宽度,因此,可以建立当前序列的单位时间内的像素点的数量与笔锋形成的宽度的变量关系式,从而,使第一值对应第一设定宽度,第二值对应第二设定宽度,……,第n值对应第n设定宽度。
按照第一等差数列,以第一组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第一组像素点移出序列。本实施例每次绘制笔画选取的像素点不是全部移出序列,而是移出一组像素点,分组是按照像素点之间书写速度进行的,每组中像素点的单位时间内对应的书写速度相同,因此每组中的像素点是按照同一宽度进行,一组可能就一个像素点,也可能一组有多个像素点,而各个组之间补充像素点的宽度是按照阶梯宽度以等差数列减小,但也包括等比数列减小,具体使用方法需要根据像素点数量决定。
计算以第二组像素点为起始像素点的当前序列的单位时间内的像素点的数量为第二值。
根据第二值,将绘制笔画时选取的第二组像素点补充第二设定宽度。通常认为第一设定宽度大于第二设定宽度,本实施的笔画绘制,实际上是要经过多次绘制补充,每次移出一组像素点,序列中的像素点数量就会产生变化,则需要每在序列移出像素点用于绘制笔画时,重新计算序列中像素点数量,从而确定书写速度。
按照第二等差数列,以第二组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第二组像素点移出序列。本实施例每次绘制笔画选取的像素点不是全部移出序列,而是移出一组像素点,分组是按照像素点之间书写速度进行的,每组中像素点的单位时间内对应的书写速度相同,因此每组中的像素点是按照同一宽度进行,一组可能就一个像素点,也可能一组有多个像素点,而各个组之间补充像素点的宽度是按照阶梯宽度以等差数列减小,但也包括等比数列减小,具体使用方法需要根据像素点数量决定。
按照上述步骤,重复补充绘制笔画时选取的每组像素点的宽度,直至将存入序列的最后一组像素点的宽度补充。每个像素点均有存入时间,即使序列剩下最后一个像素点,也可以根据前一组像素点的存入时间,计算出剩下最后一个点按照此速度的单位时间内存入的像素点数量,将剩下最后一个点作为最后一组进行宽度补充,当前序列中有多少原始像素点,就计算出与当前该序列存入像素点的书写速度,并根据书写速度确定像素点补充的宽度,直至序列中不再存入像素点。
在一具体实施例中,绘制笔画不是一次性完成的,绘制笔画选取的像素点中同一组像素点会经过多次宽度补充,直到该点宽度被补充完成了,才会被移出序列,比如,序列中已经存入1,2,3,4,5像素点后,根据书写笔迹,序列依旧还会存入6,7,8……像素点。假设按照每组仅包括一个像素点,绘制流程是:第一次绘制1,2,3,4,5五个像素点,第一个像素点绘制一次宽度补充完成,移出序列,在第一个像素点移出序列的同时,序列可能又存入了若干像素点,那么,第二次绘制2,3,4,5,6……,第二像素点经过两次绘制宽度补充完成,移出序列,按之前步骤循环,第三次绘制3,4,5,6……,第四次4,5,6……,第5次5,6……,每个像素点都会被重绘和补充多次。例如,在上述绘制过程,序列中“5”这个像素点经过了五次绘制,在最后一次绘制完成后才会被移除序列,其他像素点类似,只有被移除的像素点才不会再被补充。每组像素点的数量不固定,只要像素点对应的书写速度相同既可以作为一组。绘制过程中,每次对像素点的宽度补充都是按照序列中单位时间内存入像素点的数量(即书写速度)决定,书写速度越快补充的宽度越小,书写速度越慢补充的宽度越大,当书写速度属于正常书写速度时,补充的宽度则为步骤S143a中的设定宽度。
进一步地,步骤S130中对绘制笔画进行宽度补充形成笔锋的方法的步骤还包括:
判断书写笔迹的收笔。手写笔画在收笔时,笔锋则是呈现一种由宽到窄的变化特征,因此判断笔画是否收笔,则能准确绘制书写笔画的笔锋特征。
当序列在规定时间内不存入原始像素点,则书写笔迹在书写中发生收笔,在收笔后不立刻产生原始像素点存入序列,从而判断书写笔迹为收笔笔迹,对绘画笔画的选取的所有像素点中第一个像素点补充设定宽度,且后续的像素点补充的宽度值逐渐变小。
当序列在规定时间内存入原始像素点,则书写笔迹按照正常书写速度进行,从而判断书写笔迹为正常笔迹没有产生收笔,对绘制笔画的像素点进行宽度补充形成笔锋,且补充的宽度值均等。
在具体实施例中,判断书写笔迹的收笔即为判断书写一个笔画是否完成,本实施例的方法是针对每一笔画,每一笔画不同,则形成的笔锋不同,因此,需要根据收笔判断笔画的完成情况,当书写完一个笔画,在书写另一笔画时,则从步骤S110重新开始绘制笔画。
在一具体实施例中,判断书写笔迹的收笔步骤还可以设置在步骤S143a中,即:计算出的单位时间内序列存入像素点的数量大于单位时间内像素点的标准数量,之后在判断书写笔迹的收笔;该实施例用于保护在书写时出现连笔的情况,若出现连笔,则既需要判断书写速度,也要判断书写笔迹的收笔。通过两个判断标准,才能在书写连笔时,即使出现书写速度快也不会在补充绘制笔画宽度时出现宽度值逐渐变小的情况。
本实施例按照手写时产生笔锋的特点,在电子书写时检测出现笔锋的各种情况,并对每种情况绘制出相应的笔锋,从而使电子书写具备手写的笔锋特征,更加接近真实的手写笔画。
在一具体实施例中,参见图3所示,步骤S120中将获取的原始像素点进行等距离插补,并将所有的像素点存入序列的具体步骤包括:
步骤S121:计算出获取的原始像素点中任一相邻两个像素点之间的实际距离。由于书写速度的变化,原始像素点之间的距离不同,而在原始像素点之间的距离过大时,出现锯齿,会影响整体笔画的平滑度。
步骤S122:当计算出的任一实际距离大于相邻两个像素点之间的标准间距时,对该实际距离进行等距离拆分,并在对应拆分位置补充新的像素点,以使补充像素点后的任意相邻像素点之间的实际距离小于等于标准间距。
在一具体实施例中,获取的第一原始像素点和第二原始像素点之间的实际距离为10单位,而设定的相邻两个像素点之间的标准间距为2单位,则将第一原始像素点和第二原始像素点之间的实际距离进行五等分的等距离拆分,形成四个切分位置和五个切分距离,每个切分距离均为2单位,在切分位置补充与第一原始像素点和第二原始像素点具有相同特征的新的像素点,则实际由两个原始像素点拆分形成六个像素点,其中,切分方法包括但不局限于五等分,也可以进行六等分,六等分之后的切分距离也满足小于2单位,但切分并不是无限制等分,等距离拆分需要符合设备像素点的最小间距,因此,只要在合理范围内,使切分后两个相邻像素点之间距离小于等于2单位,均在保护范围之内。
步骤S123:将获取的原始像素点和补充的像素点均存入序列。
本实施例通过将书写产生的原始像素点进行等距离拆分,并在距离大的相邻原始像素点之间添加新的像素点,从而有效提供像素点的视觉平滑度。
在一具体实施例中,选取序列中存入的像素点绘制笔画的步骤包括:采用画贝塞尔曲线的方式进行绘制笔画。画贝塞尔曲线可以提高绘制笔画的平滑性。
在一具体实施例中,对绘制笔画时使用的像素点增加1或2像素的同颜色的阴影效果。增加1或2像素为优先值,只要增加的像素在合理范围内,都应当在实施例的增加范围内。增加的像素可以进一步降低锯齿,增加视觉平滑度。
在一具体实施例中,绘制笔画时像素点以最细的线条宽度进行绘制,且绘制笔画完成后宽度不可修改。采用最细的线条宽度进行绘制,可以在补充笔锋时进行增宽,绘制笔画通常采用H5-canvas进行绘制,H5-canvas中绘制的笔画完成后不可修改,只能在原宽度上对像素点加宽,或者使用更宽的线条覆盖原线条,不能对原线条删减。
本实施例第二方面提供了一种电子书写装置。参照图4所示,电子书写装置包括获取单元110、拆分单元120、绘制单元130。
获取单元110配置成用于获取书写笔迹经过路径的原始像素点。获取单元110在获取原始像素点的同时也获取原始像素点的坐标,以定位像素点位置。
拆分单元120配置成用于将获取的原始像素点进行等距离插补,并将所有的像素点存入序列。拆分单元120对原始像素点进行等距离插补,可以在原始像素点之间补充新的像素点,从而保证拆分后的相邻像素点之间的间距相同且小于等于标准间距,从而增加视觉平滑性。
绘制单元130配置成用于选取序列中存入的像素点绘制笔画,并根据单位时间内序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋。绘制单元130选取序列中的一个像素点作为绘制笔画的第一个像素点,然后根据序列中排列的顺序依次获取绘制的像素点,直至确认选取最后一个绘制的像素点,从而将所有获取的像素点绘制在显示端时,在视觉上形成笔画。在单位时间内像素点的数量体现书写速度,根据书写速度和手写笔画的特征,进而推断在该书写速度下产生的笔锋特征,从而针对判断出的笔锋特征对绘制的笔画进行宽度补充,从而形成笔锋,使电子书写的笔画具备笔锋,体现出手写笔画的特征。
在一种实施例中,参照图5所示,绘制单元130包括绘制子单元131、计算子单元132以及比对子单元133。
绘制子单元131配置成用于选取序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的初始宽度为像素点的最小单位宽度。
计算子单元132配置成用于计算在当前序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,序列中原始像素点的选取和存入同时并行。
比对子单元133配置成用于将计算出单位时间内的像素点的数量与设定的单位时间内像素点的标准数量进行比对;
当计算出单位时间内的像素点的数量小于等于单位时间内像素点的标准数量时,比对子单元133配置成用于对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等;
当计算出单位时间内的像素点的数量大于单位时间内像素点的标准数量时,比对子单元133配置成用于对绘画笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。
在一种实施例中,比对子单元133还包括重复绘制单元。
重复绘制单元配置成用于计算出的当前所述序列的单位时间内的像素点的数量为第一值;根据所述第一值,将绘制笔画时选取的第一组像素点补充第一设定宽度;按照第一等差数列,以第一组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第一组像素点移出所述序列;其中,选取的每组像素点包括至少一个像素点;
重复绘制单元还配置成用于计算以第二组像素点为起始像素点的当前所述序列的单位时间内的像素点的数量为第二值;根据所述第二值,将绘制笔画时选取的第二组像素点补充第二设定宽度;按照第二等差数列,以第二组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第二组像素点移出所述序列;
按照上述步骤,重复绘制单元还配置成用于重复补充绘制笔画选取的每组像素点的宽度,直至将存入所述序列的最后一组像素点的宽度补充,其中,设定宽度与当前所述序列的单位时间内的像素点的数量成反比。
在一种实施例中,绘制单元130还包括收笔判断子单元。
收笔判断子单元配置成用于判断书写笔迹的收笔;
当所述序列在规定时间内不存入原始像素点,收笔判断子单元配置成用于判断书写笔迹为收笔笔迹,对绘画笔画的选取的所有像素点中第一个像素点补充设定宽度,且后续的像素点补充的宽度值逐渐变小;当所述序列在规定时间内存入原始像素点,收笔判断子单元配置成用于判断书写笔迹为正常笔迹,对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等。
在一种实施例中,拆分单元120配置成用于计算出获取的原始像素点中任一相邻两个像素点之间的实际距离;当计算出的任一实际距离大于相邻两个像素点之间的标准间距时,对该实际距离进行等距离拆分,并在对应拆分位置补充新的像素点,以使补充像素点后的任意相邻像素点之间的实际距离小于等于所述标准间距;将获取的原始像素点和补充的像素点均存入所述序列。
本实施例第三方面提供了一种电子书写终端。电子书写终端包括:
一个或者多个处理器;
存储装置,用于存储一个或者多个程序;
当一个或多个程序被一个或者处理器执行时,使得一个或者多个处理器实现上述任一实施例中的电子书写方法。
本实施例第四方面提供了一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,该程序被处理器执行实现如上述任一实施例的电子书写方法。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
Claims (11)
1.一种电子书写方法,其特征在于,包括:
获取书写笔迹经过路径的原始像素点;
将获取的原始像素点进行等距离插补,并将所有的像素点存入序列;
选取所述序列中存入的像素点绘制笔画,并根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋;
所述根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋,包括:
将所述单位时间内所述序列存入的像素点的数量与设定的所述单位时间内像素点的标准数量进行比对;
当所述单位时间内所述序列存入的像素点的数量小于等于所述单位时间内像素点的标准数量时,对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等;
当所述单位时间内所述序列存入的像素点的数量大于所述单位时间内像素点的标准数量时,对绘制笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。
2.如权利要求1所述的电子书写方法,其特征在于,所述选取所述序列中存入的像素点绘制笔画,包括:
选取所述序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的所述初始宽度为像素点的最小单位宽度;
所述根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋,还包括:
计算在当前所述序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,所述序列中原始像素点的选取和存入同时并行。
3.如权利要求1所述的电子书写方法,其特征在于,所述对绘制笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小的具体步骤包括:
计算出的当前所述序列的单位时间内的像素点的数量为第一值;
根据所述第一值,将绘制笔画时选取的第一组像素点补充第一设定宽度;
按照第一等差数列,以第一组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第一组像素点移出所述序列;其中,选取的每组像素点包括至少一个像素点;
计算以第二组像素点为起始像素点的当前所述序列的单位时间内的像素点的数量为第二值;
根据所述第二值,将绘制笔画时选取的第二组像素点补充第二设定宽度;
按照第二等差数列,以第二组像素点补充的宽度为起始点,依次递减补充后续绘制笔画选取的每组像素点的宽度,且将第二组像素点移出所述序列;
按照上述步骤,重复补充绘制笔画选取的每组像素点的宽度,直至将存入所述序列的最后一组像素点的宽度补充,其中,设定宽度与当前所述序列的单位时间内的像素点的数量成反比。
4.如权利要求3所述的电子书写方法,其特征在于,对绘制笔画的像素点进行宽度补充形成笔锋的方法还包括:
判断书写笔迹的收笔;
当所述序列在规定时间内不存入原始像素点,判断书写笔迹为收笔笔迹,对绘制笔画的选取的所有像素点中第一个像素点补充设定宽度,且后续的像素点补充的宽度值逐渐变小;
当所述序列在规定时间内存入原始像素点,判断书写笔迹为正常笔迹,对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等。
5.如权利要求1-4任一项权利要求所述的电子书写方法,其特征在于,所述将获取的原始像素点进行等距离插补,并将所有的像素点存入序列的具体步骤包括:
计算出获取的原始像素点中任一相邻两个像素点之间的实际距离;
当计算出的任一实际距离大于相邻两个像素点之间的标准间距时,对该实际距离进行等距离拆分,并在对应拆分位置补充新的像素点,以使补充像素点后的任意相邻像素点之间的实际距离小于等于所述标准间距;
将获取的原始像素点和补充的像素点均存入所述序列。
6.如权利要求5所述的电子书写方法,其特征在于,所述选取所述序列中存入的像素点绘制笔画的步骤包括:
采用画贝塞尔曲线的方式进行绘制笔画。
7.如权利要求5所述的电子书写方法,其特征在于,对绘制笔画时选取的任一像素点增加1或2像素的同颜色的阴影效果。
8.一种电子书写装置,其特征在于,包括:
获取单元,所述获取单元配置成用于获取书写笔迹经过路径的原始像素点;
拆分单元,所述拆分单元配置成用于将获取的原始像素点进行等距离插补,并将所有的像素点存入序列;
绘制单元,所述绘制单元配置成用于选取所述序列中存入的像素点绘制笔画,并根据单位时间内所述序列存入的像素点的数量对绘制笔画的像素点进行宽度补充形成笔锋;
所述绘制单元包括:比对子单元;
所述比对子单元配置成用于将所述单位时间内所述序列存入的像素点的数量与设定的所述单位时间内像素点的标准数量进行比对;
当所述单位时间内所述序列存入的像素点的数量小于等于所述单位时间内像素点的标准数量时,所述比对子单元配置成用于对绘制笔画的选取的所有像素点进行设定宽度补充形成笔锋,且补充的设定宽度值均等;
当所述单位时间内所述序列存入的像素点的数量大于所述单位时间内像素点的标准数量时,所述比对子单元配置成用于对绘制笔画的选取的第一个像素点补充设定宽度,并对后续的像素点补充的宽度值逐渐变小。
9.如权利要求8所述的电子书写装置,其特征在于,所述绘制单元,还包括:
绘制子单元,所述绘制子单元配置成用于选取所述序列中存入的像素点,并以像素点的初始宽度绘制出初始笔画,其中,像素点的所述初始宽度为像素点的最小单位宽度;
计算子单元,所述计算子单元配置成用于计算在当前所述序列中选取的用于绘制笔画的第一个原始像素点的存入时间和最后一个原始像素点的存入时间的差值,并根据选取的原始像素点数量计算出单位时间内的像素点的数量;其中,所述序列中原始像素点的选取和存入同时并行。
10.一种电子书写终端,其特征在于,包括:
一个或者多个处理器;
存储装置,用于存储一个或者多个程序;
当所述一个或多个程序被所述一个或者处理器执行时,使得所述一个或者多个处理器实现如权利要求1至7中任一项所述的电子书写方法。
11.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行实现如权利要求1至7中任一项所述的电子书写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910106941.6A CN111524209B (zh) | 2019-02-02 | 2019-02-02 | 电子书写方法、装置、终端以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910106941.6A CN111524209B (zh) | 2019-02-02 | 2019-02-02 | 电子书写方法、装置、终端以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111524209A CN111524209A (zh) | 2020-08-11 |
CN111524209B true CN111524209B (zh) | 2022-07-19 |
Family
ID=71900461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910106941.6A Active CN111524209B (zh) | 2019-02-02 | 2019-02-02 | 电子书写方法、装置、终端以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111524209B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013109A (zh) * | 2010-12-13 | 2011-04-13 | 广东开心信息技术有限公司 | 手写汉字行草风格的美化方法和装置 |
CN103135915A (zh) * | 2011-11-29 | 2013-06-05 | 北京三星通信技术研究有限公司 | 手写输入美化的方法和装置 |
CN103150115A (zh) * | 2013-03-04 | 2013-06-12 | 广东欧珀移动通信有限公司 | 一种触摸屏上的手写笔画的处理方法、***及移动终端 |
CN103310474A (zh) * | 2013-06-08 | 2013-09-18 | 深圳市经纬科技有限公司 | 一种手写原笔迹的实现方法及*** |
CN104346091A (zh) * | 2013-07-31 | 2015-02-11 | 北京壹人壹本信息科技有限公司 | 笔迹的显示方法和装置 |
CN106125963A (zh) * | 2016-06-24 | 2016-11-16 | 江西金格科技股份有限公司 | 一种无压感设备上原笔迹手写签批***及其在pdf文档原笔迹手写的签批方法 |
CN109284059A (zh) * | 2018-08-28 | 2019-01-29 | 广州视源电子科技股份有限公司 | 笔迹绘制方法、装置、交互智能平板和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7697002B2 (en) * | 2007-01-25 | 2010-04-13 | Ricoh Co. Ltd. | Varying hand-drawn line width for display |
-
2019
- 2019-02-02 CN CN201910106941.6A patent/CN111524209B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013109A (zh) * | 2010-12-13 | 2011-04-13 | 广东开心信息技术有限公司 | 手写汉字行草风格的美化方法和装置 |
CN103135915A (zh) * | 2011-11-29 | 2013-06-05 | 北京三星通信技术研究有限公司 | 手写输入美化的方法和装置 |
CN103150115A (zh) * | 2013-03-04 | 2013-06-12 | 广东欧珀移动通信有限公司 | 一种触摸屏上的手写笔画的处理方法、***及移动终端 |
CN103310474A (zh) * | 2013-06-08 | 2013-09-18 | 深圳市经纬科技有限公司 | 一种手写原笔迹的实现方法及*** |
CN104346091A (zh) * | 2013-07-31 | 2015-02-11 | 北京壹人壹本信息科技有限公司 | 笔迹的显示方法和装置 |
CN106125963A (zh) * | 2016-06-24 | 2016-11-16 | 江西金格科技股份有限公司 | 一种无压感设备上原笔迹手写签批***及其在pdf文档原笔迹手写的签批方法 |
CN109284059A (zh) * | 2018-08-28 | 2019-01-29 | 广州视源电子科技股份有限公司 | 笔迹绘制方法、装置、交互智能平板和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111524209A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103080981B (zh) | 选择纹理映射水平的方法及利用该方法的材质贴图*** | |
CN112433796B (zh) | 电子书的仿真翻页方法、电子设备及计算机存储介质 | |
CN112433657A (zh) | 电子书的仿真翻页方法、电子设备及计算机存储介质 | |
CN109816770B (zh) | 使用神经网络的油画笔划模拟 | |
CN103500463A (zh) | 一种gpu上多层形状特征融合的可视化方法 | |
CN114041111A (zh) | 笔迹绘制方法、装置、电子设备、介质和程序产品 | |
CN112433795A (zh) | 电子书的仿真翻页方法、电子设备及计算机存储介质 | |
CN108038890A (zh) | 矢量图演示方法、装置、设备及计算机存储介质 | |
CN110490961B (zh) | 一种毛发笔刷工具及绘制毛发的方法 | |
CN110689597A (zh) | 动画模型显示方法和装置 | |
Fu et al. | Layerpaint: A multi-layer interactive 3d painting interface | |
CN111524209B (zh) | 电子书写方法、装置、终端以及存储介质 | |
KR20100068603A (ko) | 밉맵 생성 장치 및 방법 | |
CN109671127B (zh) | 一种实现波形绘制的方法及装置 | |
US6970169B1 (en) | Digitally synthesizing seamless texture having random variations | |
CN106611443A (zh) | 三维地形点拾取方法及装置 | |
US9171387B2 (en) | Data visualization system | |
CN111489410B (zh) | 观测***炮检点数据绘制方法及装置 | |
JP2009122998A (ja) | ソリッド/サーフェースモデルから外形線を抽出する方法及びコンピュータソフトウエアプログラム | |
CN110333816A (zh) | 一种轮播处理方法及装置 | |
CN107402986B (zh) | 一种多维度数据的可视化展示方法及*** | |
CN111932689B (zh) | 一种采用id像素图的三维对象快速选取方法 | |
CN112817465B (zh) | 屏幕笔画自适应调整方法、装置、显示终端及存储介质 | |
US9311725B2 (en) | Systems and methods for creating an electronic signature | |
CN112116688B (zh) | 一种实现线动画的方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |