嵌入式矢量字体变色处理技术及实现

2010-09-04 06:08黄秀珍何加铭邰晓英
关键词:字符字体短信

黄秀珍,何加铭,邰晓英

(宁波大学通信技术研究所,浙江宁波3152118)

0 引 言

短信作为一种使用方便、费用低廉的即时通信方式,在众多通信手段中脱颖而出,得到越来越多的应用。在嵌入式系统中,比如手机,用户通过手机的短信模块可以方便地收发短信,类似的一些由单片机或者嵌入式MCU为核心构建的嵌入式系统中也设置了短信模块。随着短信的广泛应用,用户不再满足于颜色单一的点阵汉字,而是希望使用有渐变效果的矢量字体的彩色显示,并且短信的颜色允许发送人来设置,即收信人的短信能够显示出发信人所设置的字体颜色、大小、形状等格式的短信内容。但是,目前处理能力较低、存储较小的嵌入式系统受制于其低处理及低存储能力,无法实现有渐变效果的矢量字体的彩色显示[1]。为了克服以上现有技术的缺点,本文提出了一种嵌入式矢量字体变色处理方法,该方法能够在低处理能力以及低存储能力的嵌入式系统中实现彩色短信的收发和显示[2]。

1 变色处理原理

本文提出的嵌入式矢量字体变色处理方法,具体过程如下。短信收发双方使用相同的短信编码方式,在用户写短信时,该用户系统将短信的颜色信息加入到短信的编码信息中,然后将编码信息发送给对方系统,对方系统接收到上述编码信息后,解析得到相应的颜色信息和短信内容,再执行矢量字体的变色处理流程来处理短信内容中的所有字符。

具有颜色信息的短信的传递过程如图1所示。首先,短信发送方在编写短信时设置了短信的颜色,发送时发送方会将短信内容和设置的颜色信息转化为待发送编码。短信编码信息的内容包括:服务中心号码、收信人手机号码和短信内容等。在发送方发送短信时,短信编码中的前三位对应字体颜色。

短信经过短信服务中心到达接收方时,接收方对短信编码信息解码,根据短信内容的前三位,得到相应的颜色设置,其余部分则为短信内容的文本信息。接收方对当前短信颜色进行处理。本方法的短信颜色信息传递过程,不改变短信编码中的其它内容和短信的传输编码方式,只在短信内容的前几位中加入了颜色设置信息,不会影响短信编码在信息中心的传递。

图1 具有颜色信息的短信传递过程

矢量字体的变色处理的主要流程如图2所示。当用户要显示短信中的字符时,嵌入式系统首先获得该字符的编码,如果不是Unicode编码,则做编码转换,再调用字体引擎得到该字符每个点的相应的256级灰度信息,即浓度信息,把它存入数组中。

图2 矢量字体的变色处理主要流程

根据短信字符的颜色信息,在嵌入式系统的字体显示模块中对所得的的浓度信息做以下处理。当用户不需要改变颜色时,将得的每个点的灰度值直接设为其红绿蓝3个分量的值即可。如果用户需要改变颜色,就需要根据设置的字体颜色和灰度信息将每个点的数据转换为彩色信息。对字符的轮廓的不同点的信息要进行不同的处理。轮廓主干上的点,浓度值最接近最大值255,基本描述了整个轮廓的核心,将这些点其颜色设置为用户设置的字体颜色。字符的轮廓边缘的点,其浓度值在主干点浓度值和零之间,与主干上的点颜色有一种过渡效果。取得所有边缘点,根据字体颜色和这些点的浓度信息运用颜色渐变算法,得到颜色信息。

一般嵌入式系统中使用的是点阵字体解码器,当需要显示矢量字体时,需修改其内在解码机制以适应显示。若系统中有矢量字体解码器,直接显示进行颜色处理后的字符。

2 颜色渐变算法

2.1 算法概述

在实际运用中,可以利用多种颜色渐变算法,如线性内插法、线性倒插法、余弦插值法[3]。线性内插法是最常见的颜色渐变方法,线性倒插法是一种颜色有鲜明对比的颜色渐变方法,余弦插值法得出的渐变效果具有非常好的平滑效果。

设起始颜色为F,终止颜色为E,需要通过算法求取从F到E的所有中间位置P的渐变颜色M。为此,首先将F和E在RGB空间分解为红绿蓝分量,分别设为FR、FG、FB、ER、EG和EB。设渐变颜色M 的红绿蓝分量分别为MR、MG、MB。将从F到E的实际需要表达的屏幕像素长度归一化为1,则所有中间位置P∈[0,1],可见P为浮点数。

(1)线性内插法(Linear interpolation),各个红绿蓝分量的算法为:

(2)线性倒插法(Reverse linear interpolation),各个红绿蓝分量的算法为:

(3)余弦插值法(Cosine interpolation),各个红绿蓝分量的算法为:

以上渐变颜色算法实际应用中最为常用的算法。

2.2 优化算法及模型

在渐变颜色处理中,根据设置颜色和这些点的浓度信息运用我们的颜色渐变算法得到轮廓边缘上点的颜色信息[4]。有起始颜色和浓度信息,没有设定终止颜色。每个颜色分量小于255,因此所得颜色为在起始颜色和255之间的一个值。根据其接近255的值的程度(通过浓度信息判断),而给出一种设置方法。设置颜色为S,浓度信息为P,p∈[0,255],结果色为D。S和D的红绿蓝3个分量分别为SR、SG、SB,DR、DG、DB。则优化改进后的颜色渐变算法公式为:

3 仿真验证及总结

首先,在MTK模拟器上测试。运行环境为:PC机CPU(2.17GHz),内存1GB,软件平台VC6.0。在模拟器上,字体显示效果如图3所示。

图3 彩色渐变显示效果图

图3 为彩色渐变显示效果,图3中每个字符都具有边缘渐变效果。且为24位彩色抗锯齿显示。字符显示时,未有延迟现象。在真机上测试时,可以实现短信双方字体颜色的传递。

4 结束语

本文提出的嵌入式矢量字体变色处理方法,能够实现在低处理能力以及低存储能力的嵌入式系统中彩色短信的收发和显示,且不影响短信在信息中心的传递。同时,在彩色矢量字体渐变显示时,改进后的颜色渐变算法,实现了彩色渐变矢量字体的24位无锯齿显示。在MTK平台测试,字体显示没有延迟,且具有边缘渐变效果。下一步,可将此变色处理方法应用于其它嵌入式平台短信传输和处理中。

[1]高园园,高明煜,曾毓.基于SDL库的嵌入式平台中文显示技术研究[J].计算机系统应用,2009,18(4):194-197.

[2]杨子华,胡倩.基于智能手机平台的MMS系统研究与实现[J].微计算机信息,2007,23(3):25-27.

[3]李宋,吴文权,詹咏.颜色渐变的算法研究[J].上海理工大学学报,2004,26(3):224-228.

[4]李志永,滕升华,杜坤,等.基于不平度颜色混合的图像彩色化方法[J].电子与信息学报,2008,30(3):514-517.

[5]孙晓辉,陈晓,王春,等.在嵌入式浏览器中使用TrueType矢量字库[J].电视技术,2007,31(8):120-122.

猜你喜欢
字符字体短信
字体的产生
字符代表几
一种USB接口字符液晶控制器设计
道歉短信
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
代发短信
组合字体
“八一”节日短信之一
字体安装步步通