一种矢量字库字符的显示方法及显示装置的制作方法

xiaoxiao2020-6-26  25

专利名称:一种矢量字库字符的显示方法及显示装置的制作方法
技术领域
本发明涉及字符显示技术领域,具体涉及一种矢量字库字符的显示方法及显示装置。
背景技术
字符显示一般分为点阵字体和矢量字体,矢量字体中每一个字形是通过数学曲线 来描述的,它包含了字形边界上的关键点,连线的导数信息等,字体的渲染引擎通过读取这 些数学矢量,然后通过进行一定的数学运算来进行渲染。矢量字体的优点是字体实际尺寸 可以任意缩放而不变形、变色。因此,矢量字体在目前的显示装置中得到了非常普遍的应 用。目前矢量字库字符的显示方法是,矢量字库引擎计算出字符的灰度点阵位图,灰 度点阵位图中的每一个显示点的亮暗用灰度表示,即显示点的灰度值。实际显示字符时,需 要借助前景颜色和背景颜色,所述的前景颜色为要显示的字符颜色,所述的背景颜色为字 符要显示区域的背景显示屏幕的颜色,同时根据显示点的灰度、矢量字库引擎的灰度级别, 确定显示点的显示颜色。不同的矢量字库引擎所使用的灰度级别是不一样的,一般是2的 整数次幂,如16、64、128、256,通常矢量字库引擎的灰度级别是在编译时配置的,运行时是 一个固定值。例如应用程序需要绘制黑体字符“中”,矢量字库引擎负责从黑体字库中找到“中” 的字形描述数据,并计算出“中”的灰度点阵位图,参考图1,为16级灰度下“中”的灰度点 阵位图。应用程序获取到这个点阵位图后,再根据背景颜色、前景颜色进行绘制。假设当前 显示点灰度值为n,灰度级别为T,前景颜色为fg,背景颜色为bg。对每一个显示点,实际显 示的颜色按下面透明融合公式计算color = (n*fg+(T-n)*bg)/T ;如字符的大小为对像 素,一个字符一般会有对拉4 = 576个显示点,按上面的公式计算,每个字符的显示过程有 2*24*24 = 1152次乘法,1*24*24 = 576次除法,1*24*24 = 576次加法,可见计算量之大。 矢量字库引擎的过大计算量,降低了矢量字库字符的显示速度。

发明内容
本发明实施例提供了能够加快矢量字库字符显示速度的显示方法本发明还提供 了矢量字库字符的显示装置。一种矢量字库字符的显示方法,包括获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级别中 所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关系;获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示点的 灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。一种矢量字库字符的显示装置,包括
获取单元,用于获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜 色;计算存储单元,用于计算矢量字库引擎的灰度级别中所有的灰度值所对应的显示 颜色,保存灰度值与所计算出的显示颜色之间的对应关系;显示单元,用于根据当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图 中每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。本发明实施例采用获取当前要显示的字符和当前要显示的字符的前景颜色和背 景颜色;按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级别中 所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关系;获 取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示点的灰度值获取 已保存的与该灰度值对应的显示颜色并进行显示的方法进行矢量字符显示。本发明的技术 方案与现有技术中显示字符时每个显示点都分别进行一次颜色计算相比,减少了矢量字库 引擎的计算量,加快了矢量字库字符的显示速度。


图1是16级灰度下,“中”字的灰度点阵位图;图2是本发明实施例中的显示方法的实施例示意图;图3是本发明实施例中选取背景颜色的示意图;图4是本发明实施例中的显示装置的实施例示意图。
具体实施例方式本发明实施例提供一种矢量字库字符的显示方法,用于提高矢量字库字符的显示 速度。本发明实施例还提供相应的矢量字库字符的显示装置。以下分别进行详细说明。实施例一、请参阅图2,本发明实施例中显示方法的实施例,包括101、获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;在显示矢量字符过程中,矢量字库引擎获取到应用程序发送来的当前要显示的字 符和当前要显示的字符的颜色,该当前要显示的字符的颜色为前景颜色。同时,矢量字库引 擎获取到当前要显示字符将要显示的目标位置的区域中心点的颜色作为背景颜色。参阅图3,以“中”字为例,根据字符显示的目标位置、字符灰度点阵位图的大小,选 取背景上字符显示区域中心点3的颜色作为背景颜色。一般地,单个字符的显示区域很小,即使该区域每一个点的背景颜色不完全相同, 也是会比较相似的,取中心点的颜色作为统一的背景颜色计算出来的字符显示颜色与按背 景中实际颜色,对每一个点进行独立的透明融合计算最终的显示效果在肉眼感觉上,是分 辨不出来的。因此,这种选取方式是合理的。102、按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级 别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关 系;当前要显示的字符的前景颜色设为fg,当前要显示的字符的背景颜色设为bg,矢
4量字库引擎的灰度级别为一固定值,设该固定值为T,矢量字库引擎下的灰度级别中所有的 灰度值设为i,i为大于等于0小于T的整数,矢量字库引擎灰度级别中所有的灰度值所对 应的显示颜色的表达式为text_colors[i] = (i*fg+(T_i) *bg)/T ;通过该表达式将矢量字库引擎灰度级别中的所有灰度值对应的显示颜色全部计 算出来,并保存所有灰度值与所计算出的显示颜色的对应关系。103、记录最后一次计算灰度值所使用的背景颜色和前景颜色;将102步骤中最后一次计算灰度值所使用的背景颜色和前景颜色记录下来。104、判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景 颜色相比,是否有任意一个发生了变化,将101步骤中获取到的当前要显示的字符的前景颜色和背景颜色与103步骤中记 录的最后一次计算灰度值所使用的背景颜色和前景颜色相比,判断是否有任意一个发生了变化。105、获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示 点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。本实施例的具体工作流程可为,当前要显示的字符为第一个字符时,按顺序执行 上述步骤中的101、102、103和105,101、获取第一个要显示的字符和第一个要显示的字符的前景颜色和背景颜色;102、按照第一个要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度 级别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关 系;103、记录最后一次计算灰度值所使用的背景颜色和前景颜色;105、获取第一个要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显 示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。如果上述显示过程结束后不再显示其他字符也可以不执行步骤103。本实施例的具体工作流程为,当前要显示的字符非第一个字符时,执行步骤有两 种情况第一种情况为按顺序执行101、104和105,第二种情况为按顺序执行101、104、102、 103 和 105 ;第一种情况的具体描述为101、获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;104、判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景 颜色相比,是否有任意一个发生了变化,若当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相 比没有任何一个发生变化,则执行步骤105,105、获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示 点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。第二种情况的具体描述为101、获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;104、判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相比,是否有任意一个发生了变化,若当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相 比有其中任何一个发生了变化,则执行步骤102,然后执行步骤103和105 ;102、按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级 别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关 系;103、记录最后一次计算灰度值所使用的背景颜色和前景颜色;105、获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示 点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。如果上述显示过程结束后不再显示其他字符也可以不执行步骤103。为便于理解,下面以一具体的应用场景对上述实施例中描述的矢量字符字库显示 方法进行详细描述,具体的设字库字符引擎的灰度级别T为16,背景颜色和前景颜色不变,分别为bg与fg, 则矢量字库引擎灰度级别中的所有灰度值对应的显示颜色的计算可以用以下函数来表 示text_colors[T]for(i = 0 ;i < 16 ;i++) {text_colors[i] = (i氺fg+(T_i)氺bg)/T ;}其中的teXt_C0l0rs[T]包含了所有的灰度值所对应的显示颜色,从函数式中可 读出,当灰度级别T为16时,当前要显示的字符的显示过程只需要矢量字库引擎进行2*16 =32次乘法运算,1*16 = 16次除法运算和1*16 = 16次加法运算,最后根据灰度值与显示 颜色的对应关系,根据当前要显示字符的灰度点阵位图中显示点的灰度值直接就可以得到 对应的显示颜色。但是如果按要现有技术中的显示方法,对每一个显示点,实际显示的颜色 按下面透明融合公式计算color = (n*fg+(T-n)*bg)/T ;如字的大小为对像素,一个字符 一般会有对拉4 = 576个显示点,按上面的公式计算,每个字符有2 牡24 = 1152次乘法, 1*24*24 = 576次除法,1*24*24 = 576次加法。可见本发明实施例提供的矢量字库字符的 显示方法大大加快了字符的显示速度,缩短了等待时间。尤其是记录最后一次计算所用的 背景颜色与前景颜色避免了后面要显示字符的重新计算,进一步降低了运算量。特别是应 用程序一般不会只显示一个字符,一般场景则是使用相同的前景颜色显示一个字符串。这 种情况下,前景颜色不变,如果背景颜色在字符串显示区域内也是相同的话,则对整个字符 串,只用计算一次,每次显示时只需要从保存的灰度值与显示颜色的对应关系中获取显示 点的显示颜色即可,更加提高了字符的显示速度。下面介绍本发明中显示装置的实施例,请参阅图4,本发明实施例中的显示装置包 括获取单元201,用于获取当前要显示的字符和当前要显示的字符的前景颜色和背 景颜色;计算存储单元202,用于计算矢量字库引擎的灰度级别中所有的灰度值所对应的 显示颜色,保存灰度值与所计算出的显示颜色之间的对应关系;
显示单元205,用于根据当前要显示的字符的灰度点阵位图,按照所述灰度点阵位 图中每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。本发明实施例的显示装置还包括记录单元203,用于记录最后一次计算灰度值所使用的背景颜色和前景颜色;判断单元204,用于判断当前要显示的字符的前景颜色和背景颜色与所记录的前 景颜色和背景颜色相比,是否有任意一个发生了变化。本发明实施例提供的显示装置的工作过程有三种状况,分别为第一种状况为获取单元201获取到当前要显示的字符和当前要显示的字符的前景颜色和背景 颜色;计算存储单元202计算矢量字库引擎的灰度级别中所有的灰度值所对应的显示 颜色,并保存灰度值与所计算出的显示颜色之间的对应关系;记录单元203记录最后一次计算灰度值所使用的背景颜色和前景颜色;显示单元205,用于根据当前要显示的字符的灰度点阵位图,按照所述灰度点阵位 图中每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。如果第一个要显示的字符显示过程结束后不再显示其他字符也可以不启动记录 单元203。第二种状况为获取单元201,获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜 色;判断单元204、判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜 色和背景颜色相比,是否有任意一个发生了变化,若当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相 比没有任何一个发生变化,则启动显示单元205,显示单元205、获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中 每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。第三种情况为获取单元201、获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜 色;判断单元204、判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜 色和背景颜色相比,是否有任意一个发生了变化,若当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相 比有其中任何一个发生了变化,则启动计算存储单元202,然后启动记录单元203和显示单 元 205 ;计算存储单元202、按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库 引擎的灰度级别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之 间的对应关系;记录单元203、记录最后一次计算灰度值所使用的背景颜色和前景颜色;显示单元205、获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。如果上述显示过程结束后不再显示其他字符也可以不启动记录单元203。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储 介质可以包括ROM、RAM、磁盘或光盘等。以上对本发明实施例所提供的矢量字库字符的显示方法以及矢量字库字符的显 示装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一 般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种矢量字库字符的显示方法,其特征在于,包括获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级别中所有 的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关系;获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示点的灰度 值获取已保存的与该灰度值对应的显示颜色并进行显示。
2.根据权利要求1所述的矢量字库字符的显示方法,其特征在于,在所述计算矢量字 库引擎的灰度级别中所有的灰度值所对应的显示颜色的步骤之后还包括记录最后一次计算灰度值所使用的背景颜色和前景颜色;在所述获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色的步骤之 后,还包括判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和背景颜色相比, 是否有任意一个发生了变化,若是,则执行所述按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎 的灰度级别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的 对应关系的步骤;若否,则执行所述获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中 每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示的步骤。
3.根据权利要求1或2所述的矢量字库字符的显示方法,其特征在于,所述计算矢量字 库引擎的灰度级别中所有灰度值中的任意灰度值所对应的显示颜色的步骤具体为text—colors[i] = (i*fg+(T_i)*bg)/T ;其中i是大于等于0小于T的整数,表示灰度级别中的各个灰度值,text_colors [i]是 灰度值为i时的显示颜色,bg为当前要显示的字符的背景颜色,fg为当前要显示的字符的 前景颜色,T为灰度级别。
4.一种矢量字库字符的显示装置,其特征在于,包括获取单元,用于获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;计算存储单元,用于计算矢量字库引擎的灰度级别中所有的灰度值所对应的显示颜 色,保存灰度值与所计算出的显示颜色之间的对应关系;显示单元,用于根据当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每 个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。
5.根据权利要求4所述的显示装置,其特征在于,还包括记录单元,用于记录最后一次计算灰度值所使用的背景颜色和前景颜色;判断单元,用于判断当前要显示的字符的前景颜色和背景颜色与所记录的前景颜色和 背景颜色相比,是否有任意一个发生了变化。
全文摘要
本发明公开了一种矢量字库字符的显示方法,包括获取当前要显示的字符和当前要显示的字符的前景颜色和背景颜色;按照当前要显示的字符的前景颜色和背景颜色,计算矢量字库引擎的灰度级别中所有的灰度值所对应的显示颜色,保存灰度值与所计算出的显示颜色之间的对应关系;获取当前要显示的字符的灰度点阵位图,按照所述灰度点阵位图中每个显示点的灰度值获取已保存的与该灰度值对应的显示颜色并进行显示。本发明实施例还提供相应的矢量字库字符的显示装置。本发明技术方案由于采用计算灰度级别中所有的灰度值对应的显示颜色并保存灰度值与显示颜色的对应关系的方法,提高了矢量字库字符的显示速度。
文档编号G09G5/22GK102148021SQ20111006902
公开日2011年8月10日 申请日期2011年3月22日 优先权日2011年3月22日
发明者徐佳宏, 朱吕亮, 程伯钦 申请人:深圳市茁壮网络股份有限公司

最新回复(0)