在图形界面上显示文字的方法和系统技术方案

技术编号:4730809 阅读:352 留言:0更新日期:2012-04-11 18:40
一种在图形界面上显示文字的方法,包括以下步骤:接收需要显示的字符编码及字体信息;查找该字符编码对应的元素;创建与该元素对应的对象;依据所述字体信息写字获得纹理,将所述纹理赋给所述对象;将所述纹理绘制到屏幕上。上述在图形界面上显示文字的方法中,根据字体信息写字获得纹理,通常,操作系统自带有一些字体,根据这些字体再写字获得纹理,将纹理绘制到屏幕上进行显示,不需要加载字库,可以提高启动速度。此外,还提供了一种在图形界面上显示文字的系统。

【技术实现步骤摘要】
在图形界面上显示文字的方法和系统
本专利技术涉及计算机
,尤其是计算机技术中在图形界面上显示文字 的方法和系统。
技术介绍
计算机中图形界面的使用大大提高了人们在操作计算机时的交互性。在图 形界面中,除了图形本身外,通常也需要在图形上显示文字,以表达无法或很 难用图形表示的意思。例如在游戏平台的界面中显示各个用户的用户名就需要 在图形界面中显示文字。传统的图形界面中显示文字需要依赖字库,图形界面启动时,会加载对应 的字库,把字库纹理保存在内存中。通常, 一个字库就是一个位图丈件,位图 中保存着字库中文字的紋理。当需要绘制某个字时(假设是字"腾"),就会根 据"腾"字的字符编码,转换为对应一个坐标,该坐标就是"腾"字在位图里 面的坐标,然后引擎会根据该坐标从字库的紋理取出"腾"字的紋理,然后将 该紋理绘制在屏幕上,这样就在屏幕上写了一个"腾"字,实现了在图形界面 上显示文字。由于在图形界面中显示文字需要依赖字库, 一个字库文件通常都会好几兆, 而且字体越大,相应的位图也越大,字库文件也就越大,导致釆用图形界面的 软件占用存储空间较大。又因为是从字库文件里面取紋理进行写字,所以字库 文件里面的字体和字号决定了能绘制的字体和字号,需要绘制几种字体和字号, 就需带上对应的几个字库文件,导致可使用的字体和字号数量有限。并且,在 启动时需要加载字库,字库文件多而且较大的话,会对启动速度造成影响,而 通常在一次使用中不会写很多不同字,所以字库文件里面的大部分纹理都没用 到,造成了内存的浪费。
技术实现思路
有鉴于此,有必要提供一种提高启动速度的在图形界面上显示文字的方法。 此外,还提供了 一种提高启动速度的在图形界面上显示文字的系统。一种在图形界面上显示文字的方法,包括以下步骤接收需要显示的字符 编码及字体信息;查找该字符编码对应的元素;创建与该元素对应的对象;依 据所述字体信息写字获得紋理,将所述的紋理赋给所述对象;将所述紋理绘制 到屏幕上。一种在图形界面上显示文字的系统,包括 输入模块,用于接收需要显示的字符编码及字体信息; 存储模块,用于存储与所述字符编码对应的元素;处理模块,与所述输入模块及存储模块相连,用于根据所述字符编码及字 体信息在图形界面上显示文字,所述处理模块包括对象创建单元,用于创建与所述元素对应的对象;图形设备接口单元,用于依据所述字体信息写字获得紋理并将所述的纟文理赋给所述对象;绘制单元,用于将所述紋理绘制到屏幕上。上述在图形界面上显示文字的方法和系统中,根据字体信息写字获得紋理, 通常,操作系统自带有一些字体,根据这些字体再写字获得紋理,将紋理绘制 到屏幕上进行显示,不需要加载字库,可以提高启动速度。附图说明图1为第一实施方式的在图形界面上显示文字的方法的流程图; 图2为第二实施方式的在图形界面上显示文字的方法的流程图; 图3为在图形界面上显示文字的系统的模块图。具体实施方式在以下实施方式中,根据字体信息写字获得紋理,通常,操作系统自带有 一些字体,根据这些字体再写字获得紋理,将紋理绘制到屏幕上进行显示,不5需要加载字库,可以^^高启动速度。一种在图形界面上显示文字的方法,如图l所示步骤S102,接收需要显示的字符编码及字体信息。需要在图形界面上显示 的文字在计算机内是以字符编码的形式进行传输和存储的,在将其显示到图形 界面上之前需要根据该文字的字体信息生成紋理,即与字体大小对应的位图, 便于在图形界面上显示。字体信息可以是默认的字体信息,也可以用户自定义 的字体信息。步骤S104,查找该字符编码对应的元素。本实施方式中,字符编码采用统 一码(UNICODE )。因为每个UNICODE字符编码占用的是16位,所以可以将 一个UNICODE字符编码的高8位区域的值对应到数组的0~255行,低8位区 域的值可以对应到数组的0~255列,这样,每个UNICODE字符都可以唯一对 应到数组的某个元素。当接收到一个需要显示的UNICODE字符时(假设为 "腾"),"腾"字对应的UNICODE编码为0X817E,其高8位转为十进制是129, 低8位转为十进制是126,所以"腾"字就对应上面数组的第129行第126列元 素(下面称为A元素)。步骤S106,创建与该元素对应的对象。所述对象包含字体信息部分、紋理 信息部分和指向其他对象的指针。对象刚创建时,字体信息部分、紋理信息部 分和指向其他对象的指针都是空的。对象创建后,所述字体信息赋给字体信息部分,例如,需要显示的字体为宋体的"腾"字,则对象的字体信息部分即保 存宋体的代码。步骤S108,依据所述字体信息写字获得紋理将所述紋理赋给所述对象。通 常,操作系统自带有一些字体,根据这些字体再写字荻得紋理,将紋理绘制到 屏幕上进行显示,不需要加载字库,可以提高启动速度。具体地,步骤S108分 为如下步骤在内存设备内容(Device Content)选用所述字体信息用图形设备接口 (Graphics Device Interface)的格式化文本函数(DrawText)写字,获得文字的纟丈 理。例如在内存设备内容选用宋体用图形设备接口的格式化文本函数写"腾" 字,获得"腾"字的紋理。然后,根据所述字体信息中的字体大小创建该字体大小的紋理,例如四号 字,則创建四号字大小对应的紋理,此时紋理是空白的。将内存设备内容上已经写好的字的紋理拷贝到所述创建的紋理上。因为该 内存设备内容是只创建一个的,需要反复用到,下次用到时会先清空该内存设 备内容的内容,所以写了之后需要拷贝到另外新创建的紋理上。将拷贝到创建的紋理上的字的紋理赋给对象的紋理信息部分。步骤S110,将所述紋理^^制到屏幕上。可以用DirectDraw的方法将该紋理 绘制到屏幕上,而DirectDraw绘制紋理是很高效的,也就是说,实现了在图形 界面上显示文字。进一步地,为了提高写字的速度,可以保存已经写好的文字的纟文理。在字 符编码对应的元素中设置多个对象,每个对象对应该字符编码,即该文字的一 种字体信息。如图2所示在步骤S104之后,还包括判断所述元素的指向是否为空的步骤(步骤S202 )。 如果所述元素的指向为空,则执行步骤S106,创建与该元素对应的对象。元素 的指向为空表明该元素对应的文字还未被使用过,即还未获得任何该文字的紋 理。在步骤S106中创建与该元素对应的对象后,需要将该元素指向该创建的对 象,表示该元素对应的文字已经使用过。如果所述元素的指向不为空,则进入 步骤S204。步骤S204,判断与该元素对应的对象中是否存在与所述字体信息相同的对 象,如杲不存在,则执行步骤S106,创建与该元素对应的对象的。如果存在, 则直接执行步骤S110,将所述紋理绘制到屏幕上。判断的方式为,将需要显示 的文字的字体信息与对象中的字体信息部分的字体信息进行比较,以判断是否 相同。由于同一文字通常可以有多种字体,因此,同一文字也可能创建多个对 象。对象中的指向其他对象的指针即可以用于形成链表。举例来说,元素可以 指向第一个创建的对象,第一个创建的对象中的指向其他对象的指针可以指向 第二个创建的对象,依此类推。在判断的过程中,可以依次判断需要显示的文 字的字体信息与元素已有对象中的字体信息部分的字体本文档来自技高网...

【技术保护点】
一种在图形界面上显示文字的方法,其特征在于,包括以下步骤: 接收需要显示的字符编码及字体信息; 查找该字符编码对应的元素; 创建与该元素对应的对象; 依据所述字体信息写字获得纹理,将所述纹理赋给所述对象; 将所述纹理绘制到屏幕上。

【技术特征摘要】

【专利技术属性】
技术研发人员:王彭城汤闻
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利