图像处理方法、装置、电子设备及计算机可读存储介质与流程

文档序号:27630191发布日期:2021-11-29 16:01阅读:102来源:国知局
图像处理方法、装置、电子设备及计算机可读存储介质与流程

1.本技术涉及计算机图像处理领域,具体而言,涉及一种图像处理方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.unity引擎为一种常用于游戏、影视动画等领域中进行图像处理的工具。目前,unity引擎无法直接对矢量图进行处理,例如,unity引擎无法直接对svg文件进行纹理上的处理。当unity引擎需要对svg(scalable vector graphics,可缩放的矢量图形)文件的纹理进行处理时,通常是先将svg文件转化成三角形网格的方式来渲染,该处理方式需要生成的三角形网格多,导致对svg文件的计算量大,实时性能差。


技术实现要素:

3.本技术实施例的目的在于提供一种图像处理方法、装置、电子设备及计算机可读存储介质,能够改善unity引擎对svg文件渲染时的计算量大,实时性能差的问题。
4.为了实现上述目的,本技术的实施例通过如下方式实现:
5.第一方面,本技术实施例提供一种图像处理方法,所述方法包括:将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令;根据所述渲染指令,通过所述指定图像处理工具将所述svg文件转换成可提取纹理的位图;根据所述位图生成供unity引擎处理的纹理图。
6.在上述的实施方式中,通过将svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,然后由指定图像处理工具将svg文件转换成可提取纹理的位图,再生成纹理图,如此,在unity引擎对svg文件渲染过程中,无需将svg文件转换成三角形网格的方式进行渲染,从而有利于降低svg文件渲染处理的运算量,提高渲染处理的实时性。
7.结合第一方面,在一些可选的实施方式中,将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,包括:
8.将获得的所述svg文件属性集中的父节点文本标签、子节点文本标签,转换成所述指定图像处理工具可识别的第一类渲染指令。
9.在上述的实施方式中,后续利用第一类渲染指令可以将svg文件中的父节点文本标签、子节点文本标签绘制在位图中,从而可以改善unity引擎不支持svg文件中的父节点文本标签、子节点文本标签的问题。
10.结合第一方面,在一些可选的实施方式中,将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,包括:
11.将获得的所述svg文件属性集中的线条标签,转换成所述指定图像处理工具可识别的第二类渲染指令,其中,所述线条标签包括直线、矩形、圆、椭圆、路径、多段线、多边形中的至少一种。
12.结合第一方面,在一些可选的实施方式中,将获得的svg文件中的属性集转换成指
定图像处理工具可识别的相应渲染指令,包括:
13.将获得的所述svg文件属性集中的变换标签,转换成所述指定图像处理工具可识别的第三类渲染指令,其中,所述变换标签包括旋转、平移、缩放中的至少一种。
14.结合第一方面,在一些可选的实施方式中,将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,包括:
15.将获得的所述svg文件属性集中的填充、轮廓、不透明度,转换成所述指定图像处理工具可识别的第四类渲染指令。
16.结合第一方面,在一些可选的实施方式中,所述方法还包括:
17.通过所述unity引擎对所述纹理图进行图像渲染,并显示输出表征所述svg文件渲染后的图像。
18.结合第一方面,在一些可选的实施方式中,在将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令之前,所述方法还包括:
19.根据sax解析策略对获得的所述svg文件进行解析,得到所述svg文件的所述属性集。
20.结合第一方面,在一些可选的实施方式中,所述指定图像处理工具为skiasharp工具。
21.在上述的实施方式中,skiasharp工具可以在不同的操作系统中使用,从而具有跨平台的功能,有利于扩大适用场景。
22.第二方面,本技术实施例还提供一种图像处理装置,所述装置包括:
23.指令生成单元,用于将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令;
24.图像转换单元,用于根据所述渲染指令,通过所述指定图像处理工具将所述svg文件转换成可提取纹理的位图;
25.纹理处理单元,用于根据所述位图生成供unity引擎处理的纹理图。
26.第三方面,本技术实施例还提供一种电子设备,所述电子设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行上述的方法。
27.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
附图说明
28.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
29.图1为本技术实施例提供的电子设备的结构示意图。
30.图2为本技术实施例提供的图像处理方法的流程示意图之一。
31.图3为本技术实施例提供的图像处理方法的流程示意图之二。
32.图4为本技术实施例提供的图像处理装置的框图。
33.图标:10

电子设备;11

处理模块;12

存储模块;200

图像处理装置;210

指令生成单元;220

图像转换单元;230

纹理处理单元。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
35.请参照图1,本技术提供一种电子设备10,可以用于对svg文件进行转换处理,以使unity引擎可以对经过转换后的svg文件进行图像渲染。电子设备10可以是但不限于个人电脑、服务器等设备。
36.其中,电子设备10可以包括处理模块11及存储模块12。存储模块12内存储计算机程序,当计算机程序被处理模块11执行时,使得电子设备10能够执行下述方法中的各步骤。
37.处理模块11、存储模块12各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
38.请参照图2,本技术实施例还提供一种图像处理方法,可以应用于上述的电子设备10中,由电子设备10执行或实现方法的各步骤。方法可以包括如下步骤:
39.步骤s110,将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令;
40.步骤s120,根据所述渲染指令,通过所述指定图像处理工具将所述svg文件转换成可提取纹理的位图;
41.步骤s130,根据所述位图生成供unity引擎处理的纹理图。
42.在上述的实施方式中,通过将svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,然后由指定图像处理工具将svg文件转换成可提取纹理的位图,再生成纹理图,如此,在unity引擎对svg文件渲染过程中,是将svg文件转换成纹理图进行图像渲染,无需将svg文件转换成三角形网格的方式进行渲染,从而有利于降低svg文件渲染处理的运算量,提高渲染处理的实时性。
43.下面将对方法的各步骤进行详细阐述,如下:
44.可理解地,在进行svg图像文件的处理时,电子设备10预先获得有svg文件及svg文件的属性集。电子设备10获得该svg文件的方式可以根据实际情况进行灵活确定。例如,svg文件可以为电子设备10自动生成的文件,或者电子设备10可以从存储有svg文件的其他设备获取该svg文件,这里对获得svg文件的方式不作具体限定。
45.在进行svg图像文件的处理时,若电子设备10中不存在svg文件的属性集,则在步骤s110之前,方法包括:根据sax解析策略对获得的所述svg文件进行解析,得到所述svg文件的所述属性集。
46.sax为英文“simple api for xml”的简写;xml为英文“extensible markup language”的简写,指可扩展标记语言。sax解析策略为一种xml解析的替代方式,可以对svg文件进行解析,以得到svg文件中的各类属性信息。即,电子设备10可以通过sax解析策略对svg文件进行快速解析,从而得到svg文件的各类属性信息,以作为属性集。
47.在步骤s110中,电子设备10预先已获得有svg文件及svg文件的属性集。在svg文件的属性集中,包括svg文件的多种属性。例如,该属性集中包括但不限于父节点文本标签、子节点文本标签、线条标签、变换标签、填充、轮廓、不透明度等。
48.电子设备10可以利用脚本程序将svg文件中不同属性转换成不同的渲染指令,渲染指令用于供指定图像处理工具将svg文件转换成位图。其中,脚本程序预先安装在电子设备10中,该脚本程序可以根据实际情况进行编译,只要可以将svg文件中的属性转换成对应的渲染指令即可。
49.作为一种可选的实施方式,步骤s110可以包括:
50.将获得的所述svg文件属性集中的父节点文本标签、子节点文本标签,转换成所述指定图像处理工具可识别的第一类渲染指令。
51.在svg文件中各属性的内容为本领域技术人员熟知。例如,父节点文本标签指text标签,子节点文本标签指tspan标签。电子设备10可以通过指定图像处理工具,将svg文件属性集中的text标签、tspan标签转换成第一类渲染指令。如此,指定图像处理工具后续可以将svg文件中的文本标签转换到新的位图中。unity引擎后续进行图像渲染时,便可以支持text标签、tspan标签,以满足存在文本处理的相应项目的需求,改善unity引擎无法支持text标签、tspan标签的问题。
52.作为一种可选的实施方式,步骤s110可以包括:
53.将获得的所述svg文件属性集中的线条标签,转换成所述指定图像处理工具可识别的第二类渲染指令。
54.可理解地,svg文件中的不同属性可以对应不同的渲染指令。线条标签包括但不限于直线、矩形、圆、椭圆、路径、多段线、多边形等。通过将线条标签转换成第二类渲染指令,使得指定图像处理工具后续可以将svg文件中的直线、矩形、圆、椭圆、路径、多段线、多边形等线条标签转换到新的位图中,避免转换后的位图中遗漏直线、矩形、圆、椭圆、路径、多段线、多边形等线条特征。
55.作为一种可选的实施方式,步骤s110可以包括:
56.将获得的所述svg文件属性集中的变换标签,转换成所述指定图像处理工具可识别的第三类渲染指令。其中,变换标签包括但不限于旋转、平移、缩放等。
57.在本实施例中,通过将svg文件的变换标签,转换成第三类渲染指令,可以避免转换后的位图中遗漏旋转、平移、缩放等变换属性。
58.作为一种可选的实施方式,步骤s110可以包括:
59.将获得的所述svg文件属性集中的填充、轮廓、不透明度,转换成所述指定图像处理工具可识别的第四类渲染指令。
60.在本实施例中,通过将svg文件中的填充、轮廓、不透明度,转换成第四类渲染指令,如此,可以将svg文件中的填充、轮廓、不透明度等属性转换至位图中,避免转换后的位图遗漏svg文件中的填充、轮廓、不透明度等属性信息。
61.在本实施例中,电子设备10还可以将svg文件中的其他属性转换成相应的渲染指令。例如,将svg文件属性集中的image标签转换成第五类渲染指令,以及将svg文件属性集中的线性渐变、辐射渐变等属性转换成第六类渲染指令。
62.在将svg文件转换成新的位图的过程中,指定图像处理工具无法直接将svg文件的
属性集转换或绘制到位图中,需要将svg文件中的各属性转换成指定图像处理工具可识别的渲染指令,然后通过渲染指令,将svg文件的属性集转换或绘制到位图中。
63.在步骤s120中,在得到svg文件各类属性对应的渲染指令后,便可以利用渲染指令,通过指定图像处理工具将svg文件转换成相应的位图。其中,转换得到的位图可以提取纹理资源。
64.指定图像处理工具可以为能够将svg文件转换成可提取纹理的位图的软件工具,指定图像处理工具可以根据实际情况进行灵活确定。例如,指定图像工具可以为skiasharp工具,或者为具有与skiasharp工具类似功能的其他工具。
65.例如,指定图像工具也可以为ios平台下的coregraphics,或android平台下的com.android.graphics,或windows平台下的system.drawing等工具。其中,coregraphics、com.android.graphics及system.drawing等工具均具有与skiasharp工具类似的功能,为本领域技术人员熟知的工具。
66.其中,skiasharp是对skia引擎的csharp语言封装,可以在unity引擎中使用该工具进行图像处理。其中,skiasharp可以跨平台使用,例如可以在windows系统、android系统等不同操作系统中使用。skia引擎及csharp语言为本领域技术人员熟知的内容,这里不再赘述。
67.在步骤s130中,电子设备10可以通过读取转换所得到的位图的像素值,便可以生成unity所用的纹理图。纹理图的生成方式为本领域技术人员熟知,这里不再赘述。
68.请参照图3,本实施例提供的图像处理方法还可以包括步骤s140。步骤s140,通过所述unity引擎对所述纹理图进行图像渲染,并显示输出表征所述svg文件渲染后的图像。
69.在本实施例中,一个svg文件可以被电子设备10快速地转换成供unity引擎所用的纹理图。在得到纹理图后,unity引擎可以基于纹理图快速进行纹理渲染,从而得到渲染后的图像,该渲染后的图像即为unity引擎对svg文件渲染后的图像。
70.假设,指定图像处理工具为skiasharp工具,svg文件转换后的位图为位图,下面将举例阐述方法的实现流程,如下:
71.第一步,在将svg文件中的各属性转换成相应渲染指令时,电子设备10可以将svg文件中的image标签转换为skbitmap指令(指第五类渲染指令),以便于在进行位图转换时,可以使用skcanvas的drawbitmap指令,将svg文件中image标签绘制得到位图中,skcanvas为skiasharp工具中的模块,为本领域技术人员熟知;
72.将svg文件中的text标签和tspan标签,转换成drawtext指令(指第一类渲染指令),以便于在进行位图转换时,可以使用skcanvas的drawtext指令将svg文件中的文本绘制到位图中。
73.将svg文件中line(直线)、rect(矩形)、circle(圆)、ellipse(椭圆)、path(路径)、polyline(多段线)、polygon(多边形)等线条标签转换为skpath指令(指第二类渲染指令),如此,方便在进行位图转换时,可以使用skcanvas的drawpath指令将svg文件中的线条标签绘制到位图中。
74.将svg文件中的transform属性转换为skmatrix指令(指第三类渲染指令),transform属性指变换标签,可以包括图像的旋转、平移、缩放等属性,如此,可以在绘制位图时,通过skmatrix指令添加svg文件中的transform属性。
75.将svg文件中的fill(填充)、stroke(轮廓)、opacity(不透明度)等属性转换成skpaint指令(指第四类渲染指令),如此,可以在绘制位图时,通过skpaint指令添加svg文件中的fill、stroke、opacity等属性。
76.将svg文件中的lineargradient(线性渐变)、radialgradient(辐射渐变)等属性转换为skshader指令(指第六类渲染指令),如此,可以在绘制位图时,通过skshader指令添加svg文件中的lineargradient、radialgradient等属性。
77.另外,电子设备10可以对svg文件中的g、a、use、defs等容器类或引用类标签的绘制状态做压栈出栈处理,以确保svg文件可以被正常转换成位图。其中,g、a、use、defs为svg文件中的容器类或引用类标签,为本领域技术人员熟知的内容。svg文件中的viewport和viewbox等属性可以用于画布canvas的控制。
78.在进行文本绘制时,即,在调用drawtext指令时,可以将文本切分成普通文本和表情文本,普通文本使用文字体绘制,表情文本使用表情字符字体绘制。普通文本即为字体类文本,比如英文字母、数字、汉字等。表情文本为字符类文本,比如“^_^”,如此,可以更全面地对字符进行绘制。
79.第二步,在得到svg文件中属性的各类渲染指令后,便可以根据各类渲染指令,使用skiasharp将svg文件转换成位图“skbitmap”,最后读取skbitmap中的像素值,生成unity引擎所用的纹理资源“texture2d”。后续unity引擎进行纹理渲染时,基于texture2d便可以实现图像渲染。
80.请参照图4,本技术实施例还提供一种图像处理装置200,可以应用于上述的电子设备10中,用于执行方法中的各步骤。图像处理装置200包括至少一个可以软件或固件(firmware)的形式存储于存储模块12中或固化在电子设备10操作系统(operating system,os)中的软件功能模块。处理模块11用于执行存储模块12中存储的可执行模块,例如图像处理装置200所包括的软件功能模块及计算机程序等。
81.图像处理装置200可以包括指令生成单元210、图像转换单元220及纹理处理单元230,可以执行的操作步骤如下:
82.指令生成单元210,用于将获得的svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令;
83.图像转换单元220,用于根据所述渲染指令,通过所述指定图像处理工具将所述svg文件转换成可提取纹理的位图;
84.纹理处理单元230,用于根据所述位图生成供unity引擎处理的纹理图。
85.可选地,图像处理装置200还可以包括解析单元。解析单元用于在指令生成单元210执行步骤s110之前,根据sax解析策略对获得的所述svg文件进行解析,得到所述svg文件的所述属性集
86.可选地,指令生成单元210还可以用于:将获得的所述svg文件属性集中的父节点文本标签、子节点文本标签,转换成所述指定图像处理工具可识别的第一类渲染指令。
87.可选地,指令生成单元210还可以用于:将获得的所述svg文件属性集中的线条标签,转换成所述指定图像处理工具可识别的第二类渲染指令,其中,所述线条标签包括直线、矩形、圆、椭圆、路径、多段线、多边形中的至少一种。
88.可选地,指令生成单元210还可以用于:将获得的所述svg文件属性集中的变换标
签,转换成所述指定图像处理工具可识别的第三类渲染指令,其中,所述变换标签包括旋转、平移、缩放中的至少一种。
89.可选地,指令生成单元210还可以用于:将获得的所述svg文件属性集中的填充、轮廓、不透明度,转换成所述指定图像处理工具可识别的第四类渲染指令。
90.可选地,图像处理装置200还可以包括渲染显示单元,用于通过所述unity引擎对所述纹理图进行图像渲染,并显示输出表征所述svg文件渲染后的图像。
91.在本实施例中,处理模块11可以是一种集成电路芯片,具有信号的处理能力。上述处理模块11可以是通用处理器。例如,该处理器可以是中央处理器(centralprocessing unit,cpu)、图形处理器(graphics processing unit,gpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。
92.存储模块12可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块12可以用于存储svg文件、纹理资源等。当然,存储模块12还可以用于存储程序,处理模块11在接收到执行指令后,执行该程序。
93.可以理解的是,图1所示的结构仅为电子设备10的一种结构示意图,电子设备10还可以包括比图1所示更多的组件。图1中所示的各组件可以采用硬件、软件或其组合实现。
94.需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备10的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
95.本技术实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的图像处理方法。
96.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
97.综上所述,在本方案中,通过将svg文件中的属性集转换成指定图像处理工具可识别的相应渲染指令,然后由指定图像处理工具将svg文件转换成可提取纹理的位图,并生成纹理图,如此,在unity引擎对svg文件渲染过程中,无需将svg文件转换成三角形网格的方式进行渲染,从而有利于降低svg文件渲染处理的运算量,提高渲染处理的实时性。
98.在本技术所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程
序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
99.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1