本发明涉及计算机技术领域,尤其涉及嵌入式图像领域,具体是指一种嵌入式设备中实现多语言文本显示处理的系统及其方法。
背景技术:
一般显示屏的嵌入式设备除显示图片外,还会显示文本,且会根据本地化要求要显示不同语言的文本。随着嵌入式设备显示屏尺寸的增加和显示内容的复杂化,简单地取字符位图再拼接的方法效率较低,且容易出错。
技术实现要素:
本发明的目的是克服了上述现有技术的缺点,提供了一种效率高、错误率低、适用范围较为广泛的嵌入式设备中实现多语言文本显示处理的系统及其方法。
为了实现上述目的,本发明的嵌入式设备中实现多语言文本显示处理的系统及其方法如下:
该嵌入式设备中实现多语言文本显示处理的系统,其主要特点是,所述的系统包括:
文本管理模块,用于预存故障码对应的不同语言的字符串,并提供根据故障码和语言查询字符串的接口;
语言管理模块,用于处理语言和字体的对应关系,并根据当前设置的语言从字体管理模块中取出字体;
字体管理模块,用于预存字体列表,并提供根据字体标识码查询字体的接口;
显示管理模块,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于依次调用模块接口,将文本转换为字符图像拼接后的整图,并传输至显示设备驱动。
较佳地,所述的显示管理模块包括:
图像装载单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于将文本对应的字符串逐个寻找并装载对应的字符图像;
图像拼合单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于按照显示区域的尺寸拼合图像。
较佳地,所述的文本管理模块通过折半查找算法查找语言和字体的对应关系。
较佳地,所述的字体管理模块的字体列表包含字符图像,所述的字符图像按对应字符的unicode码排列。
该基于上述系统实现嵌入式设备中的多语言文本显示处理的方法,其主要特点是,所述的方法包括以下步骤:
(1)根据标签id利用二分查找法查询标签;
(2)根据语言取出标签对应的字符串;
(3)语言管理模块根据需求遍历字符串列表的字符,字体管理模块查询字符对应的字符图像;
(4)根据字符图像的属性将字符图像数据复制到文本显示区对应的显存中;
(5)调用显示驱动将拼合而成的内容在显示屏上显示。
采用了本发明的嵌入式设备中实现多语言文本显示处理的系统及其方法,不仅在空间和时间消耗上有优势,还可以方便于其它模块集成,数组是固定的,可以利用pc软件自动提前生成,使得软件开发和需求变更十分方便,从而具有更广泛的应用范围。
附图说明
图1为本发明的嵌入式设备中实现多语言文本显示处理的系统的结构图示意图。
图2为本发明的嵌入式设备中实现多语言文本显示处理的系统的文本管理模块结构示意图。
图3为本发明的嵌入式设备中实现多语言文本显示的方法的字符图像数据查找示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该嵌入式设备中实现多语言文本显示处理的系统,其中包括:
文本管理模块,用于预存故障码对应的不同语言的字符串,并提供根据故障码和语言查询字符串的接口;
语言管理模块,用于处理语言和字体的对应关系,并根据当前设置的语言从字体管理模块中取出字体;
字体管理模块,用于预存字体列表,并提供根据字体标识码查询字体的接口;
显示管理模块,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于依次调用模块接口,将文本转换为字符图像拼接后的整图,并传输至显示设备驱动。
作为本发明的优选实施方式,所述的显示管理模块包括:
图像装载单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于将文本对应的字符串逐个寻找并装载对应的字符图像;
图像拼合单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于按照显示区域的尺寸拼合图像。
作为本发明的优选实施方式,所述的文本管理模块通过折半查找算法查找语言和字体的对应关系。
作为本发明的优选实施方式,所述的字体管理模块的字体列表包含字符图像,所述的字符图像按对应字符的unicode码排列。
本发明的该基于上述系统实现嵌入式设备中的多语言文本显示处理的方法,其中包括以下步骤:
(1)根据标签id利用二分查找法查询标签;
(2)根据语言取出标签对应的字符串;
(3)语言管理模块根据需求遍历字符串列表的字符,字体管理模块查询字符对应的字符图像;
(4)根据字符图像的属性将字符图像数据复制到文本显示区对应的显存中;
(5)调用显示驱动将拼合而成的内容在显示屏上显示。
本发明的具体实施方式中,提出一种通用的嵌入式设备中多语言文本显示方法,能够占用较少资源的情况下快速处理文本信息,并且能够与既有的嵌入式软件方便地整合。其架构使得利用pc软件自动生成文本显示的代码,加快了嵌入式软件的开发速度。本技术方案中的lable指标签,labelid指标签标识,glyph指字符图像,glyphdata指字符图像数据,glyphlist指字符图像列表,labelmanager为标签管理器。
本发明克服了上述现有技术的缺点,提出一种通用的嵌入式设备中多语言文本显示方法,包括:
文本管理模块,预存了文本对应的不同语言下的字符串,并提供根据文本和语言查询字符串的接口;
字体管理模块,预存了字体列表,并提供根据字体标识码查询字体的接口;
语言管理模块,处理语言和字体的对应关系,并根据当前设置的语言从字体管理模块中取出字体;
显示管理模块,依次调用其它模块的接口,将文本转换为字符图像并装载,经拼接后的整张图像放到显存中,交付给显示设备驱动用于显示。
文本管理模块维护了文本和语言的对应关系。查找对应关系时使用了折半查找算法,加快了查询速度,满足嵌入式设备对时间的要求。
字体管理模块只保留了满足文本显示的最小字符集合,降低了存储空间。并且,字体中的字符图像按对应字符的unicode码排列,从而可以使用折半算法查找,加快了查询速度。从而满足嵌入式设备对存储空间和时间的要求。
语言管理模块将语言与字体绑定,使产品本地化极为便利。
显示管理模块将文本对应的字符串逐个寻找并装载对应的字符图像,并按照显示区域的尺寸拼合图像。
该通用的嵌入式设备中多语言文本显示方法中,文本管理模块预存了label列表,1个label的示意图如图2所示,其定义如下:
label1={labelid1,“发动机转速高”,“enginespeedoverhigh”,…}
label2={labelid2,“转速传感器故障”,“rotationspeedsensorfailure”,…}
其中,所有label中字符串的个数相同,均取决于显示系统支持的语言数。labelid按升序或降序排列,查找该label时可使用二分查找法提高速度。
该通用的嵌入式设备中多语言文本显示方法中,字体管理模块从文本管理模块的label列表中统计出每种语言的最小字符集,并只预存了最小字符集中字符的图像数据glyphdata。字体管理模块定义了glyph,用以描述一个字符:
glyph={glyphunicode,size,offset,glyphdata,…}
以及一个glyph列表glyphlist。
该通用的嵌入式设备中多语言文本显示方法中,语言管理模块维护语言和glyphlist的对应关系,并能根据语言返回对应的glyphlist。
该通用的嵌入式设备中多语言文本显示方法中,显示管理模块执行如下步骤完成图像的拼接:
(1)根据labelid利用二分查找法在labelmanager中查询到该label。
(2)根据语言取出该label对应的字符串。
(3)在语言管理模块中找到glyphlist,根据客户显示需求遍历字符串列表的字符,在字体管理模块中找到字符对应的glyph,如图3所示。
(4)根据glyph的属性将glyphdata复制到文本显示区对应的显存中。
(5)调用显示驱动将拼合而成的内容显示到显示屏上。
此外,本方法还有如下特点:
(1)文本管理模块中label按labelid升序或降序排列,从而应用快速的二分查找法减少时间开销。
(2)字体管理模块预存了最小字符集,对于大字符集语言(如汉语和日语)能起到较好的过滤作用,从而节约存储空间和搜索范围。
(3)字体管理模块中的glyphlist按glyphunicode升序或降序排列,从而应用快速的二分查找法减少时间开销。
(4)除显示管理模块中的label文本列表需要更新外,其它的列表都可预先使用pc软件生成。
本发明的基于显示故障码文本的应用的具体实施例如下,该实施例使用标准c语言实现。
文本管理模块定义如下数据结构:
1、所有字符串
uint16s1={0x53d1,0x52a8,0x673a,0x8f6c,0x901f,0x9ad8,0x00}//发动机转速高
uint16s2={0x65,0x6e,0x67,0x69,0x65,0x20,0x53,0x70,0x65,0x65,0x64,0x20,0x6f,0x76,0x65,0x72,0x20,0x68,0x69,0x67,0x69,0x00}//enginespeedoverhigh…,
其中所有字符串以0x00结尾
2、所有label数组
label1={0x1fbe8,s1,s2};
label2={0x1fbe6,s5,s12}
label3={0x8110f,s13,s18}
…,
其中s1,s5,s13…代表language1对应的字符串,s2,s12,s18…代表languag2对应的字符串,依次类推。
字体管理模块的一个字符对应一个glyph。字体是位图格式,位深为1。以字体为单位划分为不同的编译单元,定义如下数据结构:
3、单个字符的bitmap数据
font1_34[]={0x50,0x50,0x50}
font1_39[]={0x40,0x40,0x40}
…
2font下所有字符的数组为font_t结构体:
structfont_t{uint16unicode,uint16size,sint16offsetx,sint16offsety,font1_34…}
语言管理模块可使用switch-case硬编码实现语言和字体的对应关系,即通过languageid寻找到一个指向font_t结构体的指针。
显示管理模块使用如下方案实现:
(1)匹配label;
利用二分查找法遍历label数组,查找labelid匹配的label;
(2)匹配label对应的bitmap;
根据语言管理模块的对应关系找到字符串str和font;
对于str中的每个字符,根据字体管理模块找到对应的glyph.
(3)拼合bitmap;
根据label在显示界面中的相对位置和glyph的size、offset等信息将bitmap拷贝到对应的显存。
(4)将拼合后的图像交付给显示驱动。
该系统充分考虑了存储空间、内存占用空间、显存占用空间和渲染时间,可以满足嵌入式设备显示大量文本的空间和时间开销,并可以快速地更新文本库,大大减少了开发工作量,可广泛地用于仪表、车载终端、手持式诊断仪等嵌入式设备的文本显示。
采用了本发明的嵌入式设备中实现多语言文本显示处理的系统及其方法,不仅在空间和时间消耗上有优势,还可以方便于其它模块集成,数组是固定的,可以利用pc软件自动提前生成,使得软件开发和需求变更十分方便,从而具有更广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
1.一种嵌入式设备中实现多语言文本显示处理的系统,其特征在于,所述的系统包括:
文本管理模块,用于预存故障码对应的不同语言的字符串,并提供根据故障码和语言查询字符串的接口;
语言管理模块,用于处理语言和字体的对应关系,并根据当前设置的语言从字体管理模块中取出字体;
字体管理模块,用于预存字体列表,并提供根据字体标识码查询字体的接口;
显示管理模块,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于依次调用模块接口,将文本转换为字符图像拼接后的整图,并传输至显示设备驱动。
2.根据权利要求1所述的嵌入式设备中实现多语言文本显示处理的系统,其特征在于,所述的显示管理模块包括:
图像装载单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于将文本对应的字符串逐个寻找并装载对应的字符图像;
图像拼合单元,与所述的文本管理模块、字体管理模块和语言管理模块均相连接,用于按照显示区域的尺寸拼合图像。
3.根据权利要求1所述的嵌入式设备中实现多语言文本显示处理的系统,其特征在于,所述的文本管理模块通过折半查找算法查找语言和字体的对应关系。
4.根据权利要求1所述的嵌入式设备中实现多语言文本显示处理的系统,其特征在于,所述的字体管理模块的字体列表包含字符图像,所述的字符图像按对应字符的unicode码排列。
5.一种基于权利要求1所述的系统实现嵌入式设备中的多语言文本显示处理的方法,其特征在于,所述的方法包括以下步骤:
(1)根据标签id利用二分查找法查询标签;
(2)根据语言取出标签对应的字符串;
(3)语言管理模块根据需求遍历字符串列表的字符,字体管理模块查询字符对应的字符图像;
(4)根据字符图像的属性将字符图像数据复制到文本显示区对应的显存中;
(5)调用显示驱动将拼合而成的内容在显示屏上显示。
技术总结