一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SVG文件的中心标注方法、终端及计算机可读存储介质与流程

2022-03-23 06:57:36 来源:中国专利 TAG:
一种svg文件的中心标注方法、终端及计算机可读存储介质
技术领域
:1.本发明属于数字填色领域,具体涉及一种svg文件的中心标注方法、终端及计算机可读存储介质。
背景技术
::2.在数字填色类型的游戏中,使用svg(scalablevectorgraphics)文件作为图片载体。对于svg图片中的路径,需要找到适配的矩形,用于放置数字编号。对于svg图片的每一个元素来说,其对应的适配矩形的要求有两个:矩形可完全放置到路径当中,无重叠或超出部分;矩形的尺寸要尽可能大,方便后续填充数字文本。3.填充矩阵现有方案,是使用svg路径元素的最小边框(boundingbox),找到路径的中心点,进行缩放处理;或通过人工标注方式进行处理。这种方案有以下缺点。4.首先,路径的最小边框,中心位置可能不在路径内部(如凹多边形)。对于复杂且不规则路径来说,会出现边框过大,中心位置难以计算的问题。5.其次,使用最小边框方式查找到的中心位置,视觉上可能不居中,无法保证适配矩形完全被放置到路径内部。。6.第三,通过人工标注,中心位置及适配矩形比较合理,但需要花费大量的时间成本进行处理。技术实现要素:7.本发明的目的在于克服
背景技术
:中存在的技术缺陷,目的在于提供了一种svg文件的中心标注方法、终端及计算机可读存储介质,通过开发一个svg处理标注系统,并提供一个客户端(如web使用前端),使得只需要在客户端提交相应svg文件,通过调整相应配置参数,即可完成需要的svg中心标注及相应的适配矩形处理,并可将处理后的svg文件下载或存储。8.为了解决技术问题,本发明的技术方案是:一种svg的中心标注方法,所述方法包括:对svg文件进行栅格化处理,得到二值化数据集;对所述二值化数据集进行适配矩形计算,得到最大适配矩形数据;将所述最大适配矩形数据写入svg文件后并进行存储。9.解决svg文件路径解析的问题,用户可通过简单的配置,调整图片解析度。10.常规svg处理过程中,中心位置较难处理,对于复杂且不规则的路径,路径的最小边界框(boundingbox)的中心,可能不在路径的内部,视觉上也不居中。使用常规最小边界框方法,仅可获取简单路径的中心;如使用人工标注方式,可解决问题,但是时间成本较大。svg图片中的简单元素(rect、circle、ellipse、polygon)以及复杂元素(path)均可进行快速的解析及中心点定位。11.针对svg文件中的路径,通过本方法可以快速查找中心位置,并且找到适配的矩形,该矩形可放置到路径内部,且尺寸最大。12.进一步,在所述对svg文件进行栅格化处理的步骤之前,所述方法还包括:读取提交的svg文件;基于dom结构对读取后的svg文件进行解析,得到svg文件的元素;所述svg文件的元素包括路径;遍历所有路径,得到svg文件的所有路径信息,获取所述路径的属性信息。13.进一步,所述路径的属性信息包括:起始点信息、移动点信息和闭合点信息。14.进一步,通过栅格化操作,将所述所有路径中的每一个路径转化为二值化数据,得到二值化数据集。15.进一步,所述二值化数据集的分辨率与所述svg文件的分辨率相同。16.进一步,对所述二值化数据集,使用所述svg文件的宽和高进行遍历,在所述svg文件的路径内部获取每个路径对应的最大适配矩形数据。17.进一步,所述获取每个路径对应的最大适配矩形数据具体包括:创建rl、rr、rt、rb用来保存最终矩形的左、右、上、下边缘位置信息;创建maxarea变量用来记录最大矩形的面积;通过计算使用所述svg文件的宽和高进行遍历得到的当前遍历的边缘信息,判断当前遍历矩形的面积是否大于所述创建maxarea变量所记录的最大矩形的面积,得到符合最大矩形条件的左、右、上、下边缘信息;所述符合最大矩形条件的左、右、上、下边缘信息即最大适配矩形数据。18.进一步,将所述最大适配矩形数据写入所述svg文件后并进行存储,具体包括:把获取的svg文件中的每个路径对应的最大适配矩形数据,通过文件流写入的方式,将所述最大适配矩形数据,写入svg文件的路径节点的属性中并进行存储。19.一种终端,所述终端至少包括:存储器、通信总线和处理器,其中:所述存储器,用于存储svg的中心标注程序;所述通信总线,用于实现处理器和存储器之间的连接通信;所述处理器,用于执行存储器中存储的svg的中心标注程序,以实现上述的一种svg的中心标注方法的步骤。20.一种计算机可读存储介质,所述计算机可读存储介质上存储有调节程序,所述svg的中心标注程序被处理器执行时实现上述的一种svg的中心标注方法的步骤。21.与现有技术相比,本发明的优点在于:一种svg文件的中心标注方法、终端及计算机可读存储介质,解决svg文件路径解析的问题,用户可通过简单的配置,调整图片解析度。常规svg处理过程中,中心位置较难处理,对于复杂且不规则的路径,路径的最小边界框(boundingbox)的中心,可能不在路径的内部,视觉上也不居中。使用常规最小边界框方法,仅可获取简单路径的中心;如使用人工标注方式,可解决问题,但是时间成本较大。svg文件中的简单元素(矩形、圆形、椭圆、多边形)以及复杂元素(path)均可进行快速的解析及中心点定位。针对svg文件中的路径,通过本方法可以快速查找中心位置,并且找到适配的矩形,该矩形可放置到路径内部,且尺寸最大。附图说明22.图1、本发明一种svg文件的中心标注方法、终端及计算机可读存储介质的具体流程图;图2、本发明一种svg文件的中心标注方法、终端及计算机可读存储介质的具体系统框图。具体实施方式23.下面结合实施例描述本发明具体实施方式:需要说明的是,本说明书所示意的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。24.同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。25.实施例一:如图1所示,一种svg的中心标注方法,所述方法包括:对svg文件进行栅格化处理,得到二值化数据集;具体地:终端中的svg处理系统103读取svg文件,基于dom(documentobjectmodel)结构对所述svg文件进行解析,从而获取到svg文件的各个元素,如所述元素包括:路径(path),并获取所述路径的具体属性信息,所述路径的具体属性信息包括:(起始点、移动点、闭合点)。遍历所有路径,通过栅格化(rasterization)操作,将每一个路径转化为二值化(binary)数据,栅格化处理后的图片,大小可以和原svg图片相等,比如原图片为宽500,高500,处理后得到的二值化数据,宽高也为500。26.由于svg为矢量图片,可通过调整栅格化参数,得到不同分辨率的二值化数据,该二值化数据在分辨率的宽高比例(ratio)上,和原svg图片保持一致。过高的图片分辨率会导致处理效率低的问题。二值化数据保持以下特性:如像素位置(x,y),在对应路径(path)内部,则该像素位置对应的值为0;对应路径(path)外部,则该像素位置对应的值为1。以500x500尺寸的图片为例,处理后,可得250000个二值化数据,其中像素位置对应的值为0的部分在svg路径(path)内部,像素位置对应的值为1的部分在svg路径(path)外部。这里通过二维数组来存储二值化数据,用n表示图片宽度、m表示图片高度,最终所述二维数组表示为data[n][m]。如果路径不符合规格,当出现内容为空的路径节点,表现在二值化处理后,得到的数组为空,则报错处理。[0027]对所述二值化数据集进行适配矩阵计算,得到最大适配矩形数据:可以理解:创建rl、rr、rt、rb用来保存最终矩形的左、右、上、下边缘位置信息;创建maxarea变量用来记录最大矩形的面积;通过计算使用所述svg文件的宽和高进行遍历得到的当前遍历的边缘信息,判断当前遍历矩形的面积是否大于所述创建maxarea变量所记录的最大矩形的面积,得到符合最大矩形条件的左、右、上、下边缘信息;所述符合最大矩形条件的左、右、上、下边缘信息即最大适配矩形数据。[0028]具体的:读取处理后的二值化数据,使用svg文件的宽、高进行遍历,在svg文件的路径内部查找到满足条件的最大适配矩形。在实际应用过程中,通常采用动态规划算法提高查询效率。[0029]这里创建三个空数组ꢀ–ꢀleft、right、height,size为svg图片的宽度,将right数组的元素使用图片宽度(步骤101中的n)初始化,再创建rl、rr、rt、rb用来保存最终矩形的左、右、上、下边缘。初始化完成后,按照图片高度(m)进行逐行遍历,每次遍历中,初始化当前左边缘变量currentleft为0,当前右边缘变量currentright为图片宽度(n),maxarea用于保存最大矩形的面积。逐行遍历中,首先处理高度,如某列元素对应值为1,则将height数组中对应下标的值加一,否则,将height数组中对应下标的值置为0;接下来处理左边缘,如果某列元素对应值为1,判断left数组中对应下标的值和当前保存的左边缘变量currentleft,取较大值,赋值给left数组中对应下标的元素,以此来更新左边缘的值。如某列元素对应值为0,则将left数组中对应下标的值设置为0,且将当前左边缘变量currentleft设置为当前列加一,重新进行计算。[0030]接下来处理右边缘,如某列元素对应值为1,判断right数组中对应下标的值和当前保存的右边缘变量currentright,取较小值,赋值给right数组中对应下标的元素,以此来更新右边缘的值。如某列元素对应值为0,则将right数组中对应下标的值设置为0,且将当前右边缘变量currentright设置为当前列,将right数组中对应下标的元素设置为图片宽度,重新进行计算。[0031]每一行遍历的最后,都需要更新最大矩形区域的数据,当前计算中的矩形面积area使用right数组对应元素减去left数组对应元素后再乘以高度数组对应元素的值得到,如当前计算出的area大于之前保存的maxarea,则更新maxarea的值,同时更新rl、rr、rt、rb的值。最终,使用该方法,可得到填充到任意路径中,且面积最大的矩形。[0032]将所述最大适配矩形数据写入svg文件后并进行存储。[0033]具体的:通过步骤s102,已经将svg图片中的每个路径(path)对应的最大适配矩形数据获取,这里通过文件流写入的方式,将所述路径的最大适配矩形数据,写入路径节点的属性中。这里扩展svg文件中的属性(attributes),使用id字段,写入路径的最大适配矩形数据。[0034]最终形式如下:《pathid=”x_y_width_height”》path_content《/path》。id属性字段中,使用’_’分隔横坐标、纵坐标、宽度、高度信息,便于后续解析使用。[0035]解决svg文件路径解析的问题,用户可通过简单的配置,调整图片解析度。[0036]常规svg处理过程中,中心位置较难处理,对于复杂且不规则的路径,路径的最小边界框(boundingbox)的中心,可能不在路径的内部,视觉上也不居中。使用常规最小边界框方法,仅可获取简单路径的中心;如使用人工标注方式,可解决问题,但是时间成本较大。svg图片中的简单元素(rect、circle、ellipse、polygon)以及复杂元素(path)均可进行快速的解析及中心点定位。[0037]针对svg文件中的路径,通过本方法可以快速查找中心位置,并且找到适配的矩形,该矩形可放置到路径内部,且尺寸最大。[0038]进一步,在所述对svg文件进行栅格化处理的步骤之前,所述方法还包括:读取提交的svg文件;基于dom结构对读取后的svg文件进行解析,得到svg文件的元素;所述svg文件的元素包括路径;遍历所有路径,得到svg文件的所有路径信息,获取所述路径的属性信息。[0039]进一步,所述路径的属性信息包括:起始点信息、移动点信息和闭合点信息。[0040]进一步,通过栅格化操作,将所述所有路径中的每一个路径转化为二值化数据,得到二值化数据集。[0041]进一步,所述二值化数据集的分辨率与所述svg文件的分辨率相同。[0042]进一步,对所述二值化数据集,使用所述svg文件的宽和高进行遍历,在所述svg文件的路径内部获取每个路径对应的最大适配矩形数据。[0043]进一步,所述获取每个路径对应的最大适配矩形数据具体包括:s1:创建rl、rr、rt、rb用来保存最终矩形的左、右、上、下边缘位置信息。[0044]s2:创建maxarea变量用来记录最大矩形的面积。[0045]s3:通过计算当前遍历的边缘信息,判断当前遍历矩形的面积是否大于之前的maxarea所记录的面积。从而得到符合最大矩形条件的左、右、上、下边缘信息。[0046]s4:通过修改svg文件中的id属性字段,将最终的矩形信息写入svg文件中,形式为:《pathid=”x_y_width_height”》path_content《/path》。其中,使用下划线’_’来分隔最大适配矩形的横坐标、纵坐标、宽、高的信息,便于解析。[0047]进一步,将所述最大适配矩形数据写入所述svg文件后并进行存储具体包括:把获取的svg文件中的每个路径对应的最大适配矩形数据,通过文件流写入的方式,将所述最大适配矩形数据,写入svg文件的路径节点的属性中并进行存储。[0048]实施例二:svg文件的量级较大,为了达到显示效果,多数svg文件路径及结构复杂,使用常规最小边框(boundingbox)或人工标注方式,最终效果或处理时间都无法满足要求。[0049]svg是一种用xml定义的语言,用来描述二维矢量及矢量/栅格图形。[0050]鉴于上述问题,本发明通过开发一个终端及计算机可读存储介质,并提供一个客户端(如web使用前端),使得只需要在客户端提交相应svg文件,通过调整相应配置参数,即可完成需要的svg中心标注及相应的适配矩形处理,并可将处理后的svg文件下载或存储。[0051]本实施例提供的svg处理标注方法可用于图2所示的系统。参考图2所示,需要处理的svg文件可以是用户通过客户端(如web使用前端)提交到系统(终端)。提交到系统(终端)的文件需要按照要求生成,并且符合w3cscalablevectorgraphics(svg)标准,可以被正常解析。[0052]客户端101用于获取用户提交的svg文件。可提供一个便于操作的web页面,或api接口。提交的svg文件通过格式验证,确保符合scalablevectorgraphics(svg)2标准,为合法的svg文件,避免不符合标准的文件上传到终端中的svg处理系统103,导致无效计算。[0053]终端中的svg处理系统103在收到处理请求后,读取svg文件,基于svg2标准,对文件进行解析处理。svg处理系统103对于实现载体没有特定要求,一般可通过云服务厂商(如阿里云)提供的云服务器或函数计算服务器来部署,也可通过自建服务器来实现。[0054]经过svg处理系统103处理过后的文件可通过架构102提供的存储解决方案,进行存储。该架构可以是阿里云oss对象存储或者aws云s3桶;也可以通过http协议直接提供下载方式,供用户进行本地化存储。[0055]终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personaldigitalassistant,pda)、便捷式媒体播放器(portablemediaplayer,pmp)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字tv、台式计算机等固定终端。[0056]上面对本发明优选实施方式作了详细说明,但是本发明不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。[0057]不脱离本发明的构思和范围可以做出许多其他改变和改型。应当理解,本发明不限于特定的实施方式,本发明的范围由所附权利要求限定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献