CN110033500B - 一种图形填充方法、装置及电子设备 - Google Patents
一种图形填充方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110033500B CN110033500B CN201811653681.6A CN201811653681A CN110033500B CN 110033500 B CN110033500 B CN 110033500B CN 201811653681 A CN201811653681 A CN 201811653681A CN 110033500 B CN110033500 B CN 110033500B
- Authority
- CN
- China
- Prior art keywords
- filling point
- filling
- coordinate
- point
- queue
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000001514 detection method Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005429 filling process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开一种图形填充方法、装置及电子设备,涉及计算机图像处理技术领域,可以避免现有填图方案中栈溢出的问题。包括:展示待填充二维图形对象;从坐标队列取出二维图形对象第一填充点坐标;基于第一填充点坐标确定的第一位置,沿第一方向按预定步长确定下一填充点;检测当前确定的填充点是否达到二维图形对象在第一方向上的第一边界位置;若是,则获取二维图形对象在当前确定的填充点的第一颜色值;判断第一颜色值与第一位置的颜色值的差值的绝对值是否超出第一预定阈值;若是,则将当前确定的填充点作为第二填充点插入坐标队列中;若否,则将第一位置的颜色值赋值给当前确定的填充点。本发明可应用于填图游戏中。
Description
技术领域
本发明涉及计算机图像处理技术领域,尤其涉及一种图形填充方法、装置及电子设备。
背景技术
填图是一种根据给定的二维图形形状,对其所形成的区域进行填充以完成图形作品的过程。
发明人在实现本发明的过程中发现:当前在图形作品中,例如填图书游戏,使用的填充算法采用递归方式实现图案的填充,由于系统提供的栈内存有限,在填充处理大分辨率图像时,容易导致栈溢出。
发明内容
有鉴于此,本发明实施例提供一种图形填充方法、装置及电子设备,可以避免现有填图方案中栈溢出的问题。
第一方面,本发明实施例提供一种图形填充方法,所述方法包括步骤:
展示待填充二维图形对象;
从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;
基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;
检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;
若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;
判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;
若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。
结合第一方面,在第一方面的第一种实施方式中,在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后还包括:
基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;
检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;
若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;
判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;
若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
结合第一方面及第一方面的第一种实施方式,在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形图形对象在第一坐标轴上的第一边界及第二边界位置之后包括:
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
结合第一方面,第一方面的第一种及第二种实施方式,在第一方面的第三种实施方式中,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点之后包括:
检测所述第一填充点坐标是否达到第二坐标轴在第一方向上的边界位置;
若达到第二坐标轴在第一方向上的边界位置,则将所述第一位置沿第二坐标轴的第二方向移动第二步长值;
检测所述第一填充点坐标是否达到第二坐标轴在第二方向上的边界位置;
若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的填充。
结合第一方面,第一方面的第一种、第二种及第三种实施方式,在第一方面的第四种实施方式中,若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后包括:
检测坐标队列中的填充点坐标是否为空;
若为空,则结束填充;
若不为空,则从坐标队列的队头取出第二填充点坐标;
基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
第二方面,本发明实施例提供一种图形填充装置,所述装置包括:展示模块,用于展示待填充二维图形对象;
取点模块,用于从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;
第一确定模块,用于基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;
第一检测模块,用于检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;
第一获取模块,用于若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;
第一判断模块,用于判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
第一入队模块,用于若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;
第一填色模块,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。
结合第二方面,在第二方面的第一种实施方式中,所述装置还包括:
第二确定模块,用于在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后,基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;
第二检测模块,用于检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;
第二获取模块,用于若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;
第二判断模块,用于判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
第二入队模块,用于若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;
第二填色模块,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
结合第二方面,第二方面的第一种实施方式中,在第二方面的第二种实施方式中,所述装置还包括:
第一更新模块,用于在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形图形对象在第一坐标轴上的第一边界及第二边界位置之后;
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
结合第二方面,第二方面的第一种及第二种实施方式,在第二方面的第三种实施方式中,所述装置还包括:第三检测模块,用于在将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点之后,检测所述第一填充点坐标是否达到第二坐标轴在第一方向上的边界位置;
第二更新模块,用于若达到第二坐标轴在第一方向上的边界位置,则将所述第一位置沿第二坐标轴的第二方向移动第二步长值;
第三检测模块,用于检测所述第一填充点坐标是否达到第二坐标轴在第二方向上的边界位置;
第一结束判定模块,用于若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的填充。
结合第二方面,第二方面的第一种、第二种及第三种实施方式,在第二方面的第四种实施方式中,所述装置还包括:
第四检测模块,用于在若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后,检测坐标队列中的填充点坐标是否为空;
第二结束判定模块,用于若检测坐标队列中的填充点坐标为空,则结束填充;
取点判定模块,用于若检测坐标队列中的填充点坐标不为空,则从坐标队列的队头取出第二填充点坐标;
第三填色模块,用于基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
第三方面,本发明实施例提供一种电子设备,所述电子设备,包括:一个或者多个处理器;
存储器;
所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,来运行与可执行程序代码对应的程序,以用于第一方面任一所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面任一所述的方法
本发明实施例提供一种图形填充方法、装置及电子设备,通过从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。这样,提供了一种具体的基于队列的填图方案,由于队列采用的是先进先出FIFO(first in first out)机制,新元素(等待进入队列的元素)被插入到队列的尾部,读取的时候从队列的头部开始读取,每次读取一个元素,释放一个元素,即形成所谓的动态创建,动态释放,也就不存在溢出的问题。本方案在填充过程中,正是基于队列数据结构特性,动态地将队头元素(第一填充点坐标)取出,在队列尾部将新的填充点坐标插入队列,可以避免前述现有填图方案中栈溢出的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明图形填充方法一实施例的流程图;
图2为本发明图形填充方法另一实施例的流程图;
图3为本发明图形填充方法又一实施例的流程图;
图4为本发明图形填充装置一实施例结构框图;
图5为本发明图形填充装置另一实施例结构框图;
图6为本发明图形填充装置又一实施例结构框图;
图7为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明图形填充方法一实施例的流程图,如图1所示,本实施例的方法可应用于图形填充处理场景中,例如填图游戏中。所述方法可以包括:
步骤101、展示待填充二维图形对象。
本实施例中,可以理解的是,所述二维图形对象可以为预先设置的纹理贴图,保存所述纹理贴图的属性信息,所述纹理贴图的属性信息包括纹理贴图的高度、宽度及颜色数据,所述颜色数据包括:纹理贴图上的像素点对应的颜色值。
步骤102、从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;。
所述队列(queue)在计算机科学中,是一种先进先出的线性表。其允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。本实施例中,可预先建立一坐标队列,将填充点坐标插入队列中,当需要对二维图形对象进行填充时,则取出队头元素,例如为第一填充点坐标;基于所述第一填充点坐标进行扫描填充。
可以理解的是,现有填充方案中,采用递归算法填充处理大分辨率图像时,会出现递归太深与栈内存有限的矛盾,从而导致栈溢出问题。本实施例中,则基于队列的数据结构特性,动态的删除队头坐标,提供了一种基于队列的填充方案,避免了递归填充算法的栈溢出问题。
本实施例中,作为一可选实施例,在展示待填充二维图形对象之后还包括:
检测坐标队列中的填充点坐标是否为空;若为空,则结束扫描;若不为空,则从所述坐标队列中取出队头坐标作为第一填充点坐标。
步骤103、基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点。
本实施例中,第一填充点坐标指的是二维图形对象上的任一坐标点,一个坐标点,可以确定一个位置,基于确定的一个位置,根据预定的填充算法进行填充。具体可以采用基于行或列扫描填充。可以理解的是,一个坐标轴有两个方向,所述第一方向可以是X坐标轴的任一方向,也可以是Y坐标轴的任一方向。
所述步长可以根据需要设置,例如一个像素点、两个像素点;步长越小,扫描填充越精细。
步骤104、检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置。
所述第一边界位置可根据二维图形的属性信息确定,例如,当第一方向是沿X坐标轴的一个方向时,可根据二维图形的宽度确定;当第一方向是沿Y坐标轴的一个方向时,可根据二维图形的高度确定。
具体检测所述填充点是否达到边界位置,可以根据第一位置到二维图形对象在第一方向上的边界位置的距离,计算算出有多少个步长,根据当前确定的填充点一共移动了多少个步长确定是否达到所述第一边界位置。
可以理解的是,若达到所述第一边界位置,则表示在第一方向上的填充完毕,此时停止在第一方向上的填充,
步骤105、若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值。
本实施例中,可以从存储的二维图形对象的属性信息中获取相应填充点的颜色值。
步骤106、判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值。
本实施例中,可以理解的是,填充时,不仅要能适应颜色明显不同的点的识别填充,还需要对颜色差别不大的点的识别,具体地,在填充参数中设置颜色容忍度,所述颜色容忍度为在对填充点进行颜色赋值时,允许与第一颜色值的颜色偏差范围。通过设置所述颜色容忍度,能够对区域填充点相应的颜色判断,以提高填充的颜色容差能力,从而提高填充效率。
所述第一预定阈值可以理解为等同于所述颜色容忍度的概念,根据需要可以设置所述第一预定阈值的大小,例如,当某一颜色填充范围较小时,则设置较小的阈值,这样可以保证小范围内填充颜色的一致性;当需要提高填充效率时,则选取较大的阈值,这样可以适应相近颜色的大范围快速填充。
本实施例中,作为一可选实施例,为了保证颜色填充的一致性,还可以判断第一颜色值与所述第一位置的颜色值是否一致;若一致,则将第一颜色值赋值给当前填充点的纹理颜色。
若超出所述第一预定阈值,则执行步骤107、将当前确定的填充点作为第二填充点插入坐标队列中。
本实施例中,当所述绝对值超出所述第一预定阈值时,则将当前确定的填充点作为第二填充点插入坐标队列中,将其作为第二填充点;在基于第一填充点填充结束后,可以从坐标队列队头中取出所述第二填充点,基于所述第二填充点确定的位置进行填充。
若未超出所述第一预定阈值,则执行步骤108、将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。
本实施例中,在检测当前确定的填充点未达到所述二维图形对象在第一方向上的第一边界位置,且所述绝对值未超出所述第一预定阈值的条件下,将所述第一位置的颜色值赋值给当前确定的填充点,直到不满足上述两个条件中的其中一个条件,即停止沿当前方向的扫描填充。
本实施例中,具体地,将所述第一位置的颜色值赋值给当前确定的填充点包括:将最新的颜色数据赋值给当前确定的填充点的纹理颜色;发送更新后的纹理颜色值给图形处理器GPU,接收所述图形处理器GPU基于所述更新后的纹理颜色值处理后的二维图形对象;在屏幕上显示填充后的二维图形对象的纹理颜色。
本发明实施例提供一种图形填充方法,通过从坐标队列的队头取出所述二维图形对象的第一填充点坐标;基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。这样,提供了一种具体的基于队列的填图方案,由于队列采用的是先进先出FIFO(first in first out)机制,新元素(等待进入队列的元素)被插入到队列的尾部,读取的时候从队列的头部开始读取,每次读取一个元素,释放一个元素,即形成所谓的动态创建,动态释放,也就不存在溢出的问题。本方案在填充过程中,正是基于队列数据结构特性,动态地将队头元素(第一填充点坐标)取出,在队列尾部将新的填充点坐标插入队列,可以避免前述现有填图方案中栈溢出的问题。
参看图2所示,本实施例中,作为一可选实施例,在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后还包括:基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
本实施例中,通过上述方案,在填充条件不满足前述两个条件之一时,基于第一填充点坐标确定的第一位置,向第一坐标轴的第二方向按预定步长扫描,这样,可以保证对二维图形对象全部扫描填充,避免所述二维图形对象还存在待填充区域,就结束扫描的情况。
参看图3所示,本实施例中,作为一可选实施例,在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形图形对象在第一坐标轴上的第一边界及第二边界位置之后包括:
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
本实施例中,作为一可选实施例,若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后包括:检测坐标队列中的填充点坐标是否为空;若为空,则结束填充;若不为空,则从坐标队列的队头取出第二填充点坐标;基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
本实施例中,所述方法还可以用于将二维图形对象填充为透明效果。具体的实现方法,将所述颜色值改为alpha值,在计算机图像处理中,一般应用Alpha混合实现透明效果,至于透明到什么程度是由alpha值决定,用于控制颜色的百分比,alpha值范围是0x00-0xff,也就是十进制的0-255,它可以控制256个级别的透明程度,0表示完全透明,255表示完全不透明;所述颜色值判断改为alpha值判断,运行上述填充方法,则可以二维图形对象中满足条件的区域将变为透明。
本发明实施例提供一种基于队列的填图方案,由于队列采用的是先进先出FIFO(first in first out)机制,新元素(等待进入队列的元素)被插入到队列的尾部,读取的时候从队列的头部开始读取,每次读取一个元素,释放一个元素,即形成所谓的动态创建,动态释放,也就不存在溢出的问题。本方案在填充过程中,正是基于队列数据结构特性,动态地将队头元素(第一填充点坐标)取出,在队列尾部将新的填充点坐标插入队列,可以避免递归算法填图方案中栈溢出的问题。进一步地,基于第一坐标轴优先扫描填充,第二坐标轴其次扫描填充的方法,提高了扫描效率。而且设置了是否填充及结束填充的判定条件,能够实现对图形对象的较好效果填充。
实施例二
图4为本发明图形填充装置一实施例的结构示意图,如图4所示,本实施例的图形填充装置可应用于图形填充处理场景中,例如填图游戏中。所述装置包括:展示模块21,用于展示待填充二维图形对象;取点模块22,用于从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;第一确定模块23,用于基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;第一检测模块24;用于检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;第一获取模块25,用于若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;第一判断模块26,用于判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;第一入队模块27,用于若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;第一填色模块28,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点。
本实施例的装置可以用于执行图1所示方法实施例的技术方案,本实施例的装置,其实现原理和技术效果类似,此处不再多赘述,可相互参看。
参看图5所示,本实施例中,作为一可选实施例,提供的装置与前述实施例所述的装置类似,不同之处在于所述装置还包括:
第二确定模块29,用于在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后,基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;
第二检测模块30,用于检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;
第二获取模块31,用于若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;
第二判断模块32,用于判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
第二入队模块33,用于若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;
第二填色模块34,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
参看图6所示,本实施例中,作为另一可选实施例,所述装置还包括:
第一更新模块35,用于在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形图形对象在第一坐标轴上的第一边界及第二边界位置之后;
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
本实施例中,作为又一可选实施例,所述装置还包括:第三检测模块,用于在将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点之后,检测所述第一填充点坐标是否达到第二坐标轴在第一方向上的边界位置;
第二更新模块,用于若达到第二坐标轴在第一方向上的边界位置,则将所述第一位置沿第二坐标轴的第二方向移动第二步长值;
第三检测模块,用于检测所述第一填充点坐标是否达到第二坐标轴在第二方向上的边界位置;
第一结束判定模块,用于若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的填充。
本实施例中,作为一可选实施例,所述装置还包括:
第四检测模块,用于在若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后,检测坐标队列中的填充点坐标是否为空;
第二结束判定模块,用于若检测坐标队列中的填充点坐标为空,则结束填充;
取点判定模块,用于若检测坐标队列中的填充点坐标不为空,则从坐标队列的队头取出第二填充点坐标;
第三填色模块,用于基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
对于本发明提供的图形填充装置的各实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明还实施例提供了一种电子设备,包括一个或者多个处理器;存储器;所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,来运行与可执行程序代码对应的程序,以用于执行实施例一任一所述的方法。
图7为本发明电子设备一个实施例的结构示意图,其可以实现本发明实施例一任一所述的方法,如图7所示,作为一可选实施例,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述是实施例一任一所述的图形填充方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图形填充方法实施例一的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。
本发明还实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例一任一所述的图形填充方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质还可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种图形填充方法,其特征在于,应用于填图游戏中,所述方法包括:
展示待填充二维图形对象;
从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;
基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;
检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;
若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;
判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;
若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点;
其中,检测所述填充点是否达到所述第一边界位置,包括:根据第一位置到二维图形对象在第一方向上的边界位置的距离,计算出有多少个步长;
根据当前确定的填充点一共移动了多少个步长,确定是否达到所述第一边界位置。
2.根据权利要求1所述的方法,其特征在于,在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后还包括:
基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;
检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;
若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;
判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;
若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
3.根据权利要求2所述的方法,其特征在于,在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形对象在第一坐标轴上的第一边界及第二边界位置之后包括:
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
4.根据权利要求3所述的方法,其特征在于,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点之后包括:
检测所述第一填充点坐标是否达到第二坐标轴在第一方向上的边界位置;
若达到第二坐标轴在第一方向上的边界位置,则将所述第一位置沿第二坐标轴的第二方向移动第二步长值;
检测所述第一填充点坐标是否达到第二坐标轴在第二方向上的边界位置;
若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的填充。
5.根据权利要求4所述的方法,其特征在于,若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后包括:
检测坐标队列中的填充点坐标是否为空;
若为空,则结束填充;
若不为空,则从坐标队列的队头取出第二填充点坐标;
基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
6.一种图形填充装置,其特征在于,应用于填图游戏中,所述装置包括:
展示模块,用于展示待填充二维图形对象;
取点模块,用于从坐标队列的队头取出所述二维图形对象的第一填充点坐标;所述坐标队列用于存放二维图形对象的填充点坐标;
第一确定模块,用于基于所述第一填充点坐标所确定的第一位置,沿第一方向按预定步长确定下一填充点;
第一检测模块,用于检测当前确定的填充点是否达到所述二维图形对象在第一方向上的第一边界位置;
第一获取模块,用于若未达到所述第一边界位置,则获取所述二维图形对象在当前确定的填充点的第一颜色值;
第一判断模块,用于判断第一颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
第一入队模块,用于若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中;
第一填色模块,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点,并继续沿第一方向确定下一填充点;
其中,第一检测模块,具体用于根据第一位置到二维图形对象在第一方向上的边界位置的距离,计算出有多少个步长;
根据当前确定的填充点一共移动了多少个步长,确定是否达到所述第一边界位置。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于在所述若超出所述第一预定阈值,则将当前确定的填充点作为第二填充点插入坐标队列中之后,基于所述第一填充点坐标所确定的第一位置,沿第二方向确定下一个填充点;所述第二方向与第一方向沿第一坐标轴,方向相反;
第二检测模块,用于检测当前确定的填充点是否达到图形对象在第二方向上的第二边界位置;
第二获取模块,用于若未达到所述第二边界位置,则获取所述二维图形对象在当前确定的填充点的第二颜色值;
第二判断模块,用于判断第二颜色值与所述第一位置的颜色值的差值的绝对值是否超出第一预定阈值;
第二入队模块,用于若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中;
第二填色模块,用于若未超出所述第一预定阈值,则将所述第一位置的颜色值赋值给当前确定的填充点填充,并继续沿第二方向确定下一填充点。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于在若超出所述第一预定阈值,则将当前确定的填充点作为第三填充点插入坐标队列中之后,或者;在检测到当前确定的填充点达到所述二维图形对象在第一坐标轴上的第一边界及第二边界位置之后;
结束沿所述第二方向确定下一个填充点,将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点。
9.根据权利要求8所述的装置,其特征在于,其特征在于,所述装置还包括:第三检测模块,用于在将所述第一位置沿第二坐标轴的第一方向移动第一步长值,更新所述第一填充点坐标,以基于更新后的第一填充点坐标确定的第二位置沿第一坐标轴的第一方向确定下一填充点之后,检测所述第一填充点坐标是否达到第二坐标轴在第一方向上的边界位置;
第二更新模块,用于若达到第二坐标轴在第一方向上的边界位置,则将所述第一位置沿第二坐标轴的第二方向移动第二步长值;
第三检测模块,用于检测所述第一填充点坐标是否达到第二坐标轴在第二方向上的边界位置;
第一结束判定模块,用于若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的填充。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第四检测模块,用于在若达到第二坐标轴在第二方向上的边界位置,则结束基于所述第一位置的扫描之后,检测坐标队列中的填充点坐标是否为空;
第二结束判定模块,用于若检测坐标队列中的填充点坐标为空,则结束填充;
取点判定模块,用于若检测坐标队列中的填充点坐标不为空,则从坐标队列的队头取出第二填充点坐标;
第三填色模块,用于基于所述第二填充点坐标确定的第三位置,沿第一坐标轴的第一方向确定下一填充点。
11.一种电子设备,其特征在于,包括:
一个或者多个处理器;
存储器;
所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,来运行与可执行程序代码对应的程序,以用于执行权利要求1至5任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1至5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653681.6A CN110033500B (zh) | 2018-12-29 | 2018-12-29 | 一种图形填充方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653681.6A CN110033500B (zh) | 2018-12-29 | 2018-12-29 | 一种图形填充方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110033500A CN110033500A (zh) | 2019-07-19 |
CN110033500B true CN110033500B (zh) | 2023-09-22 |
Family
ID=67235463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811653681.6A Active CN110033500B (zh) | 2018-12-29 | 2018-12-29 | 一种图形填充方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110033500B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018082332A1 (zh) * | 2016-11-07 | 2018-05-11 | 深圳光启合众科技有限公司 | 图像处理方法和装置、机器人 |
CN108492348A (zh) * | 2018-03-30 | 2018-09-04 | 北京金山安全软件有限公司 | 图像处理方法、装置、电子设备及存储介质 |
-
2018
- 2018-12-29 CN CN201811653681.6A patent/CN110033500B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018082332A1 (zh) * | 2016-11-07 | 2018-05-11 | 深圳光启合众科技有限公司 | 图像处理方法和装置、机器人 |
CN108492348A (zh) * | 2018-03-30 | 2018-09-04 | 北京金山安全软件有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
VB实现不规则区域填充;刘小圆;《科技信息》;20060630;正文第30页 * |
种子填充算法改进;徐光明等;《数字技术与应用》;20121115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110033500A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108550101B (zh) | 图像处理方法、装置及存储介质 | |
CN111815755B (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
CN103177475B (zh) | 一种街景地图展现方法及系统 | |
US8395614B2 (en) | Generating an asset for interactive entertainment using digital image capture | |
CN107944420B (zh) | 人脸图像的光照处理方法和装置 | |
US10621761B2 (en) | Computer-readable recording medium, computer apparatus, and computer processing method for placing object in virtual space and displaying placed object according to display mode | |
CN111957040B (zh) | 遮挡位置的检测方法、装置、处理器及电子装置 | |
CN103679788B (zh) | 一种移动终端中3d图像的生成方法和装置 | |
CN111729307B (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
US20140321770A1 (en) | System, method, and computer program product for generating an image thumbnail | |
CN112138386A (zh) | 一种体积渲染方法、装置、存储介质及计算机设备 | |
US11107278B2 (en) | Polygon model generating apparatus, polygon model generation method, and program | |
CN113952720A (zh) | 游戏场景渲染方法、装置、电子设备及存储介质 | |
CN108960012B (zh) | 特征点检测方法、装置及电子设备 | |
CN111127612A (zh) | 游戏场景节点的更新方法、装置、存储介质和电子设备 | |
WO2022048414A1 (zh) | 一种图像生成方法、装置、设备及存储介质 | |
CN109544433B (zh) | 水印嵌入方法、装置、终端及存储介质 | |
CN110033500B (zh) | 一种图形填充方法、装置及电子设备 | |
CN110197459B (zh) | 图像风格化生成方法、装置及电子设备 | |
CN116188588A (zh) | 光斑中心定位方法及设备 | |
CN111552755B (zh) | 三维地名标注的绘制方法、装置、设备及存储介质 | |
CN113797531A (zh) | 遮挡剔除实现方法、装置、计算机设备及存储介质 | |
EP3809314A1 (en) | 3d object detection from calibrated 2d images background | |
CN110705242A (zh) | 一种制作幻灯片模板的方法、装置及电子设备 | |
CN114419222A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231018 Address after: 100041 No. 2202, 1st floor, building 2, No. 7, Shixing street, Shijingshan District, Beijing (cluster registration) Patentee after: Super magic cube (Beijing) Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |