CN110688116A - 一种图像文件的解析方法、装置、设备和可读介质 - Google Patents
一种图像文件的解析方法、装置、设备和可读介质 Download PDFInfo
- Publication number
- CN110688116A CN110688116A CN201910936256.6A CN201910936256A CN110688116A CN 110688116 A CN110688116 A CN 110688116A CN 201910936256 A CN201910936256 A CN 201910936256A CN 110688116 A CN110688116 A CN 110688116A
- Authority
- CN
- China
- Prior art keywords
- image file
- path
- attribute
- image
- current image
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开实施例公开了一种图像元素的解析方法、装置、设备和可读介质。其中,该方法包括:遍历待解析图像文件中所包含的图像元素;如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。本公开实施例提供的技术方案,分别提取顶层元素的顶层显示参数和非顶层元素在路径类型下的路径属性和样式属性作为解析结果,无需前端用户人为筛选和提取图像文件中的数据,实现待解析图像文件的自动解析,减少文件解析的工作量;同时通过在路径类型下提取非顶层元素的路径属性和样式属性,提高文件解析结果的准确性。
Description
技术领域
本公开实施例涉及信息处理技术,尤其涉及一种图像文件的解析方法、装置、设备和可读介质。
背景技术
随着互联网技术的快速发展,对于各种应用程序中网络图形页面的设计要求也越来越高,此时通过可缩放的矢量图形(Scalable Vector Graphics,SVG)格式对应的图像代码能够设计出多样的显示页面。
目前,某些前端项目在访问设计师预先制作的SVG图像之前,需要将SVG图像转换为可访问的数据结构,此时前端程序员通过文本编辑器打开待访问的SVG图像文件,查看SVG图像的内部源代码,人工对SVG图像数据进行筛选和提取,进而得到可访问数据结构下的SVG图像数据,无法对SVG图像的访问结构进行自动转换,极大增加了前端项目在访问SVG图像前的人工处理量。
发明内容
有鉴于此,本公开实施例提供了一种图像文件的解析方法、装置、设备和可读介质,实现图像文件的自动解析,减少文件解析的工作量。
第一方面,本公开实施例提供了一种图像文件的解析方法,该方法包括:
遍历待解析图像文件中所包含的图像元素;
如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
第二方面,本公开实施例提供了一种图像文件的解析装置,该装置包括:
元素遍历模块,用于遍历待解析图像文件中所包含的图像元素;
顶层元素解析模块,用于如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
非顶层元素解析模块,用于如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
第三方面,本公开实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开任意实施例中所述的图像文件的解析方法。
第四方面,本公开实施例提供了一种可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任意实施例中所述的图像文件的解析方法。
本公开实施例提供的一种图像文件的解析方法、装置、设备和可读介质,通过遍历待解析图像文件中所包含的图像元素,分别提取顶层元素的顶层显示参数和非顶层元素在路径类型下的路径属性和样式属性作为解析结果,无需前端用户人为筛选和提取图像文件中的数据,实现待解析图像文件的自动解析,减少文件解析的工作量;同时通过在路径类型下提取非顶层元素的路径属性和样式属性,提高文件解析结果的准确性。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1示出了本公开实施例提供的一种图像文件的解析方法的流程图;
图2示出了本公开实施例提供的方法中待解析图像文件的结构示意图;
图3A示出了本公开实施例提供的方法中对非顶层元素的解析方法的流程图;
图3B示出了本公开实施例提供的方法中矩形元素的示例性示意图;
图4示出了本公开实施例提供的另一种图像文件的解析方法的流程图;
图5示出了本公开实施例提供的一种图像文件的解析装置的结构示意图;
图6示出了本公开实施例提供的一种设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本公开实施方式中的多方之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1示出了本公开实施例提供的一种图像文件的解析方法的流程图,本公开实施例可适用于任一种前端应用对图像文件进行解析的情况中。本公开实施例提供的一种图像文件的解析方法可以由本公开实施例提供的图像文件的解析装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,在本公开实施例中执行本方法的设备可以是手机、平板或者掌上电脑(Personal Digital Assistant,PDA)等智能终端。
具体的,如图1所示,本公开实施例中提供的图像文件的解析方法可以包括如下步骤:
S110,遍历待解析图像文件中所包含的图像元素。
具体的,本公开实施例中主要针对需要人为筛选和提取图像文件中的各个元素数据的问题,自动对待解析图像文件中包含的全部图像元素进行分析;其中,待解析图像文件是指采用某种特定的图像存放格式存储的、且前端应用对其存在解析需求以便在应用网页中显示或者对显示样式进行修改的图像,本公开实施例中的待解析图像文件可以是SVG文件,提供三中类型的图形对象:矢量图形(如由直线和曲线组成的路径)、图像和文本,直接通过由SVG格式语言编写的代码来描绘SVG图像文件;此时如果将图像文件作为一个图像容器,图像元素是指构成图像文件的具备不同图形功能或者整体描述功能的对象,也就是该图像容器中包含的不同形状的矢量图形,或者将全部的矢量图形进行统一概括的容器功能对象等。
可选的,本公开实施例在获取到待解析图像文件时,首先需要对待解析图像文件进行对应的分析处理,得到其中所包含的全部图像元素,为了保证解析结果的完整性,需要按照特定顺序遍历待解析图像文件中所包含的每一图像元素,以便后续对每一图像元素的属性信息进行分析提取,从而得到待解析图像文件整体对应的解析结果。
S120,判断当前图像元素是否为顶层元素,若是,执行S130;若否,执行S140。
其中,顶层元素是指待解析图像文件中最外层包裹的、对待解析图像文件的整体功能特性进行描述的对象,其中包含有各种不同图形形状的子元素,如图2所示。
具体的,由于不同类型的图像元素在图像文件中具备不同的显示信息,因此本公开实施例在遍历待解析图像文件中包含的图像元素时,需要对每一图像元素的类型进行判断,也就是针对每一图像元素,判断当前图像元素是否为顶层元素;示例性的,SVG图像文件的代码格式大致可以如下所示:
此时<svg>和<root>为SVG图像文件中的顶层元素标签,<rect>和<line>等为图像文件中的非顶层元素标签;本公开实施例中通过读取待解析图像文件中的代码内容,并根据每一图像元素对应包裹的元素标签判断当前图像元素是否为顶层元素,以便后续采用不同操作对不同类型的图像元素进行解析。
S130,提取该当前图像元素的顶层显示参数作为解析结果。
具体的,由于在编写图像文件时,会通过顶层元素来描述图像文件的整体功能特性,例如如果在网页中显示该图像文件时,需要显示的该图像文件的截取显示区域、显示窗口大小等信息;因此本公开实施例在遍历待解析图像文件中包含的图像元素时,如果当前图像元素为顶层元素,则在待解析图像文件中直接读取顶层元素对应描述的图像文件的整体特性信息,也就是本公开实施例中的顶层显示参数,并将该顶层显示参数作为待解析图像文件的解析结果,用于在网页中显示该待解析图像文件时,指示该待解析图像文件的具体显示区域和显示窗口大小等信息。
示例性的,本公开实施例中的顶层显示参数可以为SVG图像文件中的viewbox参数,viewBox可以通过"x,y,width,height"来表示,此时x表示待解析图像文件中需要在视口显示的区域的左上角横坐标,y表示需要在视口显示的区域的左上角纵坐标,width表示在视口显示的区域宽度,height表示在视口显示的区域高度;本公开实施例中会将viewBox参数指定的区域显示在对应的网页中。
此外,为了保证待解析图像文件的显示准确性,本公开实施例在提取到顶层显示参数后,还可以包括:将顶层显示参数作为待解析图像文件的显示参数。
具体的,由于待解析图像文件中的顶层元素用于描述图像文件的整体显示特性,因此可以将顶层元素对应的顶层显示参数作为待解析图像文件的显示参数,以便后续在网页中直接根据该顶层显示参数中设定的待解析图像文件的显示区域以及显示大小等信息,对待解析图像文件进行显示。
S140,提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
具体的,待解析图像文件中的非顶层元素是指在顶层元素下包含的各种不同图形元素,如矩形、线条、椭圆以及多边形等各种图形,本公开实施例中的非顶层元素主要用于描述待解析图像文件中包含的各种特效图形;因此本公开实施例在遍历待解析图像文件中包含的图像元素时,如果当前图像元素为非顶层元素,则需要获取当前图像元素的图形描述以及显示样式等属性信息,由于图像文件会通过不同元素类型来描述图像元素的属性信息,以创建各种不同形状的图像元素,而为了快速准确地获取图像元素的属性信息,本公开实施例会尽量采用预先设定的路径(path)元素来描述各个图像元素,该path元素的形状可以通过对应的路径命令属性来定义,该路径命令属性是一个“命令+参数”的序列,每一个命令可以用一个关键字来表示,如“M”表示“Move to”命令,用于移动某个点,命令后的参数表示本次移动的点的横纵坐标;不同的命令对应不同的绘制操作,多种命令结合能够绘制不同的形状;此外,path元素会通过不同的属性描述元素的样式信息,如不同图形元素的填充颜色等。
此时本公开实施例在获取当前图像元素的属性信息时,首先需要判断当前图像元素的元素类型,以将非路径类型下的当前图像元素转换为对应的路径类型,进而直接根据该当前图像元素在路径类型下的路径命令属性提取出对应的路径属性和样式属性,将该路径属性和样式属性作为待解析图像文件中非顶层元素的解析结果,用于指示待解析图像文件中非顶层元素的形状和样式信息。
示例性的,本公开实施例中的路径属性可以为该当前图像元素在路径命令属性中的“命令+参数”信息,样式属性为待解析图像文件中预先为每一图像元素设定的渲染信息,如fill参数、fill-rule参数、stroke参数、stroke-linecap参数、stroke-width参数、fill-opacity参数、stroke-opacity参数和transform参数等,其中fill参数表示该图像元素需要填充的颜色。
此外,由于待解析图像文件中会包含多个非顶层元素,为了对各个非顶层元素的路径属性和样式属性进行一一存储,本公开实施例在提取到该当前图像元素在路径类型下的路径属性和样式属性之后,还可以包括:将路径属性存储至预设的路径数组中,将样式属性存储至预设的样式数组中。
具体的,在遍历待解析图像文件中包含的图像元素时,可以通过预设的路径数组和样式数组按照遍历顺序依次分别对当前图像元素在路径类型下的路径属性和样式属性进行存储,保证路径数组和样式数组所存储的路径属性和样式属性一一对应,提高每一图像元素解析结果的准确性。
本公开实施例提供的技术方案,通过遍历待解析图像文件中所包含的图像元素,分别提取顶层元素的顶层显示参数和非顶层元素在路径类型下的路径属性和样式属性作为解析结果,无需前端用户人为筛选和提取图像文件中的数据,实现待解析图像文件的自动解析,减少文件解析的工作量;同时通过在路径类型下提取非顶层元素的路径属性和样式属性,提高文件解析结果的准确性。
在上述实施例提供的技术方案的基础上,对于本公开实施例提供的图像文件的解析方法中所存在的对于不同类型下的非顶层元素的具体解析过程进行进一步说明。如图3A所示,在上述图像文件的解析方法中提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果,具体可以包括:
S310,如果当前图像元素为非顶层元素,判断当前图像元素是否为路径类型,若是,执行S320;若否,执行S330。
具体的,由于非顶层元素会通过不同元素类型来描述对应的属性信息,而路径类型能够保证快速准确的获取图像元素的各种属性信息,因此本公开实施例在确定当前图像元素为非顶层元素时,首先判断该当前图像元素是否为路径类型,进而根据不同的元素类型执行下述对应的操作,以便快速准确的获取非顶层元素的属性信息。
S320,直接提取该当前图像元素的路径属性和样式属性作为解析结果。
可选的,如果当前图像元素为路径类型,此时当前图像元素已经由路径类型对应的路径命令属性进行描述,因此本公开实施例可以直接根据该当前图像元素的路径命令属性提取对应的路径属性和样式属性作为解析结果。
S330,根据该当前图像元素的图像描述属性和预设的路径命令之间的匹配关系,对该当前图像元素进行路径类型转换,并提取该当前图像元素在转换后的路径属性和样式属性作为解析结果。
可选的,如果当前图像元素为非路径类型,为了快速准确获取当前图像元素的属性信息,本公开实施例首先需要将当前图像元素转换为对应的路径元素;具体的,首先明确预设的各种路径命令的含义以及对应的参数编写格式,如“M”表示“Move to”命令,参数(x,y)表示本次移动的点的横纵坐标,“L”表示“Line to”命令,参数(x,y)表示从当前点开始画直线,指定的终止点的横纵坐标,等;其次获取该当前图像元素的图像描述属性,该图像描述信息指示当前图像元素的形状以及在待解析图像文件中的位置,此时将当前图像元素的图像描述信息和预设的路径命令进行匹配,以在路径命令集中选取出用于绘制当前图像元素的形状所采用的路径命令,通过选取出的路径命令自动编写出当前图像元素的图形代码,进而对该当前图像元素进行路径类型转换,得到用于描述当前图像元素的路径命令信息,从而在转换后的路径命令信息中提取该当前图像元素的路径属性和样式属性作为解析结果。
示例性的,如果当前图像元素为顶角带有弧度的矩形,且该当前图像元素为非路径类型时,如图3B所示,此时需要将该矩形转换为对应的路径类型,此时该矩形元素的属性包括:矩形在顶角未带弧度时对应的左上顶角坐标(x,y),矩形的宽度和高度(w,h),矩形顶角弧度对应的水平和垂直角半径(rx,ry);以此可以确定该矩形元素由4条直线和4条弧线闭合组成,因此在路径命令集中首先选取出移动命令“M”、画直线命令“L”、画弧命令“A”和路径闭合命令“Z”,首先通过命令“M”将矩形元素的路径起始点移动为(x+rx,y),然后通过画直线命令“L”从点(x+rx,y)绘制直线到点(x+w-rx,y),继续通过画弧命令“A”从点(x+w-rx,y)绘制弧线到点(x+w,y+ry),继续通过画直线命令“L”从点(x+w,y+ry)绘制直线到点(x+w,y+h-ry),继续通过画弧命令“A”从点(x+w,y+h-ry)绘制弧线到点(x+w-rx,y+h),继续通过画直线命令“L”从点(x+w-rx,y+h)绘制直线到点(x+rx,y+h),继续通过画弧命令“A”从点(x+rx,y+h)绘制弧线到点(x,y+h-ry),继续通过画直线命令“L”从点(x,y+h-ry)绘制直线到点(x,y+ry),继续通过画弧命令“A”从点(x,y+ry)绘制弧线到点(x+rx,y),最后在点(x+rx,y)处使用路径闭合命令“Z”,形成对应的矩形元素,同时将原有的样式属性对应转换。
需要说明的是,本公开实施例针对不同形状的图像元素,如圆形、椭圆形以及多折线等,均可以通过上述类似的过程对图像元素的图像描述属性和预设的路径命令进行匹配,进而对非路径类型的图像元素进行路径类型下的自动转换,提高图像文件解析的自动性,减少图像文件的人工解析工作量。
图4示出了本公开实施例提供的另一种图像文件的解析方法的流程图,本公开实施例在上述实施例提供的各个可选方案的基础上进行优化。具体的,本实施中主要对于待解析图像文件的具体解析过程进行详细的介绍。
可选的,如图4所示,本公开实施例中的方法可以包括如下步骤:
S410,根据待解析图像文件的读取内容,设置对应的顶层元素标签。
可选的,在对待解析图像文件的元素属性信息进行解析之前,为了明确区分待解析图像文件中的顶层元素和非顶层元素,保证解析结果的准确性,本公开实施例首先需要读取待解析图像文件的具体内容,查找出待解析图像文件中存在的标签,并将为顶层元素设置对应的顶层元素标签,以便后续明确区分顶层元素和非顶层元素。
示例性的,本公开实施例中可以通过文件解析器中的fs.readFile函数读取待解析图像文件中的内容,将待解析图像文件以字符串的形式读入,然后删除读取后的该字符串中已经设置好的<docType>标签,并在字符串的最外层位置包裹<root></root>标签,作为顶层元素标签。
S420,如果更新后的待解析图像文件合法,则根据顶层元素标签以及顶层元素标签下的非顶层元素属性构建待解析图像文件的元素节点树。
具体的,在为待解析图像文件重新设置对应的顶层元素标签后,需要验证更新后的待解析图像文件是否合法,也就是判断更新后的待解析图像文件的代码中是否存在错误,如果更新后的待解析图像文件合法,则遍历上述读取的更新后的待解析图像文件的代码,根据顶层元素标签以及在顶层元素标签下包含的各种不同图形元素(本公开实施例中的非顶层元素)的属性信息,如非顶层元素之间的层级关系,构建待解析图像文件的元素节点树,该元素节点树中的根节点为顶层元素,子节点为不同层级下的非顶层元素。
S430,根据元素节点树遍历待解析图像文件中的顶层元素和非顶层元素。
可选的,为了保证待解析图像文件中图像元素的遍历完整性,本公开实施例可以按照不同的设定顺序遍历预先构建的元素节点树中的各个元素节点,从而依次获取待解析图像文件中的顶层元素和非顶层元素;可以包括先序遍历、中序遍历和后序遍历等;示例性的,从元素节点树中的根节点开始,然后从左至右依次遍历对应的子树,进而得到待解析图像文件中包含的顶层元素和全部非顶层元素,保证元素遍历的完整性。
S440,判断当前图像元素是否为顶层元素,若是,执行S450;若否,执行S460。
S450,提取该当前图像元素的顶层显示参数作为解析结果。
S460,提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
S470,根据解析结果对待解析图像文件执行对应的显示或更新操作。
可选的,在得到待解析图像文件的解析结果后,如果需要在网页中显示该待解析图像文件,则直接根据顶层显示参数在待解析图像文件确定对应的显示区域,同时根据非顶层元素的路径属性确定在网页的对应显示位置,根据非顶层元素的样式属性确定在网页中的对应显示样式,进而在网页中显示完整的待解析图像文件;或者如果需要更新待解析图像文件中某一非顶层元素的绘制位置或者样式,可以直接修改该非顶层元素的路径属性或样式属性,以快速更新待解析图像文件中包含的各个图像元素的形状、位置或者样式。
本公开实施例提供的技术方案,通过预先构建的元素节点树遍历待解析图像文件中所包含的顶层元素和非顶层元素,保证图像元素的遍历完整性,进而分别提取顶层元素的顶层显示参数和非顶层元素在路径类型下的路径属性和样式属性作为解析结果,无需前端用户人为筛选和提取图像文件中的数据,实现待解析图像文件的自动解析,减少文件解析的工作量,提高文件解析结果的准确性;同时根据顶层显示参数、路径属性和样式属性能够快速对待解析图像文件执行对应的显示或更新操作,提高图像文件的处理效率。
图5示出了本公开实施例提供的一种图像文件的解析装置的结构示意图,本公开实施例可适用于任一种前端应用对图像文件进行解析的情况中,该装置可以通过软件和/或硬件来实现,并集成在执行本方法的设备中。如图5所示,本公开实施例中的图像文件的解析装置,可以包括:
元素遍历模块510,用于遍历待解析图像文件中所包含的图像元素;
顶层元素解析模块520,用于如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
非顶层元素解析模块530,用于如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
本公开实施例提供的技术方案,通过遍历待解析图像文件中所包含的图像元素,分别提取顶层元素的顶层显示参数和非顶层元素在路径类型下的路径属性和样式属性作为解析结果,无需前端用户人为筛选和提取图像文件中的数据,实现待解析图像文件的自动解析,减少文件解析的工作量;同时通过在路径类型下提取非顶层元素的路径属性和样式属性,提高文件解析结果的准确性。
进一步的,上述非顶层元素解析模块530,可以具体用于:
如果当前图像元素为路径类型,则直接提取该当前图像元素的路径属性和样式属性作为解析结果;
如果当前图像元素为非路径类型,则根据该当前图像元素的图像描述属性和预设的路径命令之间的匹配关系,对该当前图像元素进行路径类型转换,并提取该当前图像元素在转换后的路径属性和样式属性作为解析结果。
进一步的,上述图像文件的解析装置,还可以包括:
文件参数确定模块,用于将顶层显示参数作为待解析图像文件的显示参数。
进一步的,上述图像文件的解析装置,还可以包括:
存储模块,用于将路径属性存储至预设的路径数组中,将样式属性存储至预设的样式数组中。
进一步的,上述图像文件的解析装置,还可以包括:
标签设置模块,用于根据待解析图像文件的读取内容,设置对应的顶层元素标签;
节点树构建模块,用于如果更新后的待解析图像文件合法,则根据顶层元素标签以及顶层元素标签下的非顶层元素属性构建待解析图像文件的元素节点树。
进一步的,上述元素遍历模块510,可以具体用于:
根据元素节点树遍历待解析图像文件中的顶层元素和非顶层元素。
进一步的,上述图像文件的解析装置,还可以包括:
操作执行模块,用于根据解析结果对待解析图像文件执行对应的显示或更新操作。
进一步的,上述待解析图像文件为可缩放的矢量图像SVG文件。
本公开实施例提供的图像文件的解析装置,与上述实施例提供的图像文件的解析方法属于同一发明构思,未在本公开实施例中详尽描述的技术细节可参见上述实施例,并且本公开实施例与上述实施例具有相同的有益效果。
下面参考图6,其示出了适于用来实现本公开实施例的设备600的结构示意图。本公开实施例中的设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,设备可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述设备中所包含的;也可以是单独存在,而未装配入该设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备:遍历待解析图像文件中所包含的图像元素;如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
根据本公开的一个或多个实施例提供的一种图像文件的解析方法,该方法包括:
遍历待解析图像文件中所包含的图像元素;
如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
根据本公开的一个或多个实施例,上述方法中,所述提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果,包括:
如果当前图像元素为路径类型,则直接提取该当前图像元素的路径属性和样式属性作为解析结果;
如果当前图像元素为非路径类型,则根据该当前图像元素的图像描述属性和预设的路径命令之间的匹配关系,对该当前图像元素进行路径类型转换,并提取该当前图像元素在转换后的路径属性和样式属性作为解析结果。
根据本公开的一个或多个实施例,上述方法中,在提取该当前图像元素的顶层显示参数作为解析结果之后,还包括:
将所述顶层显示参数作为所述待解析图像文件的显示参数。
根据本公开的一个或多个实施例,上述方法中,在提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果之后,还包括:
将所述路径属性存储至预设的路径数组中,将所述样式属性存储至预设的样式数组中。
根据本公开的一个或多个实施例,上述方法中,还包括:
根据所述待解析图像文件的读取内容,设置对应的顶层元素标签;
如果更新后的待解析图像文件合法,则根据所述顶层元素标签以及所述顶层元素标签下的非顶层元素属性构建所述待解析图像文件的元素节点树。
根据本公开的一个或多个实施例,上述方法中,所述遍历待解析图像文件中所包含的图像元素,包括:
根据所述元素节点树遍历待解析图像文件中的顶层元素和非顶层元素。
根据本公开的一个或多个实施例,上述方法中,还包括:
根据解析结果对所述待解析图像文件执行对应的显示或更新操作。
根据本公开的一个或多个实施例,上述方法中,所述待解析图像文件为可缩放的矢量图像SVG文件。
根据本公开的一个或多个实施例提供的一种图像文件的解析装置,该装置包括:
元素遍历模块,用于遍历待解析图像文件中所包含的图像元素;
顶层元素解析模块,用于如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
非顶层元素解析模块,用于如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
根据本公开的一个或多个实施例,上述装置中,所述非顶层元素解析模块,具体用于:
如果当前图像元素为路径类型,则直接提取该当前图像元素的路径属性和样式属性作为解析结果;
如果当前图像元素为非路径类型,则根据该当前图像元素的图像描述属性和预设的路径命令之间的匹配关系,对该当前图像元素进行路径类型转换,并提取该当前图像元素在转换后的路径属性和样式属性作为解析结果。
根据本公开的一个或多个实施例,上述装置中,还包括:
文件参数确定模块,用于将顶层显示参数作为待解析图像文件的显示参数。
根据本公开的一个或多个实施例,上述装置中,还包括:
存储模块,用于将路径属性存储至预设的路径数组中,将样式属性存储至预设的样式数组中。
根据本公开的一个或多个实施例,上述装置中,还包括:
标签设置模块,用于根据待解析图像文件的读取内容,设置对应的顶层元素标签;
节点树构建模块,用于如果更新后的待解析图像文件合法,则根据顶层元素标签以及顶层元素标签下的非顶层元素属性构建待解析图像文件的元素节点树。
根据本公开的一个或多个实施例,上述装置中,所述元素遍历模块,具体用于:
根据元素节点树遍历待解析图像文件中的顶层元素和非顶层元素。
根据本公开的一个或多个实施例,上述装置中,还包括:
操作执行模块,用于根据解析结果对待解析图像文件执行对应的显示或更新操作。
根据本公开的一个或多个实施例,上述装置中,所述待解析图像文件为可缩放的矢量图像SVG文件。
根据本公开的一个或多个实施例提供的一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开任意实施例中所述的图像文件的解析方法。
根据本公开的一个或多个实施例提供的一种可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任意实施例中所述的图像文件的解析方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (11)
1.一种图像文件的解析方法,其特征在于,包括:
遍历待解析图像文件中所包含的图像元素;
如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
2.根据权利要求1所述的方法,其特征在于,所述提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果,包括:
如果当前图像元素为路径类型,则直接提取该当前图像元素的路径属性和样式属性作为解析结果;
如果当前图像元素为非路径类型,则根据该当前图像元素的图像描述属性和预设的路径命令之间的匹配关系,对该当前图像元素进行路径类型转换,并提取该当前图像元素在转换后的路径属性和样式属性作为解析结果。
3.根据权利要求1所述的方法,其特征在于,在提取该当前图像元素的顶层显示参数作为解析结果之后,还包括:
将所述顶层显示参数作为所述待解析图像文件的显示参数。
4.根据权利要求1所述的方法,其特征在于,在提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果之后,还包括:
将所述路径属性存储至预设的路径数组中,将所述样式属性存储至预设的样式数组中。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据所述待解析图像文件的读取内容,设置对应的顶层元素标签;
如果更新后的待解析图像文件合法,则根据所述顶层元素标签以及所述顶层元素标签下的非顶层元素属性构建所述待解析图像文件的元素节点树。
6.根据权利要求5所述的方法,其特征在于,所述遍历待解析图像文件中所包含的图像元素,包括:
根据所述元素节点树遍历待解析图像文件中的顶层元素和非顶层元素。
7.根据权利要求1所述的方法,其特征在于,还包括:
根据解析结果对所述待解析图像文件执行对应的显示或更新操作。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述待解析图像文件为可缩放的矢量图像SVG文件。
9.一种图像文件的解析装置,其特征在于,包括:
元素遍历模块,用于遍历待解析图像文件中所包含的图像元素;
顶层元素解析模块,用于如果当前图像元素为顶层元素,则提取该当前图像元素的顶层显示参数作为解析结果;
非顶层元素解析模块,用于如果当前图像元素为非顶层元素,则提取该当前图像元素在路径类型下的路径属性和样式属性作为解析结果。
10.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的图像文件的解析方法。
11.一种可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的图像文件的解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936256.6A CN110688116A (zh) | 2019-09-29 | 2019-09-29 | 一种图像文件的解析方法、装置、设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936256.6A CN110688116A (zh) | 2019-09-29 | 2019-09-29 | 一种图像文件的解析方法、装置、设备和可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110688116A true CN110688116A (zh) | 2020-01-14 |
Family
ID=69111179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936256.6A Pending CN110688116A (zh) | 2019-09-29 | 2019-09-29 | 一种图像文件的解析方法、装置、设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688116A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324351A (zh) * | 2020-02-19 | 2020-06-23 | 网易(杭州)网络有限公司 | 文件处理方法、装置、计算机可读介质及电子设备 |
CN111897989A (zh) * | 2020-07-29 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 图像处理的方法及装置、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107221016A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | SVG格式的Path图形的处理方法及其装置 |
CN107291476A (zh) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas代码生成方法、装置、电子设备及存储介质 |
US20180173683A1 (en) * | 2016-12-15 | 2018-06-21 | Sap Se | Graphics display capture system |
US20190004778A1 (en) * | 2017-06-30 | 2019-01-03 | Samsung Electronics Co., Ltd. | Method and electronic device for rendering scalable vector graphics content |
CN109445778A (zh) * | 2018-09-13 | 2019-03-08 | 珠海豆饭科技有限公司 | 一种基于svg文件的界面辅助生成的方法和装置 |
-
2019
- 2019-09-29 CN CN201910936256.6A patent/CN110688116A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107221016A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | SVG格式的Path图形的处理方法及其装置 |
US20180173683A1 (en) * | 2016-12-15 | 2018-06-21 | Sap Se | Graphics display capture system |
CN107291476A (zh) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas代码生成方法、装置、电子设备及存储介质 |
US20190004778A1 (en) * | 2017-06-30 | 2019-01-03 | Samsung Electronics Co., Ltd. | Method and electronic device for rendering scalable vector graphics content |
CN109445778A (zh) * | 2018-09-13 | 2019-03-08 | 珠海豆饭科技有限公司 | 一种基于svg文件的界面辅助生成的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324351A (zh) * | 2020-02-19 | 2020-06-23 | 网易(杭州)网络有限公司 | 文件处理方法、装置、计算机可读介质及电子设备 |
CN111324351B (zh) * | 2020-02-19 | 2024-02-23 | 网易(杭州)网络有限公司 | 文件处理方法、装置、计算机可读介质及电子设备 |
CN111897989A (zh) * | 2020-07-29 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 图像处理的方法及装置、终端和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112184738B (zh) | 一种图像分割方法、装置、设备及存储介质 | |
US11875437B2 (en) | Image drawing method based on target template image, apparatus, readable medium and electronic device | |
CN110442330A (zh) | 列表组件转换方法、装置、电子设备及存储介质 | |
CN109558128A (zh) | json数据解析方法、装置及计算机可读存储介质 | |
CN113468330B (zh) | 信息获取方法、装置、设备及介质 | |
CN111857719A (zh) | 数据处理方法、装置、电子设备及介质 | |
CN112631588A (zh) | 文件生成方法、装置、电子设备和计算机可读介质 | |
CN110688116A (zh) | 一种图像文件的解析方法、装置、设备和可读介质 | |
CN115731313A (zh) | Svg格式的图片的处理方法、装置、设备、介质及产品 | |
CN116894188A (zh) | 业务标签集更新方法、装置、介质及电子设备 | |
CN114721656A (zh) | 界面结构提取方法、装置、介质及电子设备 | |
US20230315990A1 (en) | Text detection method and apparatus, electronic device, and storage medium | |
CN115268904A (zh) | 一种用户界面设计文件生成方法、装置、设备及介质 | |
US20240021004A1 (en) | Cross-region document content recognition method, apparatus and medium | |
CN116860286A (zh) | 页面动态更新方法、装置、电子设备和计算机可读介质 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN113797554B (zh) | 游戏引擎资源的处理方法、装置、存储介质及电子设备 | |
CN113312568B (zh) | 一种基于HTML源代码和网页快照的Web信息抽取方法与*** | |
CN112445478A (zh) | 图形文件的处理方法、装置、设备及介质 | |
CN113807056A (zh) | 一种文档名称序号纠错方法、装置和设备 | |
CN111461227B (zh) | 样本生成方法、装置、电子设备和计算机可读介质 | |
CN117194437B (zh) | 文件存储方法、装置、电子设备和计算机可读介质 | |
CN111026983B (zh) | 一种实现超链接的方法、装置、介质和电子设备 | |
CN116974684B (zh) | 地图页面布局方法、装置、电子设备与计算机可读介质 | |
CN113961296B (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 |