转换图形格式的方法及相关设备与流程

allin2023-04-07  127



1.本公开涉及计算机技术领域,尤其涉及一种转换图形格式的方法及相关设备。


背景技术:

2.随着计算机技术的发展,在图形处理领域,存在直接通过程序语言描述的图形。但是,这种通过程序语言描述的图形,可能因为传输过程而导致的数据丢失,致使最终绘制的图形显示不完整。


技术实现要素:

3.本公开提出一种转换图形格式的方法及相关设备,以解决或部分解决上述的问题。
4.本公开第一方面,提供了一种转换图形格式的方法,包括:
5.获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;
6.基于所述描述信息,计算所述图形的宽和高,创建具有所述宽和所述高的画布;
7.在所述画布上按照所述描述信息绘制所述图形;以及
8.将绘制有所述图形的所述画布转换为具有第二格式的图形文件。
9.本公开第二方面,提供了一种转换图形格式的装置,包括:
10.计算模块,被配置为:获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;以及,基于所述描述信息,计算所述图形的宽和高;
11.绘制模块,被配置为:创建具有所述宽和所述高的画布;以及,在所述画布上按照所述描述信息绘制所述图形;以及
12.转换模块,被配置为:将绘制有所述图形的所述画布转换为具有第二格式的图形文件。
13.本公开第三方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
14.本公开第四方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
15.本公开第五方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行第一方面所述的方法。
16.本公开提供的转换图形格式的方法及相关设备,根据图形的描述信息获取实际绘制的图形,进而转换图形格式,使得转换得到的图形不会受到图形描述文本中由于平移或者起始绘制点设置错误而导致图形显示不全或产生空白边缘的问题。
附图说明
17.为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了本公开实施例所提供的示例性计算机设备的硬件结构示意图。
19.图2a示出了根据本公开实施例的示例性目标对象的示意图。
20.图2b示出了根据本公开实施例的示例性图形文件的示意图。
21.图2c示出了根据本公开实施例的另一示例性图形文件的示意图。
22.图3a示出了根据本公开实施例的示例性图像的示意图。
23.图3b示出了根据本公开实施例的另一示例性图像的示意图。
24.图4示出了根据本公开实施例的又一示例性图像的示意图。
25.图5示出了本公开实施例所提供的示例性方法的流程示意图。
26.图6示出了本公开实施例所提供的示例性装置的示意图。
具体实施方式
27.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
28.需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
29.可缩放矢量图形(scalable vector graphics,svg),是一种矢量图像格式、一种开放标准的矢量图形语言,可设计高分辨率的web图形页面,通常作为文档对象模型(document object model,dom)节点被应用在网页中。
30.一般地,svg是一种由xml描述的矢量图像格式,浏览器根据xml描述的规则渲染绘制图形的dom节点,绘制过程中受到如viewbox、translate等属性的影响,使得绘制图像产生一定位移,导致svg实际显示的图形的位置与svg dom节点所定义的位置不一致。在web开发中,一般由层叠样式表(cascading style sheets,css)对于dom节点的位置大小等样式统一定义,通常在开发中也希望svg描述的图形样式也能遵守css定义,这就需要获取svg的实际图形信息(包含最终显示的图形的那部分)。
31.鉴于此,本公开实施例提供了一种转换图形格式的方法及相关设备,根据图形的描述信息获取实际绘制的图形,进而转换图形格式,使得转换得到的图形不会受到图形描述文本中由于平移或者起始绘制点设置错误而导致图形显示不全或产生空白边缘的问题。
32.图1示出了本公开实施例所提供的示例性计算机设备100的硬件结构示意图。该计
算机设备100可以用于实现本公开实施例的转换图形格式的方法。如图1所示,该计算机设备100可以包括:处理器102、存储器104、网络模块106、外围接口108和总线110。其中,处理器102、存储器104、网络模块106和外围接口108通过总线110实现彼此之间在计算机设备100的内部的通信连接。
33.处理器102可以是中央处理器(central processing unit,cpu)、图像处理器、神经网络处理器(npu)、微控制器(mcu)、可编程逻辑器件、数字信号处理器(dsp)、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路。处理器102可以用于执行与本公开描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。例如,如图5所示,处理器102可以包括多个处理器102a、102b和102c。
34.存储器104可以配置为存储数据(例如,指令、计算机代码等)。如图1所示,存储器104存储的数据可以包括程序指令(例如,用于实现本公开实施例的转换图形格式的方法的程序指令)以及要处理的数据(例如,存储器可以存储其他模块的配置文件等)。处理器102也可以访问存储器104存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘(ssd)、闪存、存储棒等。
35.网络接口106可以配置为经由网络向计算机设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、wifi、近场通信(nfc)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。
36.外围接口108可以配置为将计算机设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
37.总线110可以被配置为在计算机设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(usb端口、pci-e总线)等。
38.需要说明的是,尽管上述计算机设备100的架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该计算机设备100的架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述计算机设备100的架构中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
39.计算机设备100可以基于图形文件来对图形进行绘制并可以将绘制得到的图形转换成想要的格式的图形文件。因此,计算机设备100可以先获取需要进行格式转换的图形文件。该图形文件可以具有第一格式,例如,json格式。
40.在一些实施例中,计算机设备100一开始获取的图形文件可能不是可以直接进行处理的格式,例如,计算机设备100一开始获取的是具有第三格式的图形文件。为了能够对具有第三格式的图形文件进行处理,则计算机设备100可以将具有第三格式的图形文件转换为所述具有第一格式的图形文件。
41.例如,在一些场景中,计算机设备100需要使用webgl(web graphics library,一种3d绘图协议)对图形文件进行处理,而计算机设备100一开始获取的是svg格式(第三格式)的图形文件,由于webgl不能对svg格式的图形文件进行直接处理,因此,计算机设备100可以将该svg格式的图形文件转换成webgl能够处理的格式,例如json格式(第一格式)。
42.在一些实施例中,由于svg文本一般由xml描述,因此svg格式的图形文件可以包括第一标签和第二标签,该第二标签可以是该第一标签的子标签,计算机设备100可以进一步采用以下步骤来将svg格式的图形文件转换为json格式的图形文件。
43.首先,计算机设备100可以先创建用于保存转换结果的目标对象,例如,json格式的对象。图2a示出了根据本公开实施例的示例性目标对象300的示意图。如图2a所示,在创建目标对象300时,由于还未开始进行图形文件的解析,该目标对象300可以是一个空对象(result undefined)。后续计算机设备100可以利用该空对象来创建作用域。作用域用于存储svg格式的图形文件的标签信息,例如,该作用域对应的标签的标签名、标签属性及对应的属性值以及当前标签的子标签信息(以及子标签的子标签信息,等等)。由于,目标对象300对应于整个svg格式的图形文件,因此,其中可以存储整个svg格式的图形文件的全部标签信息。
44.接着,以svg格式的图形文件中的第一标签和第二标签为例,计算机设备100在svg格式的图形文件中识别到该第一标签和该第二标签之后,可以根据该第一标签和该第二标签之间的层级关系,在目标对象300中创建与该第一标签和该第二标签分别对应的第一作用域和第二作用域,该第二作用域为该第一作用域的子作用域。然后,计算机设备100可以在所述第一作用域和所述第二作用域中分别存储所述第一标签和所述第二标签对应标签名、属性名及属性值。这样,就能将svg格式的图形文件转换为json格式的图形文件。
45.图2b和图2c分别示出了svg格式的图形文件200和json格式的图形文件300的示意图。其中,图2c示出了转换完成后的目标对象300的示意图,也就是最终的json格式的图形文件300。
46.如图2b和图2c所示,计算机设备100可以基于svg格式的图形文件中标签之间的层级关系,在目标对象300相应地创建对应的作用域。其中,图形文件200的标签202、204、206、208分别对应了图形文件300的作用域304、306、308、310。其中,标签204和208为标签202的子标签,标签206为标签204的子标签,作用域306和310为作用域304的子作用域,作用域308为作用域306的子作用域。
47.由于svg文本一般由xml描述,而xml中一般利用开始标签《》和结束标签《/》以及开始标签和结束标签之间的内容来表示xml中的一个标签,因此,在一些实施例中,识别图形文件200的标签可以通过识别标签的开始标签和结束标签来确定标签对应的范围,进而可以创建相应的作用域并将标签对应的标签名、属性名和属性值存储在对应作用域中。
48.在一些实施例中,计算机设备100为了在标签识别过程中确定相应标签内容应存放在哪个作用域中,可以利用作用域栈来维护作用域的层级关系。具体地,利用作用域栈存储所述第一作用域和所述第二作用域的信息,其中,所述第一作用域的信息先于所述第二作用域的信息入栈;然后根据所述作用域栈存储的信息,确定所述第一标签和所述第二标签之间的层级关系。这样,只要在识别标签的过程中利用作用域栈维护层级关系,能够很容易地知道当前识别到的信息应该存放在哪个作用域中。
49.由此可见,本实施例根据svg格式的图形文件中的各标签之间的层级关系,在json格式的图形文件中对应创建相应的具有层级关系的作用域来存储对应的标签的标签名、属性名及属性值,从而完成svg格式到json格式的转换。相较于dom parser先把svg文本解析成dom树,然后再递归查找dom树的每个子节点信息来获取对应的标签名、属性名及属性值,本实施例在解析文本200的过程中只遍历了一遍svg文本,大大提高解析效率和减少资源使用。
50.在得到具有第一格式的图形文件之后,计算机设备100可以从该图形文件中获取相应的图形的描述信息,该描述信息记载了需要进行绘制的图形的相关信息。
51.在一些实施例中,若计算机设备100利用webgl来绘制图形,需要将图形分解为图形单元(例如,点、线段、三角形等)来进行绘制。因此,该图形文件中的图形的描述信息可以包括很多图形单元信息。这些图形单元信息可以是点、直线或三角形的信息。这些图形单元信息可以包括描述该图形单元的形状、大小、位置、颜色、描边、绘制顺序等的信息。
52.图3a示出了根据本公开实施例的示例性图像400的示意图。
53.如图3a所示,该图像400可以是基于该图形文件直接绘制得到。可以看到,若基于图形文件直接进行绘制,除了位于中心的实际的图形402之外,还可能会形成图形402周围的空白区域404。若此时图形402还受到viewbox、translate等属性的影响,使得图形402产生一定位移,而若这个偏移量设置得不准确或者因为多次传输该图形文件而导致数据出错或丢失,可能会导致图形402不能显示完全,例如,如图3b所示。
54.因此,为了避免偏移量设置错误导致的显示不完全问题,在获取到图形的描述信息之后,计算机设备100可以对图形文件进行进一步处理,例如,基于该描述信息来计算对应的实际图形的宽和高。
55.在一些实施例中,由于描述信息中记载了图形单元信息,而每个图形单元信息都包括该图形单元的形状、大小、位置等信息,因此,计算机设备100可以从该描述信息中获取图形402在x轴和y轴上的最大值x
max
、y
max
和最小值x
min
、y
min
,如图3a所示。
56.然后,计算机设备100可以根据图形402在x轴和y轴上的最大值x
max
、y
max
和最小值x
min
、y
min
,计算图形402的宽w和高h:
57.w=x
max-x
min

58.h=y
max-y
min

59.在得到图形402的宽和高之后,计算机设备100可以创建一张具有该宽w和高h的画布(canvas)。图4示出了根据本公开实施例的示例性图像500的示意图。如图4所示,要得到最终的图像500,可以先创建具有宽w和高h的画布502。
60.在一些实施例中,计算机设备100可以利用webgl基于该宽w和高h来创建具有该宽w和高h的webgl画布。例如,利用canvas标签来创建该webgl画布。
61.然后,计算机设备100可以基于图形的描述信息,在画布502上绘制图形504,如图4所示。
62.在一些实施例中,计算机设备100可以按照描述信息中的绘制顺序信息,使用webgl将描述信息中的每个图形单元信息依次上传给着色器(shader)以使着色器可以在webgl画布502上绘制图形504。
63.在一些实施例中,由于webgl支持的数据格式为[-1,1]的数据,因此着色器可以根
据画布502的宽w和高h将图形304的大小、位置等信息处理成[-1,1]的归一化数据,并绘制在画布502中。
[0064]
在图形504绘制完成之后,计算机设备100可以将绘制有图形504的画布502转换为具有第二格式的图形文件。在一些实施例中,该第二格式可以是位图格式,例如,jpg、png等等。
[0065]
在一些实施例中,计算机设备100可以利用例如todataurl方法将绘制有图形504的画布502转换为base64格式的图形文件。
[0066]
在一些实施例中,计算机设备100可以使用img标签渲染具有base64格式的图形文件。这样,可以更简单地使用img标签渲染具有base64格式的图形文件。同时,还可以使得渲染得到的图形因为是base64格式而能受到css样式控制。这样,css管理的一些属性可以直接作用于这个图形,该图形可以更少地受一些无用信息或者如前述的偏移量的信息的影响。
[0067]
可以看到,本公开实施例根据描述信息获得图形的实际宽高来对图形进行绘制和格式转换,使得转换得到的图形文件中描述了实际所需绘制的图形,去掉了原始图形文件中的多余空白边缘,避免了svg viewbox、translate等属性的设置不正确而导致的平移或者起始绘制点设置错误,解决了相应的图形不完整显示问题。
[0068]
图5示出了本公开实施例所提供的示例性方法600的流程示意图。该方法600可以由图1的计算机设备100来实现,并且,如图5所示,该方法600可以进一步包括以下步骤。
[0069]
在步骤602,获取具有第一格式的图形文件。在一些实施例中,所述第一格式为json格式,使得计算机设备100可以利用webgl来基于该第一格式的图形文件绘制图形。
[0070]
在一些实施例中,获取具有第一格式的图形文件,包括:获取具有第三格式的图形文件;以及将所述具有第三格式的图形文件转换为所述具有第一格式的图形文件,以满足绘制图形时的文件格式要求。
[0071]
在一些实施例中,所述第二格式为base64格式,所述第三格式为svg格式。
[0072]
在一些实施例中,所述具有第三格式的图形文件包括第一标签和第二标签,所述第二标签为所述第一标签的子标签,将所述具有第三格式的图形文件转换为所述具有第一格式的图形文件,包括:
[0073]
创建用于保存转换结果的目标对象;
[0074]
响应于在所述具有第三格式的图形文件中识别到所述第一标签和所述第二标签,根据所述第一标签和所述第二标签之间的层级关系,在所述目标对象中创建与所述第一标签和所述第二标签分别对应的第一作用域和第二作用域,所述第二作用域为所述第一作用域的子作用域;以及
[0075]
在所述第一作用域和所述第二作用域中分别存储所述第一标签和所述第二标签对应标签名、属性名及属性值。
[0076]
在一些实施例中,响应于在所述具有第三格式的图形文件中识别到所述第一标签和所述第二标签,根据所述第一标签和所述第二标签之间的层级关系,在所述目标对象中创建与所述第一标签和所述第二标签分别对应的第一作用域和第二作用域,包括:
[0077]
利用作用域栈存储所述第一作用域和所述第二作用域的信息;其中,所述第一作用域的信息先于所述第二作用域的信息入栈;以及
[0078]
根据所述作用域栈存储的信息,确定所述第一标签和所述第二标签之间的层级关系。
[0079]
在步骤604,从所述图形文件中获取图形的描述信息。
[0080]
在步骤606,基于所述描述信息,计算所述图形的宽和高。
[0081]
在一些实施例中,基于所述描述信息,计算所述图形的宽和高,包括:获取所述描述信息中所述图形在x轴和y轴上的最大值和最小值;以及根据所述图形在x轴和y轴上的最大值和最小值,计算所述图形的宽和高。
[0082]
在步骤608,基于所述图形的宽和高,创建具有所述宽和所述高的画布(例如,图5的画布502)。
[0083]
在一些实施例中,基于所述图形的宽和高,创建具有所述宽和所述高的画布,包括:使用webgl基于所述图形的宽和高创建具有所述宽和所述高的webgl画布。
[0084]
在步骤610,在所述画布上按照所述描述信息绘制所述图形(例如,图5的图形504)。
[0085]
在一些实施例中,所述描述信息包括绘制顺序信息和多个图形单元信息;基于所述描述信息,在所述画布上绘制所述图形,包括:按照所述描述信息中的绘制顺序信息,使用webgl将所述描述信息中的每个图形单元信息依次上传给着色器以在所述webgl画布上绘制所述图形。
[0086]
在一些实施例中,所述图形单元信息为点、线段或三角形的信息。
[0087]
在步骤612,将绘制有所述图形的所述画布转换为具有第二格式的图形文件。
[0088]
这样,根据描述信息获得图形的实际宽高来对图形进行绘制和格式转换,使得转换得到的图形文件中描述了实际所需绘制的图形,去掉了原始图形文件中的多余空白边缘,避免了svg viewbox、translate等属性的设置不正确而导致的平移或者起始绘制点设置错误,解决了相应的图形不完整显示问题。
[0089]
在一些实施例中,该方法600还包括:使用img标签渲染具有base64格式的所述图形文件。这样,可以更简单地使用img标签渲染具有base64格式的图形文件。同时,还可以使得渲染得到的图形因为是base64格式而能受到css样式控制。
[0090]
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0091]
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0092]
本公开实施例还提供了一种检测帧率的装置。图6示出了本公开实施例提供的示例性装置700的示意图。该装置700可以包括以下结构。
[0093]
计算模块702,被配置为:获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;以及,基于所述描述信息,计算所述图形的宽和高;
[0094]
绘制模块704,被配置为:创建具有所述宽和所述高的画布;以及,在所述画布上按照所述描述信息绘制所述图形;以及
[0095]
转换模块706,被配置为:将绘制有所述图形的所述画布转换为具有第二格式的图形文件。
[0096]
在一些实施例中,计算模块702,被配置为:获取具有第三格式的图形文件;以及将所述具有第三格式的图形文件转换为所述具有第一格式的图形文件。
[0097]
在一些实施例中,所述第一格式为json格式,所述第二格式为base64格式,所述第三格式为svg格式。
[0098]
在一些实施例中,计算模块702,被配置为:获取所述描述信息中所述图形在x轴和y轴上的最大值和最小值;以及根据所述图形在x轴和y轴上的最大值和最小值,计算所述图形的宽和高。
[0099]
在一些实施例中,绘制模块704,被配置为:使用webgl基于所述图形的宽和高创建具有所述宽和所述高的webgl画布。
[0100]
在一些实施例中,所述描述信息包括绘制顺序信息和多个图形单元信息;绘制模块704,被配置为:按照所述描述信息中的绘制顺序信息,使用webgl将所述描述信息中的每个图形单元信息依次上传给着色器以在所述webgl画布上绘制所述图形。
[0101]
在一些实施例中,所述图形单元信息为点、线段或三角形的信息。
[0102]
在一些实施例中,装置700还包括渲染模块708,被配置为:使用img标签渲染具有base64格式的所述图形文件。
[0103]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0104]
上述实施例的装置用于实现前述任一实施例中相应的方法600,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0105]
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法600。
[0106]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0107]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法600,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0108]
基于同一发明构思,与上述任意实施例方法600相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法600。对应于方法600各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
[0109]
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法600,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0110]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0111]
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0112]
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0113]
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

技术特征:
1.一种转换图形格式的方法,包括:获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;基于所述描述信息,计算所述图形的宽和高,创建具有所述宽和所述高的画布;在所述画布上按照所述描述信息绘制所述图形;以及将绘制有所述图形的所述画布转换为具有第二格式的图形文件。2.如权利要求1所述的方法,其中,获取具有第一格式的图形文件,包括:获取具有第三格式的图形文件;以及将所述具有第三格式的图形文件转换为所述具有第一格式的图形文件。3.如权利要求2所述的方法,其中,所述具有第三格式的图形文件包括第一标签和第二标签,所述第二标签为所述第一标签的子标签,将所述具有第三格式的图形文件转换为所述具有第一格式的图形文件,包括:创建用于保存转换结果的目标对象;响应于在所述具有第三格式的图形文件中识别到所述第一标签和所述第二标签,根据所述第一标签和所述第二标签之间的层级关系,在所述目标对象中创建与所述第一标签和所述第二标签分别对应的第一作用域和第二作用域,所述第二作用域为所述第一作用域的子作用域;以及在所述第一作用域和所述第二作用域中分别存储所述第一标签和所述第二标签对应标签名、属性名及属性值。4.如权利要求3所述的方法,其中,响应于在所述具有第三格式的图形文件中识别到所述第一标签和所述第二标签,根据所述第一标签和所述第二标签之间的层级关系,在所述目标对象中创建与所述第一标签和所述第二标签分别对应的第一作用域和第二作用域,包括:利用作用域栈存储所述第一作用域和所述第二作用域的信息;其中,所述第一作用域的信息先于所述第二作用域的信息入栈;以及根据所述作用域栈存储的信息,确定所述第一标签和所述第二标签之间的层级关系。5.如权利要求2所述的方法,其中,所述第一格式为json格式,所述第二格式为base64格式,所述第三格式为svg格式。6.如权利要求1所述的方法,其中,基于所述描述信息,计算所述图形的宽和高,包括:获取所述描述信息中所述图形在x轴和y轴上的最大值和最小值;以及根据所述图形在x轴和y轴上的最大值和最小值,计算所述图形的宽和高。7.如权利要求5所述的方法,其中,创建具有所述宽和所述高的画布,包括:使用webgl基于所述图形的宽和高创建具有所述宽和所述高的webgl画布。8.如权利要求7所述的方法,其中,所述描述信息包括绘制顺序信息和多个图形单元信息;在所述画布上按照所述描述信息绘制所述图形,包括:按照所述描述信息中的绘制顺序信息,使用webgl将所述描述信息中的每个图形单元信息依次上传给着色器以在所述webgl画布上绘制所述图形。9.如权利要求8所述的方法,其中,所述图形单元信息为点、线段或三角形的信息。10.如权利要求8所述的方法,还包括:使用img标签渲染具有base64格式的所述图形文件。
11.一种转换图形格式的装置,包括:计算模块,被配置为:获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;以及,基于所述描述信息,计算所述图形的宽和高;绘制模块,被配置为:创建具有所述宽和所述高的画布;以及,在所述画布上按照所述描述信息绘制所述图形;以及转换模块,被配置为:将绘制有所述图形的所述画布转换为具有第二格式的图形文件。12.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1-10任一项所述的方法的指令。13.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-10任一项所述的方法。14.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1-10中任一项所述的方法。

技术总结
本公开提供一种转换图形格式的方法及相关设备。该方法,包括:获取具有第一格式的图形文件,从所述图形文件中获取图形的描述信息;基于所述描述信息,计算所述图形的宽和高,创建具有所述宽和所述高的画布;在所述画布上按照所述描述信息绘制所述图形;以及将绘制有所述图形的所述画布转换为具有第二格式的图形文件。文件。文件。


技术研发人员:林良喜
受保护的技术使用者:上海仁静信息技术有限公司
技术研发日:2022.03.18
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-9420.html

最新回复(0)