CN105427353B - 可缩放矢量图形的压缩、绘制方法及装置 - Google Patents
可缩放矢量图形的压缩、绘制方法及装置 Download PDFInfo
- Publication number
- CN105427353B CN105427353B CN201510772371.6A CN201510772371A CN105427353B CN 105427353 B CN105427353 B CN 105427353B CN 201510772371 A CN201510772371 A CN 201510772371A CN 105427353 B CN105427353 B CN 105427353B
- Authority
- CN
- China
- Prior art keywords
- information
- graphic element
- attribute
- character string
- drafting
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开是关于可缩放矢量图形的压缩、绘制方法及装置,该可缩放矢量图形的压缩方法包括:获取待压缩的可缩放矢量图形;获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则中记录有绘制信息与数字的对应关系。采用本公开的压缩方法能使压缩后SVG文件减少SVG的占用空间,减少资源浪费;该可缩放矢量图形的压缩文件中包括数字格式的图形元素的绘制信息,根据编码规则可以解码出该数字对应的图形元素的绘制信息,从而可以根据所述绘制信息快速地绘制出图形元素,得到所述可缩放矢量图形。
Description
技术领域
本申请涉及通信技术领域,尤其涉及的可缩放矢量图形的压缩、绘制方法及装置。
背景技术
可缩放矢量图形(Scalable Vector Graphics,SVG)是由万维网联盟(World WideWeb Consortium,W3C)制定的矢量图形规范。按照W3C的标准,SVG是采用可扩展标记语言(Extensible Markup Language,XML)编写的。SVG图形具有占用空间小、缩放不失真、间距动画等功能,应用前景广泛。但SVG使用XML作为描述语言,其文本描述较为浪费资源,且解析过程较为复杂。
发明内容
为克服相关技术中存在的问题,本公开提供了可缩放矢量图形的压缩的方法及装置。
根据本公开实施例的第一方面,提供一种可缩放矢量图形的压缩方法,所述方法包括:
获取待压缩的可缩放矢量图形;
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
可选的,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束;
所述将所述图形元素的绘制信息按预设的编码规则转换为数字,包括:
根据所述图形元素与开始标记和结束标记的对应关系,获取所述图形元素对应的开始标记和结束标记;
根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字;
记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
可选的,所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值;
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字,包括:
根据所述图形元素名与数字的对应关系,获取所述图形元素名对应的数字;
根据所述属性名与数字的对应关系,获取所述属性名对应的数字;
根据所述属性值的数据类型与数字的对应关系,获取所述属性值的数据类型对应的数字;
所述在所述开始标记和结束标记之间记录所述绘制信息对应的数字,包括:
在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
可选的,所述将所述图形元素的绘制信息按预设的编码规则编码为数字,包括:
当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置;
创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
将所述引用对象标识转换为所述对象索引。
可选的,所述记录所述属性值,包括:
当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
可选的,所述记录所述属性值,包括:
当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
可选的,所述记录所述属性值,包括:
当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字;
当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
可选的,所述记录属性值,包括:
当所述属性值的数据类型为字符串时,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置;
创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字;
将所述字符串转换为所述索引。
根据本公开实施例的第二方面,提供一种可缩放矢量图形的绘制方法,所述方法包括:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系;
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
可选的,所述编码规则包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
获取开始标记和结束标记之间的数字;
根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
可选的,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获得图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
可选的,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为对象索引时,根据所述对象引用关系获取与所述数字对应的所述引用对象的存储位置;
根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
可选的,所述绘制信息与数字的对应关系还包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的偏移位置;
根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
可选的,所述根据所述绘制信息绘制出所述图形元素,包括:
创建对象,所述对象为系统可绘制对象抽象类的派生类的对象;
将所述绘制信息赋值给所述对象中的成员函数;
加载所述对象,利用所述成员函数绘制出所述图形元素。
根据本公开实施例的第三方面,提供一种可缩放矢量图形的压缩装置,所述装置包括:
图形获取模块,被配置为获取待压缩的可缩放矢量图形;
文件源码获取模块,被配置为获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
编码模块,被配置为将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
可选的,所述编码规则中记录有图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束;
所述编码模块,包括:
标记获取子模块,被配置为根据所述图形元素与开始标记和结束标记的对应关系,获取所述图形元素对应的开始标记和结束标记;
绘制信息数字获取子模块,被配置为根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字;
第一记录子模块,被配置为记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
可选的,所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值;
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述绘制信息数字获取子模块,包括:
元素名数字获取子模块,被配置为根据所述图形元素名与数字的对应关系,获取所述图形元素名对应的数字;
属性名数字获取子模块,被配置为根据所述属性名与数字的对应关系,获取所述属性名对应的数字;
数据类型数字获取子模块,被配置为根据所述属性值的数据类型与数字的对应关系,获取所述属性值的数据类型对应的数字;
所述第一记录子模块,包括:
第二记录子模块,被配置为在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
可选的,所述绘制信息数字获取子模块,包括:
引用对象存储位置获取子模块,被配置为当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置;
对象引用关系创建子模块,被配置为创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
引用对象标识转换子模块,被配置为将所述引用对象标识转换为所述对象索引。
可选的,所述第二记录子模块,包括:
显示样式属性信息记录子模块,被配置为当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
可选的,所述第二记录子模块,包括:
路径属性信息记录子模块,被配置为当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
可选的,所述第二记录子模块,包括:
第一转换子模块,被配置为当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字;
第二转换子模块,被配置为当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
可选的,所述第二记录子模块,包括:
字符串存储子模块,被配置为当所述属性值的数据类型为字符串时,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置;
字符串引用关系创建子模块,被配置为创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字;
字符串转换子模块,被配置为将所述字符串转换为所述索引。
根据本公开实施例的第四方面,提供一种可缩放矢量图形的绘制装置,所述装置包括:
压缩文件获取模块,被配置为获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
解码模块,被配置为根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系;
绘制模块,被配置为根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
可选的,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,以及绘制信息与数字的对应关系;所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束;
所述解码模块,包括:
数字获取子模块,被配置为获取开始标记和结束标记之间的数字;
数字解码子模块,被配置为根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
可选的,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述数字解码子模块,包括:
第一绘制信息获得子模块,被配置为根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获取图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
可选的,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
所述解码模块,包括:对象索引判断子模块,被配置为当判断所述数字为对象索引时,根据对象引用关系获取与所述数字对应的所述引用对象的存储位置;
引用对象绘制信息获得子模块,被配置为根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
可选的,所述绘制信息与数字的对应关系还包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字;
所述解码模块,包括:字符串索引判断子模块,被配置为当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的存储位置;
字符串获得子模块,被配置为根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
可选的,所述绘制模块,包括:
对象子模块,被配置为创建对象,所述对象为系统可绘制对象抽象类的派生类的对象;
赋值子模块,被配置为将所述绘制信息赋值给所述对象中的成员函数;
绘制子模块,被配置为加载所述对象,利用所述成员函数绘制出所述图形元素。
根据本公开实施例的第五方面,提供一种可缩放矢量图形的压缩装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待压缩的可缩放矢量图形;
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
根据本公开实施例的第六方面,提供一种可缩放矢量图形的绘制装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系;
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开中,SVG的文件源码中记录有图形元素的绘制信息,通过将图形元素的绘制信息转换为数字,能获得数字格式的图形元素的绘制信息;由于将绘制信息采用数字表示,使得压缩后SVG文件能减少SVG的占用空间,减少资源浪费。
本公开中,由于编码规则中记录有图形元素与开始标记和结束标记的对应关系,因此可以利用开始标记和结束标记区分SVG文件中的不同的图形元素,有利于在对压缩文件进行解析时区分不同的图形元素。
本公开中,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系将图形元素名、属性名、属性值的数据类型和属性值编码成对应的数字,编码规则为文件源码中不同含义的字符串设置对应的数字,因此压缩文件中的数字能表示图形元素的绘制信息,有利于对压缩文件的解码。
本公开中,当源码中涉及引用时可以创建引用关系,引用关系为包括索引与引用对象标识的对应关系,因此,可将引用对象的源码替换为索引进行编码,从而减少压缩文件的占用空间。
本公开中,将多个显示样式属性信息记录都记录在预设的目标显示样式属性中,可以减少压缩文件的占用空间,并且压缩后的文件内容更易解析。
本公开中,由于路径属性信息中包括命令字符和与命令字符对应的数据,根据ASCII编码系统可以快速地将命令字符转换为数字,该方式易于实现,转换速度快。
本公开中,通过LEB128编码格式对整型、浮点数或双精度数进行编码,可以减少SVG压缩文件的占用字节数。
本公开中,通过创建字符串引用关系记录索引和所述字符串在字符串池的存储位置的对应关系,可以将字符串转换为索引进行编码,能显著减少压缩文件的占用空间。
本公开中,可缩放矢量图形的压缩文件中包括数字格式的图形元素的绘制信息,根据编码规则可以解码出该数字对应的图形元素的绘制信息,从而可以根据所述绘制信息快速地绘制出图形元素,得到所述可缩放矢量图形。
本公开中,编码规则中预设设定了图形元素的开始标记和结束标记,通过开始标记和结束标记可以快速区分压缩文件中不同的图形元素的绘制信息;编码规则还预先设定绘制信息与数字的对应关系,按照编码规则可以将压缩文件中的数字解码出所述图形元素的绘制信息。
本公开中,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系从压缩文件的数字解码出相对应的图形元素名、属性名、属性值的数据类型和属性值,根据上述绘制信息能快速地绘制出图形元素,提高可缩放矢量图形的绘制速度。
本公开中,当根据数字解码出对象索引时,可以根据预设的对象引用关系获得与对象索引对应的存储位置,根据该存储位置可以查找到该引用对象,从而快速地获得图形元素的绘制信息。
本公开中,当根据数字解码出字符串索引时,可以根据预设的字符串引用关系获得与索引对应的存储位置,根据该存储位置可以从字符串池中获得字符串,从而快速地获得图形元素的绘制信息。
本公开中,通过创建系统可绘制对象抽象类的派生类的对象,可以将SVG引入智能终端的操作系统中,将绘制信息赋值给对象中的成员函数,通过加载对象,可以利用所述成员函数快速地绘制出图形元素。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1A是本公开根据一示例性实施例示出的一种可缩放矢量图形的压缩方法的流程图。
图1B是本公开根据一示例性实施例示出的一种SVG的示意图。
图2是本公开根据一示例性实施例示出的一种可缩放矢量图形的绘制方法的流程图。
图3是本公开根据一示例性实施例示出的一种可缩放矢量图形的压缩装置框图。
图4是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图5是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图6是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图7是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图8是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图9是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图10是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图。
图11是本公开根据一示例性实施例示出的一种可缩放矢量图形的绘制装置框图。
图12是本公开根据一示例性实施例示出的另一种可缩放矢量图形的绘制装置框图。
图13是本公开根据一示例性实施例示出的另一种可缩放矢量图形的绘制装置框图。
图14是本公开根据一示例性实施例示出的另一种可缩放矢量图形的绘制装置框图。
图15是本公开根据一示例性实施例示出的另一种可缩放矢量图形的绘制装置框图。
图16是本公开根据一示例性实施例示出的另一种可缩放矢量图形的绘制装置框图。
图17是本公开根据一示例性实施例示出的一种用于可缩放矢量图形的压缩装置的框图。
图18是本公开根据一示例性实施例示出的一种用于可缩放矢量图形的绘制装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1A所示,图1A是本公开根据一示例性实施例示出的一种可缩放矢量图形的压缩方法的流程图,该方法可以用于终端中,包括以下步骤:
在步骤101中,获取待压缩的可缩放矢量图形。
在步骤102中,获取所述可缩放矢量图形的文件源码;所述文件源码中记录有所述图形元素的绘制信息。
在步骤103中,将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件。
其中,编码规则包括绘制信息与数字的对应关系。
本公开实施例中,终端可以为智能终端,例如可以是智能手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、电子书阅读器、多媒体播放器等等。
其中,步骤101中,可缩放矢量图形SVG是基于可扩展标记语言,用于描述二维矢量图形的一种图形格式。
步骤102中,SVG采用文本来描述矢量化的图形,这使得SVG图像文件可以像HTML网页一样具有可读性。当采用图像工具输出SVG后,可以用任何文字处理工具打开SVG图像,并可看到用来描述图像的文件源码,文件源码通常包含一个或多个图形元素,并且包含一系列描述点、线、简单图形、路径等基本图形元素的绘制信息,例如图形的位置、颜色、大小等信息。只要掌握了SVG语法,就可以通过文件源码读出SVG图像中的内容。
例如,如图1B所示,是本公开实施例示出的一种SVG的示意图,以下是该SVG的文件源码。
<?xml version="1.0"standalone="no"?>
<!DOCTYPEsvg PUBLIC"-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%"height="100%"version="1.1"
xmlns="http://www.w3.org/2000/svg">
<!--I'm comment-->
<circle cx="100"cy="50"r="40"stroke="black"
stroke-width="2"fill="red"/>
其中,第一行包含了XML声明。standalone属性规定此SVG文件是否是“独立的”,或含有对外部文件的引用。standalone="no"意味着SVG文档会引用一个外部文件。在这里,外部文件是指DTD文件。
第二和第三行引用了这个外部的SVG DTD文件。该DTD文件位于“http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”。也即表示,该DTD文件位于W3C,含有所有W3C允许的SVG元素。
从第四行代码的<svg>开始,即表示SVG中图形元素的绘制信息,代码中包括开启标签<svg>和关闭标签</svg>,<svg>是指根元素。width和height属性可设置此SVG文档的宽度和高度。version属性可定义所使用的SVG版本,xmlns属性可定义SVG命名空间。
<circle>标签用来创建一个圆,即表示圆图形元素。cx属性和cy属性定义圆中心的x和y坐标,r属性定义圆的半径。
stroke属性和stroke-width属性属于显示样式属性,用于控制如何显示形状的轮廓。上述文件中把圆的轮廓设置为2px宽,黑色边框。
fill属性用于设置形状内的颜色,上述文件中把圆的填充颜色设置为红色。
关闭标签</svg>的作用是关闭SVG元素和文档本身。
对于步骤103,可以将图形元素的绘制信息按预设的编码规则转换为数字,其中,图形元素的绘制信息可以是SVG的文件源码中从开启标签<svg>和关闭标签</svg>部分的源码,文件源码中涉及声明等内容的头三行源码,可以忽略不进行编码;在编码时,SVG文件中的常见字符串,例如width、circle或height等字符串,可以预先设定对应的数字作为编码规则,从而按照编码规则将所述图形元素的绘制信息转换为对应的数字。其中,还可以预先设定数字的进制,例如二进制、十六进制等。
由上述实施例可见,SVG的文件源码中记录有图形元素的绘制信息,通过将图形元素的绘制信息转换为数字,能获得数字格式的图形元素的绘制信息;由于将绘制信息采用数字表示,使得压缩后SVG文件能减少SVG的占用空间,减少资源浪费。
在一个可选的实现方式中,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束。
所述将所述图形元素的绘制信息按预设的编码规则编码为数字,包括:
根据所述图形元素与开始标记和结束标记的对应关系,获得所述图形元素对应的开始标记和结束标记。
根据所述绘制信息与数字的对应关系,获得所述绘制信息对应的数字。
记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
本公开提供的实施例中,对于SVG的文件源码,可以包括一个图形元素,也可以同时包括多个图形元素,每个图形元素具有对应的绘制信息。例如,图1B所示的SVG文件中包含一个svg根元素的绘制信息,以及一个circle图形元素的绘制信息。为了能在压缩文件中区分图形元素,可以预先设定图形元素的开始标记和结束标记,例如,可以用数字1表示图形元素开始,用数字3表示图形元素结束。其中,各种图形元素的开始标记和结束标记可以都相同,也可以对每种图形元素设定不同的开始标记和结束标记,开始标记和结束标记的具体形式可以根据实际需要而设定,本公开实施例对此不作限定。
其中,在编码时,SVG文件中会涉及一些常见的字符串,例如width、circle或height等字符串,可以预先设定绘制信息与数字的对应关系作为编码规则,按照编码规则可以将所述图形元素的绘制信息快速转换为对应的数字。
在编码时,可以记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字,最终获得的一串数字即为SVG的压缩文件。
由上述实施例可见,由于编码规则中记录有图形元素与开始标记和结束标记的对应关系,因此可以利用开始标记和结束标记区分SVG文件中的不同的图形元素,有利于在对压缩文件进行解析时区分不同的图形元素。
在一个可选的实现方式中,进一步的,所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值。
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系。
所述根据所述绘制信息与数字的对应关系,获得所述绘制信息对应的数字,包括:
根据所述图形元素名与数字的对应关系,获得所述图形元素名对应的数字。
根据所述属性名与数字的对应关系,获得所述属性名对应的数字。
根据所述属性值的数据类型与数字的对应关系,获得所述属性值的数据类型对应的数字。
所述在所述开始标记和结束标记之间记录所述绘制信息对应的数字,包括:
在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
本公开实施例中,由SVG的文件源码可知,图形元素的绘制信息可以包括标签以及包含在标签内部的内容,它构成了文件的主要结构,SVG文件表达的数据信息都包含在图形元素及其属性中。属性可以使用“名称=值”的形式来描述图形元素的信息,属性依附于图形元素存在。
例如,仍以图1B所示的SVG文件为例进行说明,若该SVG文件源码的绘制信息按照节点进行划分,节点可以包括元素、属性、文本、注释及文档根元素等。
元素:如<svg>....</svg>,<circle…/>就是一个元素。形式为“<[name]>…</[name]>”格式的字符串,及其被包围的内容,就是一个元素。其中[name]是由字母、数字、下划线、“-”、“:”以及汉字等组成的字符串。它的简写模式是<[name]/>。
属性:一个元素可以包含若干属性,属性包括属性名、数据类型和属性值。属性的声明从元素的定义开始,由元素名和元素值组成。其形式为[key]=“[value]”,key是由元素[name]一样的字符串组成,[value]需要用双引号或者单引号包围,可以是任意字符。属性必须和元素写在一起,形式为<[name][key1]=“[value1]”[key2]=“[value2]”...>
文本(图1B的SVG文件源码未示出有关文本的代码):被元素包围的内容,即<[name]>[text]</[name]>中[text]部分,就是文本的内容。
注释:以<!--开头和-->结尾包含的内容,就是注释的内容。
文档根元素:就是xml文档的最外层元素。对于SVG文档,根元素总是“svg”。
例如,编码规则可以通过如下表格记录绘制信息与数字的关系:
取值 | 说明 |
0 | 根元素开始 |
1 | 元素开始 |
2 | 属性 |
3 | 元素结束 |
4 | 根元素结束 |
5 | 文本 |
6 | 注释 |
7 | 保留,未使用 |
表1
本公开提供的实施例中,属性信息可以包括属性名、属性值的数据类型和属性值;属性值类型多样,为了能够正确识别不同类型的属性值,可以对属性值进行分类。属性值编码有两部分组成:属性类型,属性值。在顺序上,属性类型可以在前,随后紧跟属性值。在实际应用中,属性类型可以占用一个字节的宽度,最大可以占用4个字节的宽度。
例如,以下表2示出了常见的几种属性类型:
属性类型 | 编码 | 属性值格式 |
整数 | 1 | 整数格式 |
百分比 | 2 | 整数格式 |
带单位整数 | 3 | 单位标识+整数格式 |
字符串 | 4 | 整数格式,为字符串池索引 |
引用 | 5 | 整数格式,为引用表索引 |
路径 | 6 | 路径数据,格式由路径来确定 |
显示样式 | 7 | 风格格式 |
表2
对一个元素进行编码,可以按照如下格式:
[元素开始编码][属性1编码][属性2编码]…[文本编码][元素结束编码]
结合上面的例子,假定编码规则中记录了如下表3所示的绘制信息与数字的对应关系:
类型 | 编码 | |
Svg | 根元素 | 1 |
Circle | 元素 | 2 |
Rect | 元素 | 3 |
Width | 属性 | 1 |
Height | 属性 | 2 |
Cx | 属性 | 3 |
Cy | 属性 | 4 |
R | 属性 | 5 |
表3
根据上述对应关系,svg的开始和结束编码是:0x08 0xC。在本实施例中,svg对应1,十六进制表示为0001,将1左移3位后,为1000,也即十进制的8。元素开始类型的编码为0,8+0=8;结束编码是4,8+4=12,十六进制表示为C。
由于二进制用0,1表示数据,一个字节的数据有8个位,一个位可以取0或1两个值。十六进制,用0,1,2,3,...9,a,b,c,d,e,f表示数据,一个十六进制可以表示4位二进制。一个字节,可以用两个十六进制表示。
由于二进制与十六进制存在非常简单的对应关系,而且十六进制非常容易书写和阅读,本实施例采用十六进制来举例说明编码;而在实际应用中,还可以采用二进制或其他进制。
上述将0001中的1左移3位的目的,是为了将标签的标识和类型拼凑成一个字节,减少空间的占用。因为存储的最小单位是字节,而不是位。左移3位后,原低3位就会被空出,可以存放对应的类型。
同理,circle的开始和结束编码是0x10 0x14。
属性编码:属性编码由[属性名编码][属性值编码]组成。属性名的编码原理与上述元素的编码相同。比如,cx=“100”编码后为0x1A 0x01 0x64。其中,0x1A是属性名编码,即cx的属性标识(3)左移3位+属性类型(3);0x01表示值的类型,为整数;0x64是属性值,即100。
对于一个完整的图形元素的绘制信息进行编码,如<circle cx="100"cy="50"r="40"/>,编码后的结果是:
0x10 0x1A0x01 0x64 0x22 0x1 0x320x1A
编码后,占用长度为8字节,编码前占用字节为42字节,因此压缩后可以显著地减少SVG文件的占用空间。
上述实施例采用十六进制进行说明,在实际应用中,还可以采用二进制或其他进制的数字表示,本公开对此不做限定。
由上述实施例可见,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系将图形元素名、属性名、属性值的数据类型和属性值编码成对应的数字,编码规则为文件源码中不同含义的字符串设置对应的数字,因此压缩文件中的数字能表示图形元素的绘制信息,有利于对压缩文件的解码。
在SVG图像的源码中,通常会涉及到引用。在一个可选的实现方式中,所述将所述图形元素的绘制信息按预设的编码规则转换为数字,包括:
当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置。
创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字。
将所述引用对象标识转换为所述对象索引。
本公开实施例中,该引用对象可以是其他SVG,或者是同一份SVG中的其他图形元素,还可以是预先记录在公共数据中的对象。公共数据中可以预先记录有一个或多个可供其他SVG引用的图形元素,并记录图形元素的绘制信息。公共数据中每个图形元素对应一标识,以用于指代该图形元素。按照SVG的标准,当其他SVG需要引用时,SVG的源码中可以通过符号“::”+标识的方式表示引用。
例如,若预先创建有公共数据common.svg,在该公共数据中定义有如下图形元素,该图形元素为一渐变的背景填充样式,其绘制信息如下:
<defs>
<linearGradient id="orange_red"x1="0%"y1="0%"x2="100%"y2="0%">
<stop offset="0%"style="stop-color:rgb(255,255,0);stop-opacity:1"/>
<stop offset="100%"style="stop-color:rgb(255,0,0);stop-opacity:1"/>
</linearGradient>
</defs>
在实际应用中,公共数据可以按照本公开实施例提供的压缩方法进行压缩,为方便其他SVG进行引用,公共数据可以用来记录引用对象的绘制信息而不需对其进行绘制。
以下是一种矩形图形元素的绘制信息:
<rectx="100" y="100" width="200" height="100"style="fill:url(::#orange_end)"/>
其中,在style属性中,源码“::#orange_end”表示引用了id为“orange_end”的元素,“orange_end”即为该引用对象,“orange_end”是该引用对象的标识。
在进行编码时,当检测到源码中涉及引用对象,为了减少压缩文件的占用空间,可以将该引用对象标识替换为数字,该数字可以作为索引,通过该索引关联该引用对象的存储位置,则在解码时可以根据索引确定存储位置,进而获取到该引用对象,索引和所述引用对象的存储位置可以通过创建对象引用关系,通过该对象引用关系而记录。
例如,可以创建如下对象引用关系:
索引 | 引用对象标识 | 存储位置 |
1 | orange_end | 3000 |
由上述实施例可见,将引用对象标识替换为对象索引,通过创建对象引用关系记录索引和所述引用对象的存储位置,因此能减少编码后文件的占用空间。
本公开提供的实施例中,当源码中涉及引用时可以创建引用关系,引用关系为包括索引与引用对象标识的对应关系,因此,可将引用对象的源码替换为索引进行编码,从而减少压缩文件的占用空间。
显示样式属性是属性信息中一种常见类型;在一个可选的实现方式中,对于显示样式属性,可以通过如下方式记录所述属性值:
当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
在实际应用中,显示样式style属性信息是SVG中很常见的属性信息。Style属性本身由很多小的数据组成,而且其写法也比较多样。例如,图1B所示的SVG中,对circle的定义:
<circle cx="100"cy="50"r="40"stroke="black"stroke-width="2"fill="red"/>
其中,stroke、stroke-width和fill都属于显示样式属性信息。
上述代码,还可以写成:
<circle cx="100"cy="50"r="40"style="stroke:black;stroke-width:2;fill:red"/>
因此,可以如上述例子,将图形元素的所有显示样式属性信息都写入至style属性信息中,以减少压缩文件的占用空间。
其中,上述预设的目标显示样式属性,可以采用SVG中的style属性。
style属性可以包括属性标识+属性值类型+属性值。
其中,编码规则可以预先设定有如下表4所示的属性值类型与数字的对应关系,以及表5所示的属性标识与数字的对应关系:
类型 | 编码 | 格式 |
整数 | 1 | 整数格式 |
颜色 | 2 | 正整数格式 |
空 | 0 | 无数据,表示没有任何数据 |
引用 | 3 | 引用表索引 |
表4
属性 | 标识编码 | 期望类型 |
Fill | 1 | 颜色、引用 |
Stork | 2 | 颜色、引用 |
Stork-width | 3 | 整数 |
结束 | 0 | 空 |
表5
在实际应用中,每个style对象的编码,可以加入结束标记,例如可以采用0x00作为结束标记。
属性类型和属性标识可以共同组成一个整数,在实际应用中,该整数的最低4位可以留给属性类型,属性标识则左移4位后放在整数中。
例如,对于style="stroke:black;stroke-width:2;fill:red",其编码格式为:
0x22 0x00 0x31 0x02 0x12 0xff 0x00
其中,0x22表示stork+颜色类型,其后的0x00表示黑色。因为0x22后期望得到一个颜色,因此,该0x00就不能被解释为结束了;而最后的0x00表示style属性信息结束。
由上述实施例可见,将多个显示样式属性信息记录都记录在预设的目标显示样式属性中,可以减少压缩文件的占用空间,并且压缩后的文件内容更易解析。
路径属性也是属性信息中一种常见类型;在一个可选的实现方式中,对于路径属性,可以通过如下方式记录所述属性值,包括:
当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
本公开提供的实施例中,SVG采用专门的字符串表示路径Path,其基本格式由命令+数据组成。Path支持的命令如下:
命令 | 说明 |
M | Move to将画笔移动到某一点,参数为坐标 |
L | Line to绘制一条直线到某一点 |
H | Horizontal line to绘制水平线到某一点 |
V | Vertical line to绘制垂直线到某一点 |
C | Curve to绘制到某一点的曲线到某一点 |
S | Smooth curveto绘制光滑三次贝塞尔曲线到某一点 |
Q | QudraticBelzier curve绘制二次贝塞尔曲线到某一点 |
A | Elliptical Arc绘制椭圆弧 |
Z | Close path闭合路径 |
例如,有如下有关路径属性信息的源码:
<path d="M250 150 L150 350 L350 350 Z"/>
其中,“M”和“L”即表示命令,该命令可以根据ASCII编码系统进行转换。“250150”是与命令“M”对应的数据。
上述例子,就可以转换为:0x4D 0xFA 0x9F 0x4E 0x15E 0x15E 0x5A
其中,0x4D就是M的ASCII码,同理0x4E对应L,0x5A对应Z。其后直接是该命令字符对应的数据。
由上述实施例可见,由于路径属性信息中包括命令字符和与命令字符对应的数据,利用根据ASCII编码系统可以快速地将命令字符转换为数字,该方式易于实现,转换速度快。
在一个可选的实现方式中,所述记录所述属性值,包括:
当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字。
当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
SVG在描述图形元素时,会大量使用整数、小数等来描述各种坐标、颜色等信息。在计算机内部,整数要占用4字节,小数则使用浮点数(占4字节)和双精度浮点数(占8字节)来表示。不过,在实际应用中,通常不会使用太大的数。比如,0~127以内的整数,只需要占用7位,不到一个字节。如果对所有的整数、浮点数都占用4到8字节的空间,会造成很大的浪费,因此,可以采用LEB128(Little-Endian Base 128,小字节序、低字节序)编码格式来转换数据,LEB128的编码方式是:
1.将数据转换为小端格式。
2.将剩余数据,分成7位一组,从最低位开始向最高位分,如果最高位不足7位,不足部分补充为0。
3.删除全为0的高位组。
4.从最低位的7位组开始保存,一直到最高位的7位组。每7位组组成一个字节,该字节最高位用1补充;最高位的7位组所在的字节,最高位用0补充,表示编码结束。
比如,整数0x11E53,转为过程就是如下:
1.0x11E53,分成7位组,从最低到最高是:0x53 0x3C 0x04 0x00 0x00。
2.去除为0的最高组,从最低位7位组到最高位7位组,分别是0x53,0x3c,0x04。
3.将7位组最高位补充1和0,最后是0xD3 0xBC 0x04。
对于浮点数和双精度数的做法,可以是将他们转换为十六进制数后得到整数格式的数字,之后再进行LEB128的编码。
由上述实施例可见,通过LEB128编码格式对整型、浮点数或双精度数进行编码,可以减少SVG压缩文件的占用字节数。
在一个可选的实现方式中,所述记录属性值,可以包括:
当所述属性值的数据类型为字符串时,将所述字符串存储在预创建的字符串池中,获得所述字符串在所述字符串池中的存储位置。
创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字。
将所述字符串转换为所述索引。
在进行编码时,当检测到属性值的数据类型中包括字符串时,为了减少压缩文件的占用空间,可以将该字符串替换为数字,该数字可以作为索引,字符串存储在字符串池中。字符串池可以保存所有SVG中用到的字符串。通过该索引关联该字符串的存储位置,则在解码时可以根据索引确定存储位置,进而获取到该字符串,索引和所述字符串的存储位置可以通过创建字符串引用关系,通过该字符串引用关系而记录。
由上述实施例可见,通过创建字符串引用关系记录索引和所述字符串在字符串池的存储位置的对应关系,可以将字符串转换为索引进行编码,能显著减少压缩文件的占用空间。
本公开实施例提供的SVG压缩方法的一个常见应用场景是,可以将SVG引入智能终端,例如智能手机、智能平板等终端中,上述终端通常运行安卓操作系统、iOS(苹果公司的操作系统)或windows phone(微软公司的操作系统)等操作系统。
以安卓系统为例,安卓系统在编译时,将所有的资源都做成的压缩包,该压缩包通常命名为resource.arsc。若将SVG引入该操作系统,SVG可以加入到该压缩包内。该压缩包可以由安卓的AAPT(Android Asset Packaging Tool,安卓编译工具)程序生成。在该AAPT进行编译生成资源包的过程中,可以增加图1A所示实施例的SVG压缩过程,将XML文件格式的SVG进行压缩,最后再打包到resource.arsc压缩包中。
可以理解的是,上述实施例仅以将SVG引入安卓操作系统为例进行说明,在实际应用中,还可以是iOS等其他操作系统,在引入其他操作系统时,可以参考现有技术中各操作系统的编译过程,在编译中采用本公开实施例提供的SVG压缩方法对SVG进行压缩即可。并且,在实际应用中,本公开实施例提供的SVG压缩方法还可以应用在其他任何需要对SVG进行压缩的场景。
相对应图1A实施例提供的可缩放矢量图形的压缩方法,本公开实施例还提供了可缩放矢量图形的绘制方法,图2是本公开根据一示例性实施例示出的一种可缩放矢量图形的绘制方法的流程图,该方法可以用于终端中,包括如下步骤201至203:
在步骤201中,获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息。
在步骤202中,根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系。
在步骤203中,根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
本公开提供的实施例中,可缩放矢量图形的压缩文件中包括数字格式的图形元素的绘制信息,根据编码规则可以解码出该数字对应的图形元素的绘制信息,从而可以根据所述绘制信息绘制出图形元素,得到所述可缩放矢量图形。本公开实施例的方法,通过编码规则解析出压缩文件中数字对应的绘制信息,能快速地绘制出该可缩放矢量图形。
在一个可选的实现方式中,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束。
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
获取开始标记和结束标记之间的数字。
根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
本公开提供的实施例中,编码规则中预设设定了图形元素的开始标记和结束标记,通过开始标记和结束标记可以快速区分压缩文件中不同的图形元素的绘制信息;编码规则还预先设定绘制信息与数字的对应关系,按照编码规则可以将压缩文件中的数字解码出所述图形元素的绘制信息。
在一个可选的实现方式中,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系。
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获得图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
本公开提供的实施例,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系从压缩文件的数字解码出相对应的图形元素名、属性名、属性值的数据类型和属性值,根据上述绘制信息能快速地绘制出图形元素,提高可缩放矢量图形的绘制速度。
在一个可选的实现方式中,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字。
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为对象索引时,根据所述对象引用关系获取与所述数字对应的所述引用对象的存储位置。
根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
本公开提供的实施例中,当根据数字解码出对象索引时,可以根据预设的对象引用关系获得与对象索引对应的存储位置,根据该存储位置可以查找到该引用对象,该引用对象可以是其他SVG,或者是同一份SVG中的其他图形元素,还可以是预先记录在公共数据中的对象,从而快速地获得图形元素的绘制信息。
在一个可选的实现方式中,所述绘制信息与数字的对应关系还包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字。
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的存储位置。
根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
本公开提供的实施例中,当根据数字解码出字符串索引时,可以根据预设的字符串引用关系获得与索引对应的存储位置,根据该存储位置可以从字符串池中获得字符串,从而快速地获得图形元素的绘制信息。
在一个可选的实现方式中,所述根据所述绘制信息绘制出所述图形元素,包括:
创建对象,所述对象为系统可绘制对象抽象类的派生类的对象。
将所述绘制信息赋值给所述对象中的成员函数。
加载所述对象,利用所述成员函数绘制出所述图形元素。
本公开提供的实施例中,可以在智能终端的操作系统中引入SVG。例如,在安卓系统中,屏幕上的可绘制对象,被称为Drawable。Drawable在安卓SDK(软件开发工具包,Software Development Kit)中,是一个抽象类,因此,可以预先编写一个Drawable的派生类SVGDrawable来实现。SVGDrawable负责创建一个SVG Document对象,该对象对应不同的图形元素,是一个树形结构,包含一组描述点、线、简单图形、路径等基本图形元素的绘制信息,例如图形的位置、颜色、大小等信息。当SVGDrawable被绘制时,该类将按照SVGDocument的结构和顺序依次绘制出图形。因为SVGDrawable继承自Drawable,因此,SVGDrawable可以用在任何接受Drawable的地方。
SVGDrawable的创建过程。在android系统中,创建一个Drawable对象,需要通过它的资源ID。为了创建SVGDrawable,可以修改Android系统的源码,即在Android系统中的Resources类的createFromResourceStream中,增加针对SVG文件创建出一个SVGDrawable对象。
SVG的绘制过程,也即压缩的逆过程。打开一个SVG二进制压缩文件,可以看作为将压缩文件中的数据放入一个输入流(InputStream)中。通过上述编码规则中记录的绘制信息与数字的对应关系,可以解析出数字所代表的含义。
如果是元素,可以根据具体ID,创建不同的对象;如果是属性,可解码出属性值,赋值给对象中对应的成员函数。
比如:
0x10 0x1A 0x01 0x64 0x22 0x1 0x32 0x1A
即表示:
<circle cx="100"cy="50"r="40"/>
首先,从压缩文件中读到第一个字节0x10,说明是元素开始,0x10>>3为2,表示这是一个circle节点。因此,需要创建SVGCircle对象。然后交给SVGCircle进行加载。
SVGCircle对象继续读取压缩文件,获取字节0x1A,表示这是一个属性。0x1A>>3为3,表示该属性为cx。然后在读取一个字节,得到0x1,判断是整数类型,然后读取0x64,得到数值为100。将结果写入到SVGCircle的cx变量里面,完成一个属性的读取。最后SVGCircle对象就可以绘制出上述circle。
由上述实施例可见,通过创建系统可绘制对象抽象类的派生类的对象,可以将SVG引入智能终端的操作系统中,将绘制信息赋值给对象中的成员函数,通过加载对象,可以利用所述成员函数快速地绘制出图形元素。
与前述可缩放矢量图形的压缩方法的实施例相对应,本公开还提供了可缩放矢量图形的压缩装置及其所应用的终端的实施例。
如图3所示,图3是本公开根据一示例性实施例示出的一种可缩放矢量图形的压缩装置框图,所述装置包括:图形获取模块31、文件源码获取模块32和编码模块33。
图形获取模块31,被配置为获取待压缩的可缩放矢量图形。
文件源码获取模块32,被配置为获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息。
编码模块33,被配置为将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
由上述实施例可见,SVG的文件源码中记录有图形元素的绘制信息,通过将图形元素的绘制信息转换为数字,能获得数字格式的图形元素的绘制信息;由于将绘制信息采用数字表示,使得压缩后SVG文件能减少SVG的占用空间,减少资源浪费。
如图4所示,图4是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图3所示实施例的基础上,所述编码规则中记录有图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束。
所述编码模块33,包括:标记获取子模块331、绘制信息数字获取子模块332和第一记录子模块333。
标记获取子模块331,被配置为根据所述图形元素与开始标记和结束标记的对应关系,获取所述图形元素对应的开始标记和结束标记。
绘制信息数字获取子模块332,被配置为根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字。
第一记录子模块333,被配置为记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
由上述实施例可见,由于编码规则中记录有图形元素与开始标记和结束标记的对应关系,因此可以利用开始标记和结束标记区分SVG文件中的不同的图形元素,有利于在对压缩文件进行解析时区分不同的图形元素。
如图5所示,图5是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图4所示实施例的基础上,所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值。
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系。
所述绘制信息数字获取子模块332,包括:元素名数字获取子模块3321、属性名数字获取子模块3322和数据类型数字获取子模块3323。
元素名数字获取子模块3321,被配置为根据所述图形元素名与数字的对应关系,获取所述图形元素名对应的数字。
属性名数字获取子模块3322,被配置为根据所述属性名与数字的对应关系,获取所述属性名对应的数字。
数据类型数字获取子模块3323,被配置为根据所述属性值的数据类型与数字的对应关系,获取所述属性值的数据类型对应的数字。
所述第一记录子模块333,包括:第二记录子模块3331。
第二记录子模块3331,被配置为在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
由上述实施例可见,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系将图形元素名、属性名、属性值的数据类型和属性值编码成对应的数字,编码规则为文件源码中不同含义的字符串设置对应的数字,因此压缩文件中的数字能表示图形元素的绘制信息,有利于对压缩文件的解码。
如图6所示,图6是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图5所示实施例的基础上,所述绘制信息数字获取子模块332,包括:引用对象存储位置获取子模块3324、对象引用关系创建子模块3325和引用对象标识转换子模块3326。
引用对象存储位置获取子模块3324,被配置为当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置。
对象引用关系创建子模块3325,被配置为创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字。
引用对象标识转换子模块3326,被配置为将所述引用对象标识转换为所述对象索引。
由上述实施例可见,当源码中涉及引用时可以创建引用关系,引用关系为包括索引与引用对象标识的对应关系,因此,可将引用对象的源码替换为索引进行编码,从而减少压缩文件的占用空间。
如图7所示,图7是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图5所示实施例的基础上,所述第二记录子模块3331,包括:显示样式属性信息记录子模块33311。
显示样式属性信息记录子模块33311,被配置为当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
由上述实施例可见,将多个显示样式属性信息记录都记录在预设的目标显示样式属性中,可以减少压缩文件的占用空间,并且压缩后的文件内容更易解析。
如图8所示,图8是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图5所示实施例的基础上,所述第二记录子模块3331,包括:路径属性信息记录子模块33312。
路径属性信息记录子模块33312,被配置为当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
由上述实施例可见,由于路径属性信息中包括命令字符和与命令字符对应的数据,根据ASCII编码系统可以快速地将命令字符转换为数字,该方式易于实现,转换速度快。
如图9所示,图9是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图5所示实施例的基础上,所述第二记录子模块3331,包括:第一转换子模块33313和第二转换子模块33314。
第一转换子模块33313,被配置为当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字。
第二转换子模块33314,被配置为当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
由上述实施例可见,通过LEB128编码格式对整型、浮点数或双精度数进行编码,可以减少SVG压缩文件的占用字节数。
如图10所示,图10是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图5所示实施例的基础上,所述第二记录子模块3331,包括:字符串存储子模块33315、字符串引用关系创建子模块33316和字符串转换子模块33317。
字符串存储子模块33315,被配置为当所述属性值的数据类型为字符串时,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置。
字符串引用关系创建子模块33316,被配置为创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字。
字符串转换子模块33317,被配置为将所述字符串转换为所述索引。
由上述实施例可见,通过创建字符串引用关系记录索引和所述字符串在字符串池的存储位置的对应关系,可以将字符串转换为索引进行编码,能显著减少压缩文件的占用空间。
与前述可缩放矢量图形的绘制方法的实施例相对应,本公开还提供了可缩放矢量图形的绘制装置及其所应用的终端的实施例。
如图11所示,图11是本公开根据一示例性实施例示出的一种可缩放矢量图形的绘制装置框图,所述装置包括:压缩文件获取模块111、解码模块112和绘制模块113。
压缩文件获取模块111,被配置为获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息。
解码模块112,被配置为根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则中记录有绘制信息与数字的对应关系。
绘制模块113,被配置为根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
由上述实施例可见,可缩放矢量图形的压缩文件中包括数字格式的图形元素的绘制信息,根据编码规则可以解码出该数字对应的图形元素的绘制信息,从而可以根据所述绘制信息快速地绘制出图形元素,得到所述可缩放矢量图形。
如图12所示,图12是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图11所示实施例的基础上,所述编码规则记录有图形元素与开始标记和结束标记的对应关系,以及绘制信息与数字的对应关系;所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束。
所述解码模块112,包括:数字获取子模块1121和数字解码子模块1122。
数字获取子模块1121,被配置为获取开始标记和结束标记之间的数字。
数字解码子模块1122,被配置为根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
由上述实施例可见,编码规则中预设设定了图形元素的开始标记和结束标记,通过开始标记和结束标记可以快速区分压缩文件中不同的图形元素的绘制信息;编码规则还预先设定绘制信息与数字的对应关系,按照编码规则可以将压缩文件中的数字解码出所述图形元素的绘制信息。
如图13所示,图13是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图12所示实施例的基础上,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系。
所述数字解码子模块1121,包括:第一绘制信息获得子模块11211。
第一绘制信息获得子模块11211,被配置为根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获取图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
由上述实施例可见,编码规则中记录有图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系,因此可以根据上述关系从压缩文件的数字解码出相对应的图形元素名、属性名、属性值的数据类型和属性值,根据上述绘制信息能快速地绘制出图形元素,提高可缩放矢量图形的绘制速度。
如图14所示,图14是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图13所示实施例的基础上,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字。
所述解码模块112,包括:对象索引判断子模块1123和引用对象绘制信息获得子模块1124。
对象索引判断子模块1123,被配置为当判断所述数字为对象索引时,根据对象引用关系获取与所述数字对应的所述引用对象的存储位置。
引用对象绘制信息获得子模块1124,被配置为根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
由上述实施例可见,当根据数字解码出对象索引时,可以根据预设的对象引用关系获得与对象索引对应的存储位置,根据该存储位置可以查找到该引用对象,从而快速地获得图形元素的绘制信息。
如图15所示,图15是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图13所示实施例的基础上,所述绘制信息与数字的对应关系还包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字。
所述解码模块112,包括:字符串索引判断子模块1125和字符串获得子模块1126。
字符串索引判断子模块1125,被配置为当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的存储位置。
字符串获得子模块1126,被配置为根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
由上述实施例可见,当根据数字解码出字符串索引时,可以根据预设的字符串引用关系获得与索引对应的存储位置,根据该存储位置可以从字符串池中获得字符串,从而快速地获得图形元素的绘制信息。
如图16所示,图16是本公开根据一示例性实施例示出的另一种可缩放矢量图形的压缩装置框图,该实施例在前述图13所示实施例的基础上,所述绘制模块113,包括:对象子模块1131、赋值子模块1132和绘制子模块1133。
对象子模块1131,被配置为创建对象,所述对象为系统可绘制对象抽象类的派生类的对象。
赋值子模块1132,被配置为将所述绘制信息赋值给所述对象中的成员函数。
绘制子模块1133,被配置为加载所述对象,利用所述成员函数绘制出所述图形元素。
由上述实施例可见,通过创建系统可绘制对象抽象类的派生类的对象,可以将SVG引入智能终端的操作系统中,将绘制信息赋值给对象中的成员函数,通过加载对象,可以利用所述成员函数快速地绘制出图形元素。
相应的,本公开还提供一种可缩放矢量图形的压缩装置,包括:
处理器。
用于存储处理器可执行指令的存储器。
其中,所述处理器被配置为:
获取待压缩的可缩放矢量图形。
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息。
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
相应的,本公开还提供一种可缩放矢量图形的绘制装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息。
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系。
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图17所示,图17是本公开根据一示例性实施例示出的一种用于图3所示可缩放矢量图形的压缩装置1700的一结构示意图。例如,装置1700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图17,装置1700可以包括以下一个或多个组件:处理组件1702,存储器1704,电源组件1706,多媒体组件1708,音频组件1710,输入/输出(I/O)的接口1713,传感器组件1714,以及通信组件1716。
处理组件1702通常控制装置1700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1702可以包括一个或多个处理器1720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1702可以包括一个或多个模块,便于处理组件1702和其他组件之间的交互。例如,处理组件1702可以包括多媒体模块,以方便多媒体组件1708和处理组件1702之间的交互。
存储器1704被配置为存储各种类型的数据以支持在装置1700的操作。这些数据的示例包括用于在装置1700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1706为装置1700的各种组件提供电力。电源组件1706可以包括电源管理系统,一个或多个电源,及其他与为装置1700生成、管理和分配电力相关联的组件。
多媒体组件1708包括在所述装置1700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1708包括一个前置摄像头和/或后置摄像头。当装置1700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1710被配置为输出和/或输入音频信号。例如,音频组件1710包括一个麦克风(MIC),当装置1700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1704或经由通信组件1716发送。在一些实施例中,音频组件1710还包括一个扬声器,用于输出音频信号。
I/O接口1713为处理组件1702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1714包括一个或多个传感器,用于为装置1700提供各个方面的状态评估。例如,传感器组件1714可以检测到装置1700的打开/关闭状态,组件的相对定位,例如所述组件为装置1700的显示器和小键盘,传感器组件1714还可以检测装置1700或装置1700一个组件的位置改变,用户与装置1700接触的存在或不存在,装置1700方位或加速/减速和装置1700的温度变化。传感器组件1714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器,微波传感器或温度传感器。
通信组件1716被配置为便于装置1700和其他设备之间有线或无线方式的通信。装置1700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1704,上述指令可由装置1700的处理器1720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行一种可缩放矢量图形的压缩方法,所述方法包括:
获取待压缩的可缩放矢量图形。
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息。
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系。
如图18所示,图18是本公开根据一示例性实施例示出的一种用于图11所示可缩放矢量图形的绘制装置1800的一结构示意图。例如,装置1800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图18,装置1800可以包括以下一个或多个组件:处理组件1802,存储器1804,电源组件1806,多媒体组件1808,音频组件1810,输入/输出(I/O)的接口1813,传感器组件1814,以及通信组件1816。
处理组件1802通常控制装置1800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1802可以包括一个或多个处理器1820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1802可以包括一个或多个模块,便于处理组件1802和其他组件之间的交互。例如,处理组件1802可以包括多媒体模块,以方便多媒体组件1808和处理组件1802之间的交互。
存储器1804被配置为存储各种类型的数据以支持在装置1800的操作。这些数据的示例包括用于在装置1800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1806为装置1800的各种组件提供电力。电源组件1806可以包括电源管理系统,一个或多个电源,及其他与为装置1800生成、管理和分配电力相关联的组件。
多媒体组件1808包括在所述装置1800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1808包括一个前置摄像头和/或后置摄像头。当装置1800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1810被配置为输出和/或输入音频信号。例如,音频组件1810包括一个麦克风(MIC),当装置1800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1804或经由通信组件1816发送。在一些实施例中,音频组件1810还包括一个扬声器,用于输出音频信号。
I/O接口1813为处理组件1802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1814包括一个或多个传感器,用于为装置1800提供各个方面的状态评估。例如,传感器组件1814可以检测到装置1800的打开/关闭状态,组件的相对定位,例如所述组件为装置1800的显示器和小键盘,传感器组件1814还可以检测装置1800或装置1800一个组件的位置改变,用户与装置1800接触的存在或不存在,装置1800方位或加速/减速和装置1800的温度变化。传感器组件1814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器,微波传感器或温度传感器。
通信组件1816被配置为便于装置1800和其他设备之间有线或无线方式的通信。装置1800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1804,上述指令可由装置1800的处理器1820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行一种可缩放矢量图形的绘制方法,所述方法包括:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息。
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系。
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (28)
1.一种可缩放矢量图形的压缩方法,其特征在于,所述方法包括:
获取待压缩的可缩放矢量图形;
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系;
其中,所述将所述图形元素的绘制信息按预设的编码规则转换为数字,包括:
若所述图形元素的属性信息中属性值的数据类型为字符串,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置;
创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字;
将所述字符串转换为所述索引。
2.根据权利要求1所述的方法,其特征在于,所述编码规则还包括有图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束;
所述将所述图形元素的绘制信息按预设的编码规则转换为数字,包括:
根据所述图形元素与开始标记和结束标记的对应关系,获取所述图形元素对应的开始标记和结束标记;
根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字;
记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
3.根据权利要求2所述的方法,其特征在于,
所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值;
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字,包括:
根据所述图形元素名与数字的对应关系,获取所述图形元素名对应的数字;
根据所述属性名与数字的对应关系,获取所述属性名对应的数字;
根据所述属性值的数据类型与数字的对应关系,获取所述属性值的数据类型对应的数字;
所述在所述开始标记和结束标记之间记录所述绘制信息对应的数字,包括:
在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
4.根据权利要求3所述的方法,其特征在于,所述将所述图形元素的绘制信息按预设的编码规则编码为数字,包括:
当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置;
创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
将所述引用对象标识转换为所述对象索引。
5.根据权利要求3所述的方法,其特征在于,所述记录所述属性值,包括:
当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
6.根据权利要求3所述的方法,其特征在于,所述记录所述属性值,包括:
当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
7.根据权利要求3所述的方法,其特征在于,所述记录所述属性值,包括:
当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字;
当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至7任一项所述可缩放矢量图形的压缩方法的步骤。
9.一种可缩放矢量图形的绘制方法,其特征在于,所述方法包括:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系;
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形;
其中,所述绘制信息与数字的对应关系包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的偏移位置;
根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
10.根据权利要求9所述的方法,其特征在于,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
获取开始标记和结束标记之间的数字;
根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
11.根据权利要求9所述的方法,其特征在于,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获得图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
12.根据权利要求11所述的方法,其特征在于,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为对象索引时,根据所述对象引用关系获取与所述数字对应的所述引用对象的存储位置;
根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
13.根据权利要求9至12任一所述的方法,其特征在于,所述根据所述绘制信息绘制出所述图形元素,包括:
创建对象,所述对象为系统可绘制对象抽象类的派生类的对象;
将所述绘制信息赋值给所述对象中的成员函数;
加载所述对象,利用所述成员函数绘制出所述图形元素。
14.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求9至13任一项所述可缩放矢量图形的绘制方法的步骤。
15.一种可缩放矢量图形的压缩装置,其特征在于,所述装置包括:
图形获取模块,被配置为获取待压缩的可缩放矢量图形;
文件源码获取模块,被配置为获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
编码模块,被配置为将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则包括绘制信息与数字的对应关系;
其中,所述编码模块,具体被配置为:
若所述图形元素的属性信息中属性值的数据类型为字符串,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置;
创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字;
将所述字符串转换为所述索引。
16.根据权利要求15所述的装置,其特征在于,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,所述开始标记和结束标记分别用于在编码时表示图形元素的绘制信息的开始和结束;
所述编码模块,包括:
标记获取子模块,被配置为根据所述图形元素与开始标记和结束标记的对应关系,获取所述图形元素对应的开始标记和结束标记;
绘制信息数字获取子模块,被配置为根据所述绘制信息与数字的对应关系,获取所述绘制信息对应的数字;
第一记录子模块,被配置为记录所述开始标记和结束标记,并在所述开始标记和结束标记之间记录所述绘制信息对应的数字。
17.根据权利要求16所述的装置,其特征在于,
所述绘制信息包括图形元素名和图形元素的属性信息,所述属性信息包括属性名、属性值的数据类型和属性值;
所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述绘制信息数字获取子模块,包括:
元素名数字获取子模块,被配置为根据所述图形元素名与数字的对应关系,获取所述图形元素名对应的数字;
属性名数字获取子模块,被配置为根据所述属性名与数字的对应关系,获取所述属性名对应的数字;
数据类型数字获取子模块,被配置为根据所述属性值的数据类型与数字的对应关系,获取所述属性值的数据类型对应的数字;
所述第一记录子模块,包括:
第二记录子模块,被配置为在所述开始标记和结束标记之间记录所述图形元素名对应的数字、属性名对应的数字和属性值的数据类型对应的数字和所述属性值。
18.根据权利要求17所述的装置,其特征在于,所述绘制信息数字获取子模块,包括:
引用对象存储位置获取子模块,被配置为当所述绘制信息中包括引用对象标识时,获取所述引用对象标识对应的引用对象的存储位置;
对象引用关系创建子模块,被配置为创建对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
引用对象标识转换子模块,被配置为将所述引用对象标识转换为所述对象索引。
19.根据权利要求17所述的装置,其特征在于,所述第二记录子模块,包括:
显示样式属性信息记录子模块,被配置为当所述图形元素的属性信息中包括一个或多个显示样式属性信息时,记录各个所述显示样式属性信息的属性名对应的数字和各个所述显示样式属性信息的属性值作为预设的目标显示样式属性的属性值。
20.根据权利要求17所述的装置,其特征在于,所述第二记录子模块,包括:
路径属性信息记录子模块,被配置为当所述图形元素的属性信息为路径属性信息时,根据ASCII编码系统中记录的字符与数字的对应关系,将命令字符转换为对应的数字,记录所述命令字符所对应的数字和所述命令字符对应的数据;其中,所述路径属性信息的属性值包括命令字符和与所述命令字符对应的数据。
21.根据权利要求17所述的装置,其特征在于,所述第二记录子模块,包括:
第一转换子模块,被配置为当所述属性值的数据类型为整型时,将所述属性值按照LEB128编码格式转换为预设进制的数字;
第二转换子模块,被配置为当所述属性值的数据类型为浮点型或双精度型时,将所述属性值转换为十六进制数后,再按照LEB128编码格式转换为预设进制的数字。
22.一种可缩放矢量图形的绘制装置,其特征在于,所述装置包括:
压缩文件获取模块,被配置为获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
解码模块,被配置为根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则包括绘制信息与数字的对应关系;
绘制模块,被配置为根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形;
其中,所述绘制信息与数字的对应关系包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字;
所述解码模块,具体被配置为:
当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的偏移位置;
根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
23.根据权利要求22所述的装置,其特征在于,所述编码规则还包括图形元素与开始标记和结束标记的对应关系,以及绘制信息与数字的对应关系;所述开始标记和结束标记分别用于表示图形元素的绘制信息的开始和结束;
所述解码模块,包括:
数字获取子模块,被配置为获取开始标记和结束标记之间的数字;
数字解码子模块,被配置为根据所述绘制信息与数字的对应关系,解码所述开始标记和结束标记之间的数字,得到所述绘制信息。
24.根据权利要求23所述的装置,其特征在于,所述绘制信息与数字的对应关系包括:图形元素名与数字的对应关系、属性名与数字的对应关系,以及属性值的数据类型与数字的对应关系;
所述数字解码子模块,包括:
第一绘制信息获得子模块,被配置为根据所述图形元素名与数字的对应关系、所述属性名与数字的对应关系和属性值的数据类型与数字的对应关系,获取图形元素名、属性名、属性值的数据类型和属性值,得到所述绘制信息。
25.根据权利要求24所述的装置,其特征在于,所述绘制信息与数字的对应关系还包括:对象引用关系,所述对象引用关系包括对象索引和所述引用对象的存储位置,所述对象索引为数字;
所述解码模块,包括:对象索引判断子模块,被配置为当判断所述数字为对象索引时,根据对象引用关系获取与所述数字对应的所述引用对象的存储位置;
引用对象绘制信息获得子模块,被配置为根据所述引用对象的存储位置获取所述引用对象的绘制信息,得到所述图形元素的绘制信息。
26.根据权利要求22至25任一所述的装置,其特征在于,所述绘制模块,包括:
对象子模块,被配置为创建对象,所述对象为系统可绘制对象抽象类的派生类的对象;
赋值子模块,被配置为将所述绘制信息赋值给所述对象中的成员函数;
绘制子模块,被配置为加载所述对象,利用所述成员函数绘制出所述图形元素。
27.一种可缩放矢量图形的压缩装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待压缩的可缩放矢量图形;
获取所述可缩放矢量图形的文件源码;所述文件源码中记录有图形元素的绘制信息;
将所述图形元素的绘制信息按预设的编码规则转换为数字,获得所述可缩放矢量图形的压缩文件,所述编码规则中记录有绘制信息与数字的对应关系;
其中,所述将所述图形元素的绘制信息按预设的编码规则转换为数字,包括:
若所述图形元素的属性信息中属性值的数据类型为字符串,将所述字符串存储在预创建的字符串池中,获取所述字符串在所述字符串池中的存储位置;
创建字符串引用关系,所述字符串引用关系包括索引和所述字符串在字符串池的存储位置,所述索引为数字;
将所述字符串转换为所述索引。
28.一种可缩放矢量图形的绘制装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取可缩放矢量图形的压缩文件,所述压缩文件中包括数字格式的图形元素的绘制信息;
根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,所述编码规则中记录有绘制信息与数字的对应关系;
根据所述绘制信息绘制所述图形元素,得到所述可缩放矢量图形;
其中,所述绘制信息与数字的对应关系包括:字符串引用关系,所述字符串引用关系包括字符串索引和字符串在字符串池的存储位置,所述字符串索引为数字;
所述根据预设的编码规则对所述压缩文件中的数字进行解码,获得所述可缩放矢量图形的图形元素的绘制信息,包括:
当判断所述数字为字符串索引时,根据字符串引用关系获取与所述数字对应的所述字符串在字符串池的偏移位置;
根据所述字符串在字符串池的存储位置,从预创建的字符串池中获取所述字符串,得到所述图形元素的绘制信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510772371.6A CN105427353B (zh) | 2015-11-12 | 2015-11-12 | 可缩放矢量图形的压缩、绘制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510772371.6A CN105427353B (zh) | 2015-11-12 | 2015-11-12 | 可缩放矢量图形的压缩、绘制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105427353A CN105427353A (zh) | 2016-03-23 |
CN105427353B true CN105427353B (zh) | 2019-05-21 |
Family
ID=55505533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510772371.6A Active CN105427353B (zh) | 2015-11-12 | 2015-11-12 | 可缩放矢量图形的压缩、绘制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105427353B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651992B (zh) * | 2016-11-18 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 优化Android资源图片的方法及系统 |
CN108257075B (zh) * | 2017-12-06 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种顶点数组命令的解引用与组装方法 |
CN108170747A (zh) * | 2017-12-20 | 2018-06-15 | 北京酷我科技有限公司 | 一种iOS上管理APP中图片的方法 |
CN110119380B (zh) * | 2018-01-12 | 2022-02-22 | 武汉斗鱼网络科技有限公司 | 一种可缩放矢量图文件的存储、读取方法及装置 |
US10321002B1 (en) * | 2018-02-14 | 2019-06-11 | Xerox Corporation | Variable data vector graphic pattern ink pantograph |
CN109885301B (zh) * | 2019-01-21 | 2022-04-08 | 新奥特(北京)视频技术有限公司 | 一种可缩放矢量图形的生成方法、装置、存储介质和设备 |
CN112035706A (zh) * | 2019-06-04 | 2020-12-04 | 上海哔哩哔哩科技有限公司 | 编码、解码方法、计算机设备及可读存储介质 |
CN110598156B (zh) * | 2019-09-19 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 绘图数据的处理方法、装置、终端、服务器及存储介质 |
CN110662105A (zh) * | 2019-10-16 | 2020-01-07 | 广州华多网络科技有限公司 | 动画文件的生成方法、装置及存储介质 |
CN113052939B (zh) * | 2019-12-10 | 2024-03-08 | 辉达公司 | 对路径描边的补丁区段、顶端和连接统一编码 |
CN111414107A (zh) * | 2020-03-17 | 2020-07-14 | 中国银行股份有限公司 | 可缩放矢量图形处理方法及系统 |
CN113516737B (zh) * | 2020-03-27 | 2024-09-03 | 北京小米松果电子有限公司 | 动画转换方法、装置及智能设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793365A (zh) * | 2013-09-29 | 2014-05-14 | 国家电网公司 | 将SVG图形转换为Visio图形的方法 |
CN103902513A (zh) * | 2014-03-21 | 2014-07-02 | 北京百度网讯科技有限公司 | 在终端设备中显示字体的方法及装置 |
CN104991993A (zh) * | 2015-06-09 | 2015-10-21 | 北京红马传媒文化发展有限公司 | 一种场地信息图形的处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4898615B2 (ja) * | 2007-09-20 | 2012-03-21 | キヤノン株式会社 | 情報処理装置および符号化方法 |
-
2015
- 2015-11-12 CN CN201510772371.6A patent/CN105427353B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793365A (zh) * | 2013-09-29 | 2014-05-14 | 国家电网公司 | 将SVG图形转换为Visio图形的方法 |
CN103902513A (zh) * | 2014-03-21 | 2014-07-02 | 北京百度网讯科技有限公司 | 在终端设备中显示字体的方法及装置 |
CN104991993A (zh) * | 2015-06-09 | 2015-10-21 | 北京红马传媒文化发展有限公司 | 一种场地信息图形的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105427353A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105427353B (zh) | 可缩放矢量图形的压缩、绘制方法及装置 | |
KR101796404B1 (ko) | 그래픽 사용자 인터페이스의 제작 방법, 장치, 프로그램 및 저장매체 | |
CN105518614B (zh) | 用于多屏幕应用程序的屏幕录制的方法、设备和计算机可读介质 | |
CN108604378A (zh) | 视频流的图像分割和修改 | |
CN109643370A (zh) | 基于头像的意符生成 | |
JP7165272B2 (ja) | 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置 | |
US20140304307A1 (en) | Framework for Media Presentation Playback | |
CN106056530A (zh) | 应用中图片内容的显示方法及装置 | |
CN108984172A (zh) | 一种界面文件的生成方法及装置 | |
CN102572606A (zh) | 带有灵活的远程回放的流播的数字内容 | |
US20230367464A1 (en) | Multi-Application Interaction Method | |
TWI409708B (zh) | 用於以一序列二位元格式儲存文件之系統和方法 | |
CN110322532A (zh) | 动态图像的生成方法及装置 | |
CN108737891A (zh) | 视频素材处理方法及装置 | |
CN108469991A (zh) | 多媒体数据处理方法及装置 | |
CN104850316B (zh) | 电子图书字体调整方法及装置 | |
CN113778820A (zh) | 应用程序数据导出方法、设备、电子设备及存储介质 | |
KR20150024477A (ko) | 전자 장치 및 전자 장치에서 컨텐츠 제공 방법 | |
US11700432B2 (en) | Method and apparatus for signaling and storing grouping types in an image container file | |
KR20050030711A (ko) | 바코드 인식을 이용한 멀티미디어 컨텐츠 재생 기능을가지는 무선통신단말기 및 그 방법 | |
WO2024051394A1 (zh) | 视频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN110119380A (zh) | 一种可缩放矢量图文件的存储、读取方法及装置 | |
KR101371125B1 (ko) | 템플릿 기반 멀티 콘텐트 변환 장치 및 방법 | |
CN116055799B (zh) | 多轨道视频编辑方法、图形用户界面及电子设备 | |
CN113516737B (zh) | 动画转换方法、装置及智能设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |