显示文字的方法和系统的制作方法

文档序号:6598685阅读:187来源:国知局
专利名称:显示文字的方法和系统的制作方法
显示文字的方法和系统
技术领域
本发明涉及计算机领域,尤其是涉及一种显示文字的方法和系统。背景技术
在一些小型设备中,尤其是手持移动终端中,都采用J2ME作为应用程序平台。 J2ME(Java 2 Micro Edition)是由SUN公司推出的广泛应用于小型设备的java应用平台, 以此为基础的应用程序可以大大扩充手持移动终端的功能。随着应用程序的增多,个性化的外观和操作界面也随之变得重要,其中比较重要的一个方面就是使用个性化的字体。传统的J2ME应用程序在开发时,只能使用终端设备提供的系统字体。要显示文字时,都是套用终端系统字体制作成图片文件,通过应用程序运行时载入图片来显示文字。以上显示文字的方法具有诸多问题,一是图片文件占用内存较多,如果需要显示的文字很多,内存太小时,程序可能无法高效运行甚至无法加载。二是无法显示事先未知的文字,如用户输入、从网络获取的文字等。

发明内容鉴于此,有必要针对传统的应用程序显示文字只能采用系统提供的字体存在的问题,提供一种能够显示自定义字体的显示文字的方法。—种显示文字的方法,包括如下步骤根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息;根据所述待显示文字的点阵信息显示文字。优选地,所述根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息的步骤包括读取字体文件并获取字体文件中每个文字的点阵信息;将每个文字的点阵信息的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量,将每个文字的常量以静态的数组变量的形式存储,且使文字的数组变量中的常量下标与所述位置信息一一对应。优选地,所述根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息的步骤具体为检索总字表, 获取待显示文字的位置信息;根据所述位置信息获取数组变量的下标,进而获取待显示文字对应的常量;将所述常量转换为待显示文字的点阵信息。优选地,还包括设置文字的大小的步骤设置多个字体文件,每个字体文件包含不同像素大小的文字的点阵信息;读取包含用户指定像素大小的文字的字体文件。优选地,根据所述点阵信息显示文字的步骤包括根据点阵信息的二进制位,在显示文字的区域中,将二进制位“ 1”或“0”对应的像素点显示为文字的颜色,相应地将二进制位“0”或“ 1,,对应的像素点显示为背景的颜色。此外还提供一种能够显示自定义字体的显示文字的系统。
一种显示文字的系统,包括字体文件存储模块,用于存储保存文字的点阵信息的字体文件;总字表存储模块,用于存储保存文字在所述字体文件中的位置信息的总字表; 点阵信息获取模块,用于根据待显示的文字获取所述位置信息并根据所述位置信息获取待显示文字的点阵信息;显示模块,用于根据所述待显示文字的点阵信息显示文字。优选地,还包括转换模块,读取字体文件并获取字体文件中每个文字的点阵信息、 读取总字表、将每个文字的点阵信息的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量,将每个文字的常量以静态的数组变量的形式存储,且使文字的数组变量中的常量下标与所述位置信息一一对应。优选地,所述点阵信息获取模块进行如下处理检索总字表,获取待显示文字的位置信息;根据所述位置信息获取数组变量的下标,进而获取待显示文字对应的常量;将所述常量转换为待显示文字的点阵信息。优选地,还包括设置模块,用于设置文字的大小。优选地,所述显示模块包括绘点单元,用于根据点阵信息的二进制位,在显示文字的区域中,将二进制位“1”或“0”对应的像素点显示为文字的颜色,相应地将二进制位 “0”或“ 1,,对应的像素点显示为背景的颜色。上述方法和系统通过使用程序内置的字体文件,可以使程序开发者使用自定义字体,提高了在使用不同风格字体方面的灵活性。并且通过文字的点阵信息来显示文字,相比制成图片显示,可以大大减少运行内存,且对于事先未知的字体也能根据字体文件实时显
7J\ ο

图1为一实施例的显示文字的方法流程图;图2为为用点阵信息表示文字的示意图;图3为一实施例的显示文字的系统结构示意图;图4为另一实施例的显示文字的系统结构示意图。
具体实施方式如图1所示,为一实施例的显示文字的方法流程图。该方法包括如下步骤S10:根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息。文字的点阵信息记录了形成文字时显示区域中的像素的状态信息,该状态信息表示该像素点上有笔画或没有笔画两种状态,所以每个像素的状态信息可以用一个二进制位 (bit)来存储,并且用“0”和“1”分别表示两种不同的状态。比如对于一个16*16像素大小的文字,则需要256bit存储该文字的点阵信息。如图2所示,为用点阵信息表示文字的示意图。该示例中,有笔画的像素点均用“1”表示该像素点的状态,没有笔画的像素点均用 “0”表示该像素点的状态。本实施例中,所有文字的点阵信息保存为一个字体文件。优选地,把常用文字的点阵信息保存为一个字体文件,可以减小字体文件的大小,节省存储空间。所有文字需要按照一定的规律进行组织,比如按照字典序进行编排,形成一个总字表。每个文字在总字表中的位置固定,因此总字表中包含的信息通常是文字的编码以及编号,文字的编码以通用的编码标准来存储或识别文字,文字的编号则用于指示该文字在总字表中的位置。该位置与字体文件中每个文字的点阵信息又是一一对应的。本步骤具体即为根据待显示文字的编码在总字表中获取待显示文字的位置信息,根据该位置信息从字体文件中得到待显示文字的点阵信息。S20 根据所述点阵信息在显示区域显示文字。根据点阵信息的二进制位,在显示文字的区域中,将二进制位“ 1”或“0”对应的像素点显示为文字的颜色,相应地将二进制位 “0”或“1”对应的像素点显示为背景的颜色。显示文字的区域与文字的大小一致,对如图2 所示的文字,显示区域占用16*16个像素。当把相应的像素点显示为文字的颜色或者背景颜色后,文字就被显示出来。在另一实施例中,上述实施例的基础上,还包括如下步骤读取字体文件并获取字体文件中所有文字的点阵信息;将每个文字的点阵信息的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量,将每个文字的常量以静态的数组变量的形式存储,且使文字的数组变量中的各个元素的下标与文字在总字表中的位置对应。由于文字在应用程序中的特殊性,其在程序开始运行时就要使用,而且在程序运行的整个周期都要用到。若每次在使用时都去读取字体文件,都会涉及文件读取操作,势必影响程序运行的效率。因此本实施例中采取将字体文件中所有文字的点阵信息都读取出来,然后将点阵信息的二进制位转换为常量并用静态数组变量进行存储,使字体文件常驻内存。在需要显示文字时,直接从内存读取,减少文件读取操作,提高了程序运行效率。比如对于16*16像素大小的文字,需要256bit存储,如果用64位长度的long型 (长整型)常量存储,则需要4个这样的long型常量。以图2中所示的文字为例,从左至右、 从上到下依次读取该文字的点阵信息的前64位,得到如下的二进制数0100000000001000 001 1011111111100 00010000000010001000001000001000。转换为 long 型十进制整数常量为461399937398135对56。余下3个常量按照上述同样的方法进行转换,那么4个long 型的十进制整数常量便可以包含该文字的所有信息。所有的文字的点阵信息读取到内存中,按照上述方法转换后,用一个静态的数组变量进行保存,并在程序整个运行期间常驻内存。当要显示文字时,根据总字表检索到待显示文字的位置信息,并根据该位置信息获取该数组变量的下标,从而得到相应文字的4个 long型常量,获取点阵信息。本实施例中,由于涉及将二进制位进行转换,而大多数常用文字的笔画都较少,因此可以用“1”来表示有笔画的像素点的显示,用“0”来表示没有笔画的像素点的显示。这样每个点阵信息中就可以包含较少的“1”而包含较多的“0”,可以减少运算。文字在程序开始时就要用到,且在程序运行的整个期间都要用到,因此在程序初始化时,把字体文件读取到内存,这样在应用中就不需要再有文件读取操作,载入程序比运行后再读入字体文件速度快得多。而在优选的实施方式中,字体文件一般仅包含了常用字的点阵信息。根据统计,中文汉字的常用字的数量在4800左右,对于14*14像素大小的文字,全部读取到内存中,占用的内存空间约为170KByte,是一个较小的量级。因此能够满足绝大多数终端设备对J2ME应用程序大小和性能的要求。在又一实施例中,还包括设置文字大小的步骤设置多个字体文件,每个字体文件包含不同像素大小的文字的点阵信息;读取包含用户指定像素大小的文字的字体文件。若需要显示不同大小的文字,则需要制作包含了不同点阵信息的字体文件,并在显示文字时,读取相应的字体文件。比如14*14像素大小的所有文字制作一个字体文件、 16*16像素大小的所有文字制作一个字体文件等等。用户指定像素大小后,程序读取相应的字体文件,即可实现设置文字大小的目的。如图3所示,为一实施例的显示文字的系统。该系统包括字体文件存储模块10、总字表存储模块20、点阵信息获取模块30以及显示模块40。字体文件存储模块10,用于存储保存文字的点阵信息的字体文件,优选地,字体文件仅保存常用字的点阵信息以节省存储空间。总字表存储模块20,用于存储保存文字在所述字体文件中的位置信息的总字表。点阵信息获取模块30用于检索总字表存储模块20,获得待显示文字的位置信息, 并根据该位置信息在字体文件存储模块10的字体文件中获取待显示文字的点阵信息。显示模块40用于根据所述点阵信息在显示区域显示文字。显示模块40包括绘点单元,用于根据点阵信息的二进制位,在显示文字的区域中,将二进制位“ 1”或“0”对应的像素点显示为文字的颜色,相应地将二进制位“0”或“1”对应的像素点显示为背景的颜色。如图4所示,在另一实施例中,还包括转换模块50,所述转换模块50读取文字的点阵信息,将每个文字的点阵信息中的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量。固定的长度可以根据需求设定,如可以是上述的能保存64位数据的long 型,也可视终端设备的具体情况设为保存32位数据的int型(整型)或保存16位数据的 short型(短整型)。每一个文字的点阵信息都可以保存为数个常量,如256bit的点阵信息能保存为4个long型、8个int型或者16个short型常量。上述的常量以静态的数组变量的形式存储。点阵信息获取模块30根据总字表存储模块20中的总字表确定待显示文字的位置信息,并根据该位置信息对应到数组变量的下标,获取待显示文字对应的常量,根据该常量还原点阵信息。由于数组变量可常驻于内存,在需要使用时即可直接读取,减少了对字体文件存储模块10中字体文件的读取操作, 因此能增加文字显示时的处理速度。进一步地,还包括设置模块60,用于设置文字的大小。预先在字体文件存储模块 10中内置多个字体文件,每个字体文件包含不同像素大小的文字的点阵信息。比如14*14 像素大小的所有文字制作一个字体文件、16*16像素大小的所有文字制作一个字体文件等等。在使用中读取字体文件存储模块10中包含用户指定像素大小的文字的字体文件。设置模块60即提供用户选择字体大小的选项,用户指定字体大小后,程序读取相应的字体文件由转换模块50进行处理。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种显示文字的方法,包括如下步骤根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息;根据所述待显示文字的点阵信息显示文字。
2.如权利要求1所述的显示文字的方法,其特征在于,所述根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息的步骤包括读取字体文件并获取字体文件中每个文字的点阵信息;将每个文字的点阵信息的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量,将每个文字的常量以静态的数组变量的形式存储,且使文字的数组变量中的常量下标与所述位置信息一一对应。
3.如权利要求2所述的显示文字的方法,其特征在于,所述根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息的步骤具体为检索总字表,获取待显示文字的位置信息;根据所述位置信息获取数组变量的下标,进而获取待显示文字对应的常量;将所述常量转换为待显示文字的点阵信息。
4.如权利要求1至3中任一项所述的显示文字的方法,其特征在于,还包括设置文字的大小的步骤设置多个字体文件,每个字体文件包含不同像素大小的文字的点阵信息;读取包含用户指定像素大小的文字的字体文件。
5.如权利要求1至3中任一项所述的显示文字的方法,其特征在于,根据所述点阵信息显示文字的步骤包括根据点阵信息的二进制位,在显示文字的区域中,将二进制位“1”或“0”对应的像素点显示为文字的颜色,相应地将二进制位“0”或“ 1”对应的像素点显示为背景的颜色。
6.一种显示文字的系统,其特征在于,包括字体文件存储模块,用于存储保存文字的点阵信息的字体文件;总字表存储模块,用于存储保存文字在所述字体文件中的位置信息的总字表;点阵信息获取模块,用于根据待显示的文字获取所述位置信息并根据所述位置信息获取待显示文字的点阵信息;显示模块,用于根据所述待显示文字的点阵信息显示文字。
7.如权利要求6所述的显示文字的系统,其特征在于,还包括转换模块,读取字体文件并获取字体文件中每个文字的点阵信息、读取总字表、将每个文字的点阵信息的二进制位依次读出并按照固定的长度将该点阵信息转换成数个常量,将每个文字的常量以静态的数组变量的形式存储,且使文字的数组变量中的常量下标与所述位置信息一一对应。
8.如权利要求7所述的显示文字的系统,其特征在于,所述点阵信息获取模块进行如下处理检索总字表,获取待显示文字的位置信息;根据所述位置信息获取数组变量的下标,进而获取待显示文字对应的常量;将所述常量转换为待显示文字的点阵信息。
9.如权利要求6至8中任一项所述的显示文字的系统,其特征在于,还包括设置模块, 用于设置文字的大小。
10.如权利要求6至8中任一项所述的显示文字的系统,其特征在于,所述显示模块包括绘点单元,用于根据点阵信息的二进制位,在显示文字的区域中,将二进制位“1”或 “0”对应的像素点显示为文字的颜色,相应地将二进制位“0”或“1”对应的像素点显示为背景的颜色。
全文摘要
本发明涉及一种显示文字的方法,属于计算机技术领域。该方法包括如下步骤根据程序内置的保存文字的点阵信息的字体文件和保存文字在所述字体文件中的位置信息的总字表获得待显示文字的点阵信息;根据所述待显示文字的点阵信息显示文字。此外还涉及一种根据上述方法显示文字的系统。上述方法和系统通过使用程序内置的字体文件,可以使程序开发者可以使用自定义字体,提高了在使用不同风格字体方面的灵活性。并且通过文字的点阵信息来显示文字,相比制成图片显示,可以大大减少运行内存,且对于事先未知的字体也能根据字体文件实时显示。
文档编号G06F3/14GK102169423SQ20101011664
公开日2011年8月31日 申请日期2010年2月26日 优先权日2010年2月26日
发明者周建忠 申请人:腾讯科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1