http://www.paper.edu.cn
- 1 -
嵌入式系统中 QCAD 中文字符处理方法分析与改进
1
陈盈贵
1
,鄢 萍
2
,童 亮
3
,刘 麦
4
1,2,3,4
重庆大学机械传动国家重点实验室,重庆(400030)
E-mail:9940458@sina.com
摘 要:QCAD 采用笔划字符处理和显示图形中的字符。本文在分析了笔划字符处理方法
的基础上,针对该方法处理中文字符占用系统资源大的问题,提出一种改进的字符处理方
法——对中文字符串以矢量字符代替笔划字符进行处理显示。该方法有效地提高了系统处理
和输出中文字符的时间效率,同时减少了内存占用量。最后,本文结合 QCAD 的软件结构
在嵌入式系统中实现该方法的实际应用,取得良好效果。
关键词:嵌入式系统;QCAD;矢量字符;笔划字符;方法改进
中图分类号:TP391.7
1. 引言
QCAD 是 Linux 下的二维 CAD 绘图软件,可移植于以嵌入式 Linux 为操作系统的嵌入
式设备,但是它的中文字符处理方法并不适合资源有限的嵌入式系统,故有必要对该方法进
行改进。
目前,图形模式下的字符显示大多数采用矢量字符和笔划字符两种方式。文献
[1]
中提到
的图形模式下以直线组成字符笔划,最终“拼”成完整字符输出是最简单一种字符输出方式。
该方法需要从自行定义的字库文本文件中读取笔划直线信息,解析笔划直线的坐标值并逐
条输出。QCAD 就是采用这种笔划字符方式输出图形中的字符串,它对 CAD 图形的特殊标
注符号显示具有极大灵活性,但是对于字型复杂、数量庞大的中文字符,该方法需要的计
算量相当大,在资源有限的嵌入式系统尤不适用。文献
[2]
提出了一种在 CAD 软件中提取 TTF
(矢量)字型轮廓、实现字型轮廓数据的离散最终根据需要旋转、镜像放大、显示优美字
符的方法,该方法是基于 Windows 系统,借助 MFC 函数提取和输出矢量字符,所以不能
直接应用于基于 Linux 的嵌入式系统。
本文在分析了 QCAD 的中文字符处理方法的基础上,提出了对图形中的非中文字符和
中文字符分开处理——非中文字符采用笔划字符输出,而中文字符串以矢量字符代替笔划
字符输出的字符处理方法,并在 QCAD 中加以实现。实际应用表明,该方法在保持了 QCAD
灵活输出特殊符号的同时减少了对中文字符串的处理计算量和内存占用量,对 QCAD 在嵌
入式设备下的应用具有实用意义。
[3~6]
2. 方法改进原理
2.1 矢量字库介绍及字型提取
矢量字库也叫 TTF 字库,是由美国苹果和微软公司联合开发的,已经被用于 Windows
中文生成汉字字库,它采用二次 B 样曲线来描述字符轮廓,具有字体优美、可无级放缩等
优点,适合应用于 CAD 类图形处理等软件中
[7]
。矢量字符的显示分为字型提取和字符输出
两个阶段
[8]
,首先从字库中提取相应的字符信息,然后根据用户的需要进行一定的数学运算
1
本课题得到教育部“新世纪优秀人才支持计划”,重庆市自然科学基金项目 CSTC.2006BB2237,重庆市
科技重大攻关项目 CSTC2007AA2013 等基金项目资助。