基于高通手机平台汉字显示解决方案

[09-13 16:47:07]   来源:http://www.88dzw.com  信息显示与光电技术   阅读:8186

文章摘要:由于汉字的Unicode编码范围为u4E00~u9FA5和uF900~uFA2D,如果不在这个范围内就不是汉字了。为了讨论方便,这里考虑汉字Unicode编码范围为u4E00~ugFA5,总计有20 901个汉字,他们是连续编码的。16*16汉字字库BMP文件格式描述如下:从上面的存储结构可知,他实际就是一幅BMP格式的汉字字库图片,这幅BMP图片就是汉字字符集的二进制表示,他是从BMP图片格式转换过来的。这里每个字符字模对应BMP图片中一个图片片,字模存储方式与屏幕显示方式是一致的。4 基于BMP文件存储结构汉字显示实现实现本地汉字显示较早的一种方案基于Native UI,他不需依赖Brew

基于高通手机平台汉字显示解决方案,标签:显示及光电,光电显示技术,http://www.88dzw.com

  由于汉字的Unicode编码范围为u4E00~u9FA5和uF900~uFA2D,如果不在这个范围内就不是汉字了。为了讨论方便,这里考虑汉字Unicode编码范围为u4E00~ugFA5,总计有20 901个汉字,他们是连续编码的。

16*16汉字字库BMP文件格式描述如下:

  从上面的存储结构可知,他实际就是一幅BMP格式的汉字字库图片,这幅BMP图片就是汉字字符集的二进制表示,他是从BMP图片格式转换过来的。这里每个字符字模对应BMP图片中一个图片片,字模存储方式与屏幕显示方式是一致的。

4 基于BMP文件存储结构汉字显示实现

  实现本地汉字显示较早的一种方案基于Native UI,他不需依赖Brew显示接口。目前较多的汉字显示方案会涉及到Brew显示接口,常见汉字显示解决方案为:

  (1) 基于Native UI方案,实现汉字显示。完全自己开发一套点阵存储、点阵获取、点阵显示、汉字显示函数,使用者使用特定的汉字显示函数把汉字显示出来。该方法具有最大的灵活性,甚至不理睬Brew任何显示接口机制,直接在上层组件里实现,但这种方法使程序可移植性比较差,对第三方应用程序汉字显示支持也不方便。

  (2) 基于Brew方案,实现汉字显示。自己开发点阵存储、点阵获取、点阵显示,改造Brew的显示接口函数,使其能判断汉字码,一旦判断出汉字码,则使用自己开发的点阵获取、点阵显示等把汉字显示出来。然后把该自己开发的显示函数绑接到Brew显示接口上。该方法对点阵的操作更加灵活,工作量较大,开发周期较长,这种方法比较适用已有成熟的点阵操作方法开发者。

  这里利用Brew对BMP文件格式的支持,使用BMP文件格式实现对汉字的点阵存储、点阵获取、点阵显示的全过程,并使用Brew的显示函数实现汉字码到汉字显示。这种方法尽可能地使用了Brew系统现有的字符显示参考设计和已有的显示接口机制,开发周期较短,是最根本的解决方法,他使得Brew的其他上层应用模块能很方便实现汉字显示。这种方法使程序通用性好,可移植性强,支持第三方应用程序开发也较方便等特点。

  为了支持第三方软件厂商集成不同国家文字显示,高通手机平台提供一个绑定显示接口和对应的实现部分的接口函数,通过这个函数就可以把各种不同文字类型显示方式绑定到Brew统一的显示接口上,软件厂商只需要根据具体文字的显示方式实现具体的接口函数即可。这个接口如下:

各个参数介绍如下

IFont**ppif:汉字接口函数;

const uint16*pwGlyphs:汉字码表;

int cntGlyphs:汉字总数目;

const char*pbyBitmap:用BMP表示的汉字字库;

int cbBitmap:用BMP表示的汉字字库总的字节数目;

int xCharWid:每个汉字宽度;

int yCharHeight:每个汉字高度;

int yCharDescent:点阵打点开始位置在baseline之下的偏移;

uint16 wUndefGlyph:未定义的ASCII字符数目;

int nHalfChars:ASCII字符数目;

UTFONTTYPE FontType:汉字类型。

为了实现BMP文件格式存储结构字库的汉字显示方式,主要工作集中于下面两个方面:

(1) 定义创建字体实例接口函数

  在Brew方案中,上层应用模块都是通过ID创建字体实例,这里可以按照如下方式定义创建字体接口函数。

上一页  [1] [2] [3]  下一页


Tag:信息显示与光电技术显示及光电,光电显示技术信息显示与光电技术

《基于高通手机平台汉字显示解决方案》相关文章

分类导航
最新更新
热门排行