矢量字库在嵌入式机顶盒中的应用
①计算该位图对应的缓冲区尺寸。每行长度为:BytePerLine=(width+1)/8,缓冲区大小为Buffersize=BytePerLine*height。
②申请内存缓冲区。如果内存不足以容纳整 个图形,则可以分段处理。
BufferPtr=(unsigned char*)malloc(BufferSize)。
③计算坐标点在所申请内存缓冲区的偏移量和屏蔽位。设原点(0,0)在内存中的偏移量为0,则图中任意一点P(x,y)相对于原点(0,0)的偏移量为
offset=y*
BytePerLine+x/8,该点对应的字节内屏蔽位为mask=0x80>>(X%8)。
④读取点P(x,y)在内存中对应的颜色值Value,读取所在的字节。
byte=(unsigned char)*(Bufferptr+offset),取该点对应的位,
Value=byte & mask最后得到点阵信息,输出到屏幕或磁盘文件。
3.3 主程序流程
主程序流程图如图3所示。首先进入响应用户消息分支,当从编辑框输入标准汉字或ASCII字符,程序检查字符同码判断字符有效性,若满足条件则跳至显示部分;当用户从外部磁盘插入图标或位图图片,程序直接读入文件数据;如果插入的是特殊字符则进入RTF格式文本解析部分,得到特殊字符的代码页、字体、大小等信息。然后将字符图标信息在视图中显示,此时可通过图形界面调整字符外观。通过获得内存中图像信息形成位映射数据,计算点阵数据。最后将字库点阵和索引表、字体、大小等附加信息按头文件格式保存到字库文件中。程序源代码见网站fanwen.oyaya.net收集整理。
4 结论
实际应用中,本方法可以有关键人物 地提取Windows环境下矢量字库的字模,满足嵌入式机顶盒系统的开发需要。字模提取程序具有多种功能,可以生成各种大小风格的字体、符号和图形点阵信息,从而使机顶盒能利用Windows中丰富的字体和图像资源,显示更为精彩的图形用户界面。
《矢量字库在嵌入式机顶盒中的应用(第3页)》