CN112035035B - 一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 - Google Patents
一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 Download PDFInfo
- Publication number
- CN112035035B CN112035035B CN202010878382.3A CN202010878382A CN112035035B CN 112035035 B CN112035035 B CN 112035035B CN 202010878382 A CN202010878382 A CN 202010878382A CN 112035035 B CN112035035 B CN 112035035B
- Authority
- CN
- China
- Prior art keywords
- stroke
- point
- deleted
- index
- original
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统,该方法包括其包括以下步骤:步骤S1,建立像素点索引列表;步骤S2,通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;步骤S3,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;步骤S4,根据删除笔段,对该笔画进行局部区域的删除;步骤S5,对删除后的笔画进行重构,更新像素索引列表,重绘删除后的笔画;用户绘图时,当结束一个笔画的绘制时,执行上述步骤S2;用户使用橡皮擦擦除时,重复步骤S3到步骤S5,直到用户停止橡皮擦擦除。采用本发明的技术方案,实现分层处理和局部擦除,提高了绘画编辑效率。
Description
技术领域
本发明属于人机交互技术领域,尤其涉及一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统。
背景技术
随着近些年数码、电子产品的飞速发展,大量的触屏终端产品不断产生,并受到了广大用户的认可和欢迎。而传统的在纸质版上进行书写绘画的方式具有时间和空间上的限制,在大屏时代,用户更倾向于在电子设备上进行随时随地地书写绘画。在这种形势和需求下,开发出具有更高效、更便捷、更符合用户使用习惯和风格特点的书写绘画方式已经成为了广泛终端用户的迫切需求。
随着近几年手写绘画的不断改进,当前绘画技术已经越来越成熟。现在的绘画主要是按白板的形式,虽然绘图的时候是一笔一笔画上去的,但是在橡皮擦擦除的时候,都是擦除橡皮擦覆盖区域里的所有笔画,这样导致了前期所画的背景和笔画都被擦除了。例如专利CN201310224575.7《一种应用于网页的矢量图形的操作方法和装置》公开了一种像素级别的擦除方式,实现按量擦除;专利CN201410362793.1《一种对图像进行局部处理的方法》公开了一种通过预先对图像进行分割以达到对图像进行局部处理目的的方法;专利CN201410664159.3《多功能交互式智能多媒体电子黑板》通过屏幕上压力和电子黑板擦发射的正在擦除的信号来判断出黑板擦擦除的位置和轨迹,来将已显示的内容擦除。但是这些方法的具体技术方案都不能解决分层擦除的问题。而现有的解决方案是撤销擦除和类似于PhotoShop(缩写:PS)那样的分层处理,撤销擦除是每次擦除,删除橡皮擦所在的整个笔画,不能只擦除橡皮擦所覆盖的笔画区域,存在不够灵活的问题。PS分层擦除是将每个笔画放置在一层,这样当需要擦除笔画的时候,需要切换到相应的笔画层,才能进行局部或者全部笔画的擦除。但是这样的方式也存在一些问题,当笔画很密集的时候,层数会很多,层管理非常复杂,层与层之间的切换擦除也很繁琐。这不仅影响了用户的绘图速度,也影响了用户绘图的自然性和流畅性,使得用户体验满意度急剧降低。
针对上述技术问题,当前橡皮擦擦除方式还没有具体的解决方法,究其原因有两点:(1)不分层,无法局部擦除;(2)分层处理,难以管理。
发明内容
针对以上技术问题,本发明公开了一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统,解决了在图像编辑或电子白板绘图中橡皮擦擦除方式的问题,提供了一种更自然的、可擦除顶层局部区域笔画的橡皮擦实现方法。
对此,本发明采用的技术方案为:
一种可擦除顶层局部区域笔画的橡皮擦实现方法,其特征在于,其包括以下步骤:
步骤S1,建立像素点索引列表;
步骤S2,通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;
步骤S3,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;
步骤S4,根据删除笔段,对该笔画进行局部区域的删除;
步骤S5,对删除后的笔画进行重构,更新像素索引列表,重绘删除后的笔画;
用户绘图时,当结束一个笔画的绘制时,执行上述步骤S2;
用户使用橡皮擦擦除时,重复步骤S3到步骤S5,直到用户停止橡皮擦擦除。
作为本发明的进一步改进,步骤S1包括如下步骤:
步骤S11,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
步骤S12,开辟绘一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
步骤S13,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表。
采用上述步骤,可以计算像素点索引列表的大小。
作为本发明的进一步改进,步骤S2包括如下步骤:
步骤S21,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
步骤S22,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;其中,计算方法为:像素索引=点x方向坐标+点y方向坐标×绘图界面像素点宽;
步骤S23,根据步骤S22中计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中。
采用上述步骤,实现将原始点和插值点信息存储到像素索引列表中。
作为本发明的进一步改进,步骤S23中,所述新增的插值平滑笔画中的点信息包包括但不局限于以下信息:
(1)该点所在的笔画索引;
(2)该点是否为原始采集点;
(3)该点在新增的插值平滑笔画中的位置索引。
作为本发明的进一步改进,步骤S3包括如下步骤:
步骤S31,计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
步骤S32,根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
步骤S33,取出删除字典中的key值,即为笔画索引,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
步骤S34,对由步骤S33得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到一段一段连续删除的点信息,即为删除笔段。
采用上述步骤,用户点击或者移动橡皮擦后,可以寻找到橡皮擦覆盖区域的顶层笔画点。
作为本发明的进一步改进,步骤S4中,对该笔画进行局部区域的删除的区域包括以下四种情况:
(1)用户删除笔画的前端区域;
(2)用户删除笔画的中间区域;
(3)用户删除笔画的尾部区域;
(4)用户删除整个笔画。
作为本发明的进一步改进,步骤S5中,用户在进行笔画删除后,剩下的笔画包括三种情况,根据这三种情况所述对删除后的笔画进行重构分别为:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
本发明还公开了一种可擦除顶层局部区域笔画的橡皮擦实现系统,其包括:
像素点索引列表建立模块,用于建立像素点索引列表;
原始点集采集和插值模块,用于通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;
待删除的顶层笔画点信息寻找模块,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;
删除模块,根据删除笔段,对该笔画进行局部区域的删除;
重构模块,对删除后的笔画进行重构,更新像素索引列表,重绘删除后的笔画;
用户绘图时,当结束一个笔画的绘制时,原始点集采集和插值模块执行动作;
用户使用橡皮擦擦除时,待删除的顶层笔画点信息寻找模块、删除模块和重构模块重复执行动作,直到用户停止橡皮擦擦除。
作为本发明的进一步改进,所述像素点索引列表建立模块包括:
实际像素获取模块,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
像素点索引列表初始化模块,开辟绘一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
笔画列表新建模块,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表。
作为本发明的进一步改进,所述原始点集采集和插值模块包括:
赋值模块,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
像素点索引计算模块,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;进一步的,计算方法为:像素索引=点x方向坐标+点y方向坐标×绘图界面像素点宽;
插值点信息存取模块,根据计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中;其中,所述新增的插值平滑笔画中的点信息包括该点所在的笔画索引、该点是否为原始采集点、该点在新增的插值平滑笔画中的位置索引。
作为本发明的进一步改进,待删除的顶层笔画点信息寻找模块包括:
计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
取出删除字典中的key值,即为笔画索引,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
对得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到一段一段连续删除的点信息,即为删除笔段。
作为本发明的进一步改进,所述删除模块对该笔画进行局部区域的删除的区域包括用户删除笔画的前端区域、用户删除笔画的中间区域、用户删除笔画的尾部区域或用户删除整个笔画。
作为本发明的进一步改进,所述重构模块根据原始笔画被删除的情况不同,执行如下不同的操作:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
本发明公开了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行如上任一项所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
本发明公开了一种装置,其包括相连的处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序,以执行如上任一项所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
与现有技术相比,本发明的有益效果为:
采用本发明的技术方案,根据越长时间绘画的信息越确定的理论,利用构建像素点索引列表的方式,只删除最上层笔画中被橡皮擦覆盖的区域,当用户擦除同一区域时,会逐渐往下一层擦除。将该技术应用于图像编辑、电子白板擦除中,既能不限制用户擦除的区域,也能保护用户之前绘画的信息,提高用户绘画编辑效率,改善用户的绘画擦除体验。
附图说明
图1为本发明实施例一种可擦除顶层局部区域笔画的橡皮擦实现方法的流程图。
图2为本发明实施例中建立像素索引列表的示例图。
图3为本发明实施例中寻找被橡皮擦覆盖的顶层笔画示例图;其中(a)为绘图和橡皮擦的覆盖区域的示意图,(b)为计算橡皮擦的覆盖区域的示意图,(c)为取出最顶层的笔画段,对原始笔画进行删除的示意图。
图4为本发明实施例中用户对笔画进行删除的情况示例图;其中(a)为删除笔画的前端区域的示意图,(b)为删除笔画的后端区域的示意图,(c)为删除笔画的中间区域的示意图,(d)为删除整个笔画的示意图。
图5为本发明实施例中用户对笔画进行删除的结果示例图;其中(a)为删除最顶层的蓝色笔画的示意图,(b)为删除绿色笔画区域的示意图,(c)为删除蓝色笔画区域的示意图。
具体实施方式
下面对本发明的较优的实施例作进一步的详细说明。
如图1所示,一种可擦除顶层局部区域笔画的橡皮擦实现方法,其包括以下步骤:
步骤S1,建立像素点索引列表;具体而言,步骤S1包括如下子步骤:
子步骤S11,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
子步骤S12,开辟绘一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
子步骤S13,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表。
步骤S2,通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;具体而言,步骤S2包括:
子步骤S21,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
子步骤S22,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;其中,计算方法为:像素索引=点x方向坐标+点y方向坐标×绘图界面像素点宽;
子步骤S23,根据步骤S22中计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中;其中,所述新增的插值平滑笔画中的点信息包括该点所在的笔画索引、该点是否为原始采集点、该点在新增的插值平滑笔画中的位置索引。
步骤S3,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;具体而言,步骤S3包括如下步骤:
子步骤S31,计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
子步骤S32,根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
子步骤S33,取出删除字典中的key值,即为笔画索引,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
子步骤S34,对由步骤S33得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到一段一段连续删除的点信息,即为删除笔段。
步骤S4,根据删除笔段,对该笔画进行局部区域的删除;该步骤中,对该笔画进行局部区域的删除的区域包括如下四种情况:用户删除笔画的前端区域、用户删除笔画的中间区域、用户删除笔画的尾部区域或用户删除整个笔画。
步骤S5,对删除后的笔画进行重构,更新像素索引列表,重绘删除后的笔画;该步骤中,用户在进行笔画删除后,剩下的笔画包括三种情况,根据这三种情况所述对删除后的笔画进行重构分别为:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
用户绘图时,当结束一个笔画的绘制时,执行上述步骤S2;
用户使用橡皮擦擦除时,重复步骤S3到步骤S5,直到用户停止橡皮擦擦除。
采用上述方法在绘图中,利用绘图界面的像素点高和宽,建立像素点索引列表。如图2所示,通过绘图界面中点的坐标来计算像素索引,若存在笔画经过该点,则在对应的像素索引区域存储三个元素,分别为经过该点的笔画索引、该点是否为原始采集点和该点在笔画中的位置索引;若不存在笔画经过该点,则对应的像素索引区域存储为空。
具体为寻找被橡皮擦覆盖的顶层笔画过程如图3所示,用户先绘制红色笔画①,再绘制蓝色笔画②,虚线框为橡皮擦的覆盖区域,如图3(a)所示。图3(b)中计算橡皮擦的覆盖区域,对覆盖区域中的点进行像素点索引列表查询,判断是否为覆盖的笔画点。点1为橡皮擦覆盖区域中的点,根据点1的坐标计算像素点索引index1,在像素点索引列表中查询index1中的值,发现为空,说明没有笔画经过点1。同样的方式对点2进行查询,发现在像素点索引列表中index2有值,说明有笔画经过该点。以此类似,寻找出被橡皮擦覆盖的笔画区域,并且进行索引排序和分段,得到笔画段1和笔画段2。最后对笔画段进行层排序,取出最顶层的笔画段,对原始笔画进行删除,如图3(c)所示。
如图4所示,具体为用户对笔画进行删除的几种情况:用户通过点击或移动橡皮擦进行笔画擦除,图中大圆点表示笔画的原始采集点,小圆点表示平滑插值点,虚线区域为要擦除的区域。图4(a)中用户删除笔画的前端区域,删除后笔画剩下区域B部分;图4(b)中用户删除笔画的后端区域,删除后笔画剩下区域A部分;图4(c)中用户删除笔画的中间区域,删除后笔画被分为两部分;图4(d)中用户删除整个笔画。
如图4所示,具体为用户对笔画进行删除的实际效果图:用户以不同的顺序绘出3个不同颜色的笔画,最先画的是红色笔画①,接着是蓝色笔画②,最后是绿色笔画③,虚线框内为删除的区域。图5(a)中用户删除红色笔画和蓝色笔画的交界处,因为用户先绘制红色笔画,本发明基于越长时间的信息越准确的理论,所以删除时,先删除最顶层的蓝色笔画。图5(b)中用户删除蓝色笔画和绿色笔画的交界处,因为绿色笔画最后绘制,所以删除时先删除绿色笔画区域。图5(c)中用户继续删除图5(b)中的删除区域,则橡皮擦会往下一层删除,删除蓝色笔画区域。
采用本发明实施例的一种可擦除顶层局部区域笔画的橡皮擦实现方法,用户可以在任何触摸屏设备的绘图界面进行绘画,使用橡皮擦擦除任意区域笔画。用户每次点击或移动橡皮擦,都只擦除顶层笔画中被橡皮擦覆盖的区域。当用户擦除同一区域时,会逐渐往下一层擦除。它解决了白板式擦除中擦除橡皮擦覆盖区域的所有笔画信息,撤销删除中删除整个笔画,以及PS删除中复杂分层管理等问题。
本发明实施例还公开了一种可擦除顶层局部区域笔画的橡皮擦实现系统,其包括:
像素点索引列表建立模块,用于建立像素点索引列表;
原始点集采集和插值模块,用于通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;
待删除的顶层笔画点信息寻找模块,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;
删除模块,根据删除笔段,对该笔画进行局部区域的删除;所述删除模块对该笔画进行局部区域的删除的区域包括用户删除笔画的前端区域、用户删除笔画的中间区域、用户删除笔画的尾部区域或用户删除整个笔画。
重构模块,对删除后的笔画进行重构,更新像素索引列表,重绘删除后的笔画;
用户绘图时,当结束一个笔画的绘制时,原始点集采集和插值模块执行动作;
用户使用橡皮擦擦除时,待删除的顶层笔画点信息寻找模块、删除模块和重构模块重复执行动作,直到用户停止橡皮擦擦除。
具体而言,所述像素点索引列表建立模块包括:
实际像素获取模块,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
像素点索引列表初始化模块,开辟绘一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
笔画列表新建模块,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表。
进一步优选的,所述原始点集采集和插值模块包括:
赋值模块,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
像素点索引计算模块,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;进一步的,计算方法为:像素索引=点x方向坐标+点y方向坐标×绘图界面像素点宽;
插值点信息存取模块,根据计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中;其中,所述新增的插值平滑笔画中的点信息包括该点所在的笔画索引、该点是否为原始采集点、该点在新增的插值平滑笔画中的位置索引。
进一步优选的,待删除的顶层笔画点信息寻找模块包括:
计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
取出删除字典中的key值,即为笔画索引,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
对得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到一段一段连续删除的点信息,即为删除笔段。
进一步优选的,所述重构模块根据原始笔画被删除的情况不同,执行如下不同的操作:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行如上所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
本发明实施例公开了一种装置,其包括相连的处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序,以执行如上所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种可擦除顶层局部区域笔画的橡皮擦实现方法,其特征在于,其包括以下步骤:
步骤S1,建立像素点索引列表;
步骤S2,通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;
步骤S3,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;
步骤S4,根据删除笔段,在笔画列表对该笔画进行局部区域或完全的删除;
步骤S5,对删除后的笔画进行重构,更新像素点索引列表,重绘删除后的笔画;
用户绘图时,当结束一个笔画的绘制时,执行上述步骤S2;
用户使用橡皮擦擦除时,重复步骤S3到步骤S5,直到用户停止橡皮擦擦除;
步骤S3包括如下步骤:
步骤S31,计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
步骤S32,根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
步骤S33,取出删除字典中的key值,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
步骤S34,对由步骤S33得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到一段一段的删除笔段;
步骤S5中,所述对删除后的笔画进行重构包括:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
2.根据权利要求1所述的可擦除顶层局部区域笔画的橡皮擦实现方法,其特征在于,步骤S1包括如下步骤:
步骤S11,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
步骤S12,开辟一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
步骤S13,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表。
3.根据权利要求2所述的可擦除顶层局部区域笔画的橡皮擦实现方法,其特征在于,步骤S2包括如下步骤:
步骤S21,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
步骤S22,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;
步骤S23,根据步骤S22中计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中。
4.根据权利要求3所述的可擦除顶层局部区域笔画的橡皮擦实现方法,其特征在于:步骤S23中,所述新增的插值平滑笔画中的点信息包括该点所在的笔画索引、该点是否为原始采集点、该点在新增的插值平滑笔画中的位置索引;
步骤S4中,在插值平滑笔画列表中对笔画进行局部区域或完全删除,其中删除的区域包括用户删除笔画的前端区域、用户删除笔画的中间区域、用户删除笔画的尾部区域或用户删除整个笔画。
5.一种可擦除顶层局部区域笔画的橡皮擦实现系统,其特征在于,其包括:
像素点索引列表建立模块,用于建立像素点索引列表;
原始点集采集和插值模块,用于通过触摸屏采集用户绘图过程的原始点集,然后对原始笔画进行像素点间的插值;
待删除的顶层笔画点信息寻找模块,计算橡皮擦的覆盖区域,根据橡皮擦的覆盖区域,寻找需要删除的顶层笔画点信息;
删除模块,根据删除笔段,在笔画列表对该笔画进行局部区域或完全删除;
重构模块,对删除后的笔画进行重构,更新像素点索引列表,重绘删除后的笔画;
用户绘图时,当结束一个笔画的绘制时,原始点集采集和插值模块执行动作;
用户使用橡皮擦擦除时,待删除的顶层笔画点信息寻找模块、删除模块和重构模块重复执行动作,直到用户停止橡皮擦擦除;
待删除的顶层笔画点信息寻找模块执行如下操作:
计算橡皮擦覆盖区域的像素点坐标,存入橡皮擦覆盖区域点列表中;
根据橡皮擦覆盖区域点列表中的点坐标,计算对应的像素点索引,然后在像素点索引列表中,获取该索引位置的信息;若信息为空,则说明该点不是绘图笔画点;若信息不为空,则取出该索引位置的最后一个点信息,并将该点所在的笔画位置索引作为key值,该点是否为原始采集点和该点在新增的插值平滑笔画中的位置索引作为value值,存入删除字典中;
取出删除字典中的key值,根据笔画索引读取该笔画的层信息;接着对层信息进行排序,获得最顶层的笔画索引,在删除字典中取出key值为该笔画索引的value值,即为需要删除的笔画点信息;
对得到的需要删除的笔画点信息按点在新增的插值平滑笔画中的位置索引进行排序,然后将不连续的点信息进行分段,得到删除笔段;
所述重构模块根据原始笔画被删除的情况不同,执行如下操作:
如果用户进行笔画删除后,原始笔画被完全删除,则在该笔画索引中放入一个空的笔画进去,这样像素点索引列表中的其他笔画点的笔画索引不变,只需更新删除的笔画点信息即可;
如果用户进行笔画删除后,原始笔画被删除一部分,还剩下一部分连续笔画,则将剩下的笔画替换被删除的原始笔画;
如果用户进行笔画删除后,原始笔画被分为多个部分,则按照用户绘制原始笔画的顺序对这些部分进行排序,将第一部分笔画在笔画索引位置替换被删除的原始笔画,将其余的部分笔画依次添加到笔画索引列表的最后;这些部分笔画的笔画索引信息不一样,但是所在的笔画层信息是相同的。
6.根据权利要求5所述的可擦除顶层局部区域笔画的橡皮擦实现系统,其特征在于:所述像素点索引列表建立模块包括:
实际像素获取模块,根据绘图界面的分辨率,获取绘图界面的实际像素点宽和像素点高;
像素点索引列表初始化模块,开辟一个一维数组空间作为像素点索引列表,空间大小等于绘图界面总像素点大小,初始化像素点索引列表;
笔画列表新建模块,新建两个笔画列表,分别为原始采集笔画列表和插值平滑笔画列表;
所述原始点集采集和插值模块包括:
赋值模块,当用户新增加绘图笔画时,将存储了原始采集点的新增加笔画赋予最大层信息,并存入原始采集笔画列表中;对新增加笔画中相邻的两个原始点,进行一个像素一个像素的插值,并将存储了原始点与插值点的插值平滑笔画赋予最大层信息后,存入插值平滑笔画列表中,并且将最大层信息按自然数向上叠加;
像素点索引计算模块,根据新增的插值平滑笔画中的点坐标信息,计算对应的像素点索引;
插值点信息存取模块,根据计算的像素点索引,将新增的插值平滑笔画中的点信息存入对应的索引位置中;其中,所述新增的插值平滑笔画中的点信息包括该点所在的笔画索引、该点是否为原始采集点、该点在新增的插值平滑笔画中的位置索引;
所述删除模块在插值平滑笔画列表中对笔画进行局部区域或完全删除,其中删除的区域包括用户删除笔画的前端区域、用户删除笔画的中间区域、用户删除笔画的尾部区域或用户删除整个笔画。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1~4任一项所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
8.一种装置,其包括相连的处理器和存储器,其特征在于:所述处理器用于执行所述存储器中存储的计算机程序,以执行如权利要求1~4中任一项所述的可擦除顶层局部区域笔画的橡皮擦实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010878382.3A CN112035035B (zh) | 2020-08-27 | 2020-08-27 | 一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010878382.3A CN112035035B (zh) | 2020-08-27 | 2020-08-27 | 一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035035A CN112035035A (zh) | 2020-12-04 |
CN112035035B true CN112035035B (zh) | 2022-06-07 |
Family
ID=73585872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010878382.3A Active CN112035035B (zh) | 2020-08-27 | 2020-08-27 | 一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035035B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282214A (zh) * | 2021-05-21 | 2021-08-20 | Oppo广东移动通信有限公司 | 笔画渲染方法、装置、存储介质以及终端 |
CN113610946B (zh) * | 2021-08-03 | 2024-05-14 | 深圳市闪联信息技术有限公司 | 一种利用板擦功能分割绘图笔迹的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994016408A1 (en) * | 1993-01-06 | 1994-07-21 | Palm Computing, Inc. | Method and apparatus for editing electronic ink |
US9916017B2 (en) * | 2014-07-03 | 2018-03-13 | Adobe Systems Incorporated | Smart eraser to erase digital strokes |
CN106775429A (zh) * | 2017-03-08 | 2017-05-31 | 青岛海信电器股份有限公司 | 一种基于触摸屏上画线存储的方法和装置 |
KR101980439B1 (ko) * | 2017-08-10 | 2019-05-21 | 주식회사 교원구몬 | 전자 지우개펜의 스트로크 표시 방법 및 그 장치 |
CN108733293B (zh) * | 2018-06-11 | 2021-09-07 | 广州视源电子科技股份有限公司 | 书写轨迹处理方法及装置 |
CN109215098B (zh) * | 2018-08-20 | 2023-04-11 | 广州视源电子科技股份有限公司 | 笔迹擦除方法和装置 |
-
2020
- 2020-08-27 CN CN202010878382.3A patent/CN112035035B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112035035A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2488930B1 (en) | Method and apparatus for drawing and erasing calligraphic ink objects on a display surface | |
CN112035035B (zh) | 一种可擦除顶层局部区域笔画的橡皮擦实现方法及系统 | |
CN102566862B (zh) | 交互式电子白板中几何图形的擦除方法和装置 | |
US10332291B2 (en) | Content aware image editing | |
JP2003298837A (ja) | 電子画像を作成し操作するための図形入力及び表示システム、表示装置に入力されたソース電子画像を意味のある画像オブジェクトに編成するための方法、及びコンピュータ読取り可能プログラムコードが組み込まれたコンピュータ使用可能媒体を含む製品 | |
CN109859109B (zh) | 一种系列比例尺pdf地图无缝组织与显示方法 | |
EP1330109A2 (en) | Index and retrieval system and method for scanned notes from whiteboard | |
CN1461986A (zh) | 覆盖电子墨迹 | |
CN108334486A (zh) | 表格控制方法、装置、设备及存储介质 | |
CN106991711A (zh) | 笔迹编辑方法和系统 | |
JP2013546081A (ja) | 重ね書き入力に関する方法,装置,コンピュータプログラム製品 | |
CN109359208B (zh) | 一种精准无损标注图像实例的分布式方法及系统 | |
CN116774877B (zh) | Ofd文档页面中涂鸦笔迹的擦除方法及装置 | |
CN111984151B (zh) | 一种提高处理效率的白板画布大小、位置漫游控制方法 | |
CN113610946B (zh) | 一种利用板擦功能分割绘图笔迹的方法 | |
CN112598687A (zh) | 图像分割方法和装置、存储介质、电子设备 | |
CN106708383A (zh) | 图形处理方法及系统 | |
JPH0512402A (ja) | 電子フアイルシステムの文字編集処理方法 | |
US20220206676A1 (en) | Modifying drawing characteristics of digital raster images utilizing stroke properties | |
CN109358799A (zh) | 在手写设备上添加用户输入的手写批注信息的方法 | |
CN112465931B (zh) | 图像文本抹除方法、相关设备及可读存储介质 | |
CN115774513B (zh) | 基于尺子确定绘画方向的系统、方法、电子设备及介质 | |
CN114864057A (zh) | 一种数字病理分析标注方法、移动终端及计算机可读介质 | |
CN117472259A (zh) | 一种电子白板的笔迹增量渲染方法及装置 | |
EP4332787A1 (en) | Display device and method for displaying chart |
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 |