System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及显示处理,例如涉及一种用于字体渲染的方法及装置、嵌入式设备和存储介质。
技术介绍
1、目前,在嵌入式设备上使用矢量字库,提高ui(人机交互界面,user interface)显示效果,已经成为产品必须要支持的功能。但是由于存储空间的限制,在单片机嵌入式设备上的硬件资源都是有限的,若矢量字库无法保存在高速内存中,就会出现字体渲染速度慢的问题。
2、随着技术的发展,在嵌入式设备上使用矢量字库,已经成为一种趋势,可以提高ui显示效果。相关技术公开了一种基于svg(可缩放矢量图形,scalable vector graphics)字库的字幕渲染方法,包括:获取待显示字幕,其中,所述待显示字幕包括多个待显示文字以及每个所述待显示文字对应的目标字体;加载svg字库;针对多个目标字体中每一个目标字体,获取所述svg字库中该目标字体对应的字体字形映射表;根据字体字形映射表对所述待显示字幕进行渲染。
3、在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
4、矢量字体渲染是一个复杂的数学计算过程,需要频繁从svg字库读取字体数据,只有数据读取速度较快时,才能保证字体渲染速度,ui刷新效果才不会撕裂。在低端的单片机嵌入式设备上,高速内存存储空间较小,往往无法存储矢量字库,只能将矢量字库保存在低速的flash(闪存存储器)上,此时,字体渲染速度将非常慢,无法满足使用矢量字库的要求。
5、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领
技术实现思路
1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
2、本公开实施例提供了一种用于字体渲染的方法及装置、嵌入式设备和存储介质,以提高字体渲染的速度。
3、在一些实施例中,所述方法包括:获取需要进行字体渲染的第一字符集;在影子字库的第一数据表中,读取第一字符集中每个文字对应的字符编码;其中,影子字库为矢量字库,保存在高速随机存取存储器中,包括第一数据表和第二数据表;根据字符编码在影子字库的第二数据表中读取字体渲染数据;根据字体渲染数据进行字体渲染。
4、可选地,所述第一数据表包括:cmap表,包括所有文字的字符索引;loca表,包括所有文字的字符编码,字符编码包括所有文字的字体渲染数据在第二数据表中的位置信息。
5、可选地,所述在影子字库的第一数据表中,读取第一字符集中每个文字对应的字符编码,包括:根据第一字符集中的文字信息,在cmap表中获取对应文字的字符索引;根据字符索引,在loca表中获取对应文字的字符编码。
6、可选地,所述第二数据表包括:glyf表,包括影子字库中所有文字的字体渲染数据。
7、可选地,所述根据字符编码在影子字库的第二数据表中读取字体渲染数据,包括:根据字符编码在glyf表中查找字体渲染数据;从glyf表中读取字体渲染数据。
8、可选地,所述根据字符编码在影子字库的第二数据表中读取字体渲染数据,还包括:若根据字符编码在glyf表中不存在对应的数据,则需要根据字符编码在全矢量字库的glyf表中查找数据;其中,全矢量字库的glyf表保存在低速闪存存储器中,包括全矢量字库中所有文字的字体渲染数据;从全矢量字库的glyf表中读取字体渲染数据。
9、可选地,在读取第一字符集中每个文字对应的字符编码前,还包括:在第一字符集和一级汉字集中,选取所有数据,建立影子字符集;根据影子字符集,从全矢量字库中抽取数据,建立影子字库;将影子字库保存到高速随机存取存储器中。
10、在一些实施例中,所述用于字体渲染的装置包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如上述的用于字体渲染的方法
11、在一些实施例中,所述嵌入式设备包括:嵌入式设备本体;以及如上述的用于字体渲染的装置,被安装于所述嵌入式设备本体。
12、在一些实施例中,所述存储介质存储有程序指令,所述程序指令在运行时,执行如上述的用于字体渲染的方法
13、本公开实施例提供的用于字体渲染的方法及装置、嵌入式设备和存储介质,可以实现以下技术效果:
14、由于影子字库占用内存较小,因此能够将影子字库存储在高速随机存取存储器中。所以,在需要进行字体渲染时,即可调用保存在高速随机存取存储器中的影子字库,从而,可以在200m的主频速度下进行数据的读取和传递。与低速flash设备20m的主频速度相比,本公开实施例可以更快的读取到字体渲染数据,提高字体渲染速度。
15、以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
本文档来自技高网...【技术保护点】
1.一种用于字体渲染的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述第一数据表包括:
3.根据权利要求2所述的方法,其特征在于,所述在影子字库的第一数据表中,读取第一字符集中每个文字对应的字符编码,包括:
4.根据权利要求1所述的方法,其特征在于,所述第二数据表包括:
5.根据权利要求4所述的方法,其特征在于,所述根据字符编码在影子字库的第二数据表中读取字体渲染数据,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据字符编码在影子字库的第二数据表中读取字体渲染数据,还包括:
7.根据权利要求1至6任一项所述的方法,其特征在于,在读取第一字符集中每个文字对应的字符编码前,还包括:
8.一种用于字体渲染的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至7任一项所述的用于字体渲染的方法。
9.一种嵌入式设备,其特征在于,包括:
10.一种存储介质,存储有程序指令,其特征在于,所述程序
...【技术特征摘要】
1.一种用于字体渲染的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述第一数据表包括:
3.根据权利要求2所述的方法,其特征在于,所述在影子字库的第一数据表中,读取第一字符集中每个文字对应的字符编码,包括:
4.根据权利要求1所述的方法,其特征在于,所述第二数据表包括:
5.根据权利要求4所述的方法,其特征在于,所述根据字符编码在影子字库的第二数据表中读取字体渲染数据,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据字符编码在影子字...
【专利技术属性】
技术研发人员:黄学佳,邓邱伟,李莉,尹飞,李新,韩彪,
申请(专利权)人:青岛海尔智能家电科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。