矢量字体生成平滑点阵字体的方法

文档序号:2576679阅读:432来源:国知局
专利名称:矢量字体生成平滑点阵字体的方法
技术领域
本发明涉及嵌入式设备的点阵字体显示技术领域,具体是一种用于嵌入式 设备的矢量字体生成平滑点阵字体的方法。
技术背景点阵字体,因其不需要变形,且占用空间资源和系统运算资源很少,在一 些单片机设备以及嵌入式设备上得到了广泛的应用。由于嵌入式设备屏幕变化 的多样性,在产品开发过程中往往需要生成不同尺寸的点阵字体,但由于点阵 字体本身的限制,无法实现平滑变形,所以一般会采用从矢量字体生成点阵字体。目前的生成方法, 一般是通过在Windows平台上,使用平台的开发接口获 得指定大小的矢量字体的对应点阵信息。该方法存在的缺陷是,从开发接口中 获得的点阵信息是直接从没有经过ClearType美化的输出结果获得的。其中包含 强烈锯齿,如图4所示, 一般生成后需要进行大量的人工修饰作为缺陷补救方 法,人工修饰的工作量太大,尤其对于多编码的语言比如中文,日文,韩文等 字体,且占用空间资源和系统运算资源都很大。以下对TrueType及ClearType技术进行必要的介绍TrueType字体支持放大、縮小以及变形的矢量字体,特点如下1. 屏幕占用多边形TrueType字体的某一个字经过放大、縮小和变形以后 显示在屏幕上占用的多边形范围。2. 实像素TrueType字体在屏幕占用多边形内的有效像素。3. 虚像素TrueType字体在屏幕占用多边形内的无效像素。 TrueType技术的缺陷1) 小尺寸的TrueType字体无法圆滑显示, 一般以对应的点阵结果作 为输出,所以,在该尺寸下无法变形。2) 无抗锯齿,边缘过渡强烈。ClearType'显示技术ClearType显示技术解决上述TrueType字体缺陷的办法是1) 根据字体的不同矢量性质,在实像素和虚像素之间加入过渡色像素, 并把某些实像素和虚像素转化成过渡色像素,产生圆滑效果。2) 过渡色像素的透明度极端情况,全透明的情况下,过渡色与虚像 素一致,透明度记作255。全不透明的情况下,过渡色与实像素一致,透明度记 为0。3) 过渡色像素的特性a. 透明度越低的过渡色像素对平滑效果越重要。b. 透明度越低的过渡色像素距离实像素的越近。发明内容本发明的目的是针对以上所述从矢量字体生成点阵字体存在的不足,提出 一种实现容易,运算量小,得到的点阵字体平滑美观,占空间资源和系统运算 资源少的矢量字体生成平滑点阵字体的方法。本发明是这样实现的矢量字体生成平滑点阵字体的方法,是通过如下步 骤实现的(1) 、从字体接口中选择一款TrueType字体;(2) 、提取该TrueType字体中包含某特定小尺寸下的点阵信息(Pixell);(3) 、提取该TrueType字体在该尺寸下的ClearType显示结果 (ClearTypel);(4) 、将以上的点阵信息(Pixell)和显示结果(ClearTypel)进行对照,获得透明度阀值;(5) 、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体; 所述的透明度阀值获取方法如下a. 提取差别像素对于点阵信息(Pixell)的所有像素和显示结果 (ClearTypel)的所有像素进行比较,获得有区别像素区域,保存在Diffl;b. 遍历点阵信息(Pixdl)上在区别像素区域Diffl范围内所有像素获得它们的点阵信息透明度(tmnsSuml);c. 遍历显示结果ClearTypel上在区别像素区域Diffl范围内所有像素 获得它们的显示结果透明度(transSum2);d. 透明度阀值等于显示结果透明度(transSum2)除以点阵信息透明 度(tmnsSuml)乘以256。所述的TrueType字体尺寸的宽和高一般是目标点阵尺寸大小的整数倍。 所述的TrueType字体尺寸的宽和高一般是目标点阵尺寸大小的单数倍。 所述的矢量字体生成平滑点阵字体的方法在单片机设备以及嵌入式设备显 示屏幕上的应用。本发明将现有的矢量字体结合现有的TrueType显示技术和ClearTypel字体处理技术,通过以上所述的处理后得到能在单片机设备以及嵌入式设备上应用 的平滑点阵字体。本方法实现容易,运算量小,占用处理器资源极少,得到的 点阵字体平滑美观,占空间资源和系统运算资源少,在单片机设备以及嵌入式 设备等小型设备中具有广阔的应用前景。


图1为本发明矢量字体生成平滑点阵字体的方法的流程图; 图2为本发明矢量字体生成平滑点阵字体的方法点阵字体生成示意图; 图3为本发明矢量字体生成平滑点阵字体的方法单个像素处理的点阵字体 生成示意图。图4为目前矢量字体生成点阵字体的显示示意图。
具体实施方式
以下结合附图和具体实施例对本发明矢量字体生成平滑点阵字体的方法进 行详细的说明。矢量字体生成平滑点阵字体的方法,如图2所示,是通过如下步骤实现的(1) 、从字体接口中选择一款TmeType字体;(2) 、提取该TrueType字体中包含某特定小尺寸下的点阵信息,保存为 Pixell,如图2中a所示;(3) 、提取该TrueType字体在该尺寸下的ClearType显示结果,存为 ClearType 1如图2中b所示;(4) 、将以上的点阵信息Pixdl和显示结果ClearTypel进行比较获得透明 度阀值;(5) 、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体; 所述的透明度阀值获取方法如下a、 提取差别像素:对于点阵信息Pixell的所有像素和显示结果ClearTypel 的所有像素进行比较,获得有区别像素区域,保存为Diffl,如图2中c所示;b、 遍历点阵信息Pixell上在区别像素区域Diffl范围内所有像素获得它 们的点阵信息透明度,标记为transSuml,如图2中d所示;c、 遍历显示结果ClearTypel上在区别像素区域Diffl范围内所有像素获 得它们的显示结果透明度,标记为transSum2,如图2中e所示;d、 透明度阀值等于显示结果透明度transSum2除以点阵信息透明度 transSum 1乘以256。以上具体的处理流程如图1所示。本发明通过一个尺寸比较大的TrueType字体的ClearType显示结果,并利 用TrueType字体本身的包含信息,按照以上所述的方法计算出一个透明度阀值, 作为点阵生成的指引,生成新的点阵字体。生成任意尺寸的点阵字体,都应选取大尺寸的TrueType字体进行生成,是 由于大尺寸的TrueType字体的ClearType显示结果包含更多的过渡像素,对于 边缘计算更有利。TrueType尺寸选取条件是,宽和高一般是目标点阵尺寸大小 的整数倍,这样可以防止从大变到小的不规则变形的误差。目标点阵尺寸较大 时或者不能以大于目标尺寸整数倍显示时可使用单倍,即与目标点阵尺寸大小 一样的TrueType尺寸。透明度阀值(0到255之间),在ClearType显示结果中,过渡色像素中透明 度高于该值的像素被忽略为虚像素,低于等于该值的像素被认为是实像素。实施例lTrueType字体尺寸的宽和高是目标点阵尺寸大小的整数倍的矢量字体生成 平滑点阵字体的方法,是通过如下步骤实现的(1) 、从字体接口中选择一款TrueType字体;(2) 、提取该TrueType字体中包含放大n倍尺寸下的点阵信息,保存为 Pixell, n为自然数,即TrueType字体尺寸的宽和高是目标点阵尺寸大小的整 数倍;(3) 、提取该TrueType字体在该尺寸下的ClearType显示结果保存为 ClearTypel;(4) 、将以上的点阵信息Pixdl和显示结果ClearTypel获得透明度阀值 threshold,透明度阀值获取方法如下a、 提取差别像素:对于点阵信息Pixell的所有像素和显示结果ClearTypel 的所有像素进行比较,获得有区别像素区域,保存为Diffl;b、 遍历点阵信息Pixell上在区别像素区域Diffl范围内所有像素获得它 们的点阵信息透明度,标记为transSuml;c、 遍历显示结果ClearTypel上在区别像素区域Diffl范围内所有像素获 得它们的显示结果透明度,标记为transSum2;d、 透明度阀值等于显示结果透明度transSum2除以点阵信息透明度 transSuml乘以256。(5)、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体, 具体过程如下获得目标大小的整数倍的字体的ClearType显示结果,标记为f, 目标尺寸大小的点阵生成结果为fTarge,放大倍数记为n, f的宽为w, f的高为 h,那么,fTarget宽wTarget = w / n, fTarget高hTarget = h / n,另|3么,fTarget —ji 单个像素对应f的n * n个像素,n越大,单个像素的对应f像素越多,生成指 引也越详细。从f中取出一个对应目标单个像素的一ii像素组,求像素组的透明度禾口 sum,平均透明度average为average=sum/(n*n),判断平均透明度average 与透明度阀值threshold的大小,如果平均透明度average大于透明度阀值 threshold, fTarget目标像素为实像素,在判断是否还有下一组像素后,将结果在 屏幕输出。如果平均透明度阀值average小于透明度阀值threshold, fTarget目标 像素为虚像素在判断是否还有下一组像素后,将结果在屏幕输出。 实施例2TrueType字体尺寸的宽和高是目标点阵尺寸大小的单数倍的矢量、字体生成 平滑点阵字体的方法,是通过如下步骤实现的-(1 )、从字体接口中选择一款TrueType字体;(2) 、提取该TrueType字体中包含放大n倍尺寸下的点阵信息,保存为 Pixdl, n为自然数,即TrueType字体尺寸的宽和高是目标点阵尺寸大小的整 数倍;(3) 、提取该TrueType字体在该尺寸下的ClearType显示结果保存为 Cl6arTyp615(4) 、将以上的点阵信息Pixell和显示结果ClearTypel获得透明度阀值 threshold,透明度阀值获取方法如下a、 提取差别像素:对于点阵信息Pixell的所有像素和显示结果ClearTypel 的所有像素进行比较,获得有区别像素区域,保存为Diffl;b、 遍历点阵信息Pkell上在区别像素区域Diffl范围内所有像素获得它 们的点阵信息透明度,标记为transSuml;c、 遍历显示结果ClearTypel上在区别像素区域Diffl范围内所有像素获 得它们的显示结果透明度,标记为transSum2;d、 透明度阀值等于显示结果透明度transSum2除以点阵信息透明度 t認sS腿l乘以256。(5)、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体,具体过程如下如图3所示,获得目标大小的单数倍的字体的单个像素的ClearType 显示结果,标记为f,目标尺寸大小的点阵生成结果为fTarge,放大倍数记为n, 从f中取出一个对应目标单个像素的r^n像素组,求像素组的透明度和sum,平 均透明度average为average=sum/(n*n),判断平均透明度average与透明度阀值 threshold的大小,如果平均透明度average大于透明度阀值threshold, fTarget 目标像素为实像素,在判断是否还有下一组像素后,将结果在屏幕输出。如果 平均透明度阀值average小于透明度阀值threshold, fTarget目标像素为虚像素在 判断是否还有下一组像素后,将结果在屏幕输出。
权利要求
1、矢量字体生成平滑点阵字体的方法,其特征在于是通过如下步骤实现的(1)、从字体接口中选择一款TrueType字体;(2)、提取该TrueType字体中包含某特定小尺寸下的点阵信息;(3)、提取该TrueType字体在该尺寸下的ClearType显示结果;(4)、将以上的点阵信息和显示结果进行对照,获得透明度阀值;(5)、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体;所述的透明度阀值获取方法如下a、取差别像素对于点阵信息的所有像素和显示结果的所有像素进行比较,获得有区别像素区域;b、历点阵信息上在区别像素区域范围内所有像素获得它们的点阵信息透明度;c、遍历显示结果上在区别像素区域范围内所有像素获得它们的显示结果透明度;d、明度阀值等于显示结果透明度除以点阵信息透明度乘以256。
2、 如权利要求1所述的矢量字体生成平滑点阵字体的方法,其特征在于 所述的TrueType字体尺寸的宽和高是目标点阵尺寸大小的整数倍。
3、 如权利要求1所述的矢量字体生成平滑点阵字体的方法,其特征在于 所述的TrueType字体尺寸的宽和高是目标点阵尺寸大小的单数倍。
4、 如权利要求1所述的矢量字体生成平滑点阵字体的方法,其特征在于 在单片机设备以及嵌入式设备显示屏幕上的应用。
全文摘要
矢量字体生成平滑点阵字体的方法,是通过如下步骤实现的(1)、从字体接口中选择一款TrueType字体;(2)、提取该TrueType字体中包含某特定小尺寸下的点阵信息;(3)、提取该TrueType字体在该尺寸下的ClearType显示结果;(4)、将以上的点阵信息和显示结果进行对照,获得透明度阀值;(5)、以透明度阀值为点阵生成的指引,在显示设备上生成新的点阵字体。本方法实现容易,运算量小,占用处理器资源极少,得到的点阵字体平滑美观,占空间资源和系统运算资源少,在单片机设备以及嵌入式设备等小型设备中具有广阔的应用前景。
文档编号G09G5/28GK101221746SQ200710031530
公开日2008年7月16日 申请日期2007年11月20日 优先权日2007年11月20日
发明者严春莲 申请人:严春莲
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1