背景技术
现有技术中常用的字形数据处理方式有点矩阵方式和曲线轮廓方式。点矩阵方式实际是单色位图的方式,字形效果如图1所示。点矩阵方式针对某种尺寸的点阵,通过点的选中与否,最终形成所需的点阵字形。此方式适用于低分辨率的字形显示,具备不随显示设备分辨率的变化而发生变化的优点;不足之处在于所需的存储空间会随着字符数量的增多而线性地增大;另外,对于某种尺寸的字形,必须单独提供字形数据,不具备缩放的功能。曲线轮廓方式,是另一种重要的字形数据处理方式,此方法采用曲线封闭轮廓来描述字形,使用时配合相关的字体引擎进行尺寸缩放、填充后将字形转换为位图。所述字体引擎是计算机内部将曲线字形还原为位图的计算机程序,采用离散的像素点,通过控制这些像素点,来产生最终显示用的位图。
另外,为了改善最终字形的显示质量,某些标准格式的字库格式,还提供字形调整机制,可以通过程序控制的方式在尺寸缩放后完成字形的调整,从而达到较高的显示质量。采用此种方式处理的字形数据通过曲线方式来存储,具备通过无级平滑缩放而保持字体风格不变等优点。并且可以采用灰度填充方式,解决伴随黑白模式的锯齿等问题。但灰度的使用在将锯齿效应弱化的同时,也带来了一系列其他的问题,其中最主要的问题是最终得到的字形出现虚化,在一定程度上影响阅读的质量。
为了改善曲线轮廓方式下灰度字形的显示质量,首先介绍一下目前常见的字形填充技术。曲线字形常用的填充方式包括以下几种:
如图1所示,单色位图的方式。在这种方式下,离散区域中的像素点要么被认为是当前图形的一部分,要么不是。判断是否为当前图形的一部分的原则,一般是通过判定当前像素点的中心是否在字形封闭回路确定的区域内部,如果是,则被认为是当前图形的一部分;当在区域的边界线上时,也会被认为是当前图形的一部分。
如图2所示,灰度位图的方式。此方式下根据像素点落在字形封闭回路确定的区域内的比例,被赋予一定的灰度,此方式解决黑白模式下出现的锯齿等问题的同时,也引入了新的不足之处,容易产生字形虚化的现象。
如图3所示,针对液晶显示器的方式。鉴于液晶的显示方式中,每个像素点是由三基色三个子像素点组成的,基于基色像素点进行显示,相当于将当前水平方向上可用的”像素”点数提高到原来的3倍,从而可以明显改善显示的质量。此方式不足之处在于只能应用在液晶显示器上。
由此可见,无论采用何种填充方法,问题产生的根源均在于曲线字形转化为位图的过程,是一个由连续的区域表达方式转换为离散的区域表达方式的过程,是一个可用显示单元骤减的过程。即使显示位置不同,也会造成显示结果的不同。如图4所示,一个圆由于所处位置不同,最终获得的位图也不同,并且圆的对称性也遭到了破坏。为了忠实与连续区域的原始图形,离散区域的位图在生成时有必要进行一定的处理。
现有的曲线字体引擎内含调整的机制,使得字形存储时不仅仅存储曲线字形的拓扑数据,还可以针对这些数据,在一定的情况下,进行所需的调整,从而达到调整最终字形的目的。调整的方法,现有技术提出了一种寻找直线最佳显示角度的方法,此方法通过建立直线显示角度与显示周期的目标函数,求得最佳的显示角度和显示周期,从而达到改进直线显示质量的目的,此方法针对单色位图方式的显示方式,可以显著的改善字形的显示质量,但不能解决灰度位图方式下的字形虚化的问题。
具体实施方式
本发明实施例,提供了一种提高灰度字形显示质量的方法及装置。通过分析灰度位图方式下,字形产生虚化的原因,基于原字形封闭轮廓之上,对影响最终字形显示效果的特征点,进行微调,在字形封闭轮廓变形最小的前提下,使得调整后的字形封闭轮廓覆盖尽量多的完整的离散网格,达到改善字形的显示质量的目的。
需要采用灰度位图方式进行填充的字形封闭轮廓在本发明实施例中称为灰度字形回路(简称字形回路或回路),本发明实施例中的灰度字形回路由直线和二次B样条曲线构成。参见图5,点0到点1之间的线为直线,另外三段曲线为二次B样条曲线。
本发明实施例中提到的对字形回路上的点进行的圆整,是指字体引擎在将字形回路还原为位图时,首先需要缩放到相应的字符尺寸,此时字形回路上的点,常常并不落在实际的网格上,为了保证字形回路上的点落在实际网格上,对字形回路上的点所进行的调整。
下面介绍一下本发明具体实施例。
参见图6,本发明实施例提供的具体方法包括:
S601、设置对灰度字形回路上的点的调整方向。
当所述灰度字形回路的最上端和最下端两个端点之间的距离大于所述回路的最左端和最右端两个端点之间的距离时,设置所述调整方向为水平方向。
当所述灰度字形回路的最上端和最下端两个端点之间的距离小于所述回路的最左端和最右端两个端点之间的距离时,设置所述调整方向为垂直方向。
S602、对灰度字形回路上的最小宽度处的第一端点进行圆整到网格上。
S603、沿着调整方向,向远离第一端点的方向移动最小宽度处的第二端点。
S604、参考第一端点,向远离第二端点的方向移动第一端点所在曲线上的其他点。
S605、参考第二端点,向远离第一端点的方向移动第二端点所在曲线上的其他点。
以调整方向为水平方向为例进行说明。如图5中所示,灰度字形回路上的最小宽度处的端点分别为点0和点1,点5为点0所在曲线的另一端点,点3为点1所在曲线的另一端点,点6为曲线05的控制点,点2为曲线13的控制点,点4为曲线53的控制点。
对点0的调整包括:参见图7,将点0圆整到最近的网格上,并且,判断圆整后的点0和点1之间的距离postD是否大于最小宽度preD(即点0和点1的原距离),如果是,则保持移动后的点0的位置不变,否则,恢复点0的位置。也就是说,对点0的圆整,要使得点0和点1之间的距离变大。
对曲线05的调整包括:参见图7,设定点0为参考点,移动曲线05上的点5和点6,移动量与上述点0的移动量相同,即移动量为postD-preD,记为curveLD。如果点0的位置没有发生变动,即curveLD为零,则曲线05将保持在原位置不变,否则,曲线05将向左水平偏移curveLD。
对点1的调整包括:参见图8,根据二次B样条曲线的切线和包络性质,在点1附近较小的变动范围内,采用点1和点2确定的直线代替二次B样条曲线,求得与距离点1最近的水平网格线的交点,该交点的水平坐标为interH。距离点1最近的竖直网格线的水平坐标为interNH,如果interNH<interH,则说明点1所在曲线在最小宽度处没有覆盖整数个网格。将interH与interNH的差值记为disH(此值大于零),沿着调整方向,向右移动点1,移动量为disH。如果interNH>interH,则保持点1原位置不变,即不移动点1。
对曲线13的调整包括:设定点1为参考点,移动曲线13上的点2和点3,移动量与上述点1的移动量相同,即disH。如果点1的位置没有发生变动,即disH=0,则曲线13将保持在原位置不变,否则,曲线13将向右水平偏移disH。
通过上述本发明实施例提供的技术方案对灰度字形回路进行调整之后,可以保证灰度字形回路覆盖尽可能多的完整网格。图9A示出了的文字“多”的字形在调整前的显示效果。图9B示出了经过本发明实施例提供的技术方案调整后的“多”的字形的显示效果,可以发现字形的显示效果得到了明显改善。
本发明实施例为了叙述方便,采用了拓扑结构较为简单的实例进行说明,并且本发明实施例中给出的封闭回路整体为竖直方向,因此设定了调整方向均为水平方向。当待调整的封闭回路整体为水平方向时,应该设定调整方向均为垂直方向。
下面介绍一下本发明实施例提供的装置。
参见图10,本发明实施例提供的装置包括:端点调整单元101、第一曲线调整单元102和第二曲线调整单元103。
所述端点调整单元101,用于将灰度字形回路的最小宽度处的第一端点圆整到网格上,和/或依据预先设置的调整方向,向远离所述第一端点的方向移动所述最小宽度处的第二端点。
所述第一曲线调整单元102,用于以所述第一端点为参考点,依据所述调整方向,向远离所述第二端点的方向移动该第一端点所在曲线的除了所述第一端点以外的其他点,移动量为所述第一端点的移动量。
所述第二曲线调整单元103,用于以所述第二端点为参考点,依据所述调整方向,向远离所述第一端点的方向移动该第二端点所在曲线的除了所述第二端点以外的其他点,移动量为所述第二端点的移动量。
所述端点调整单元101包括:第一端点调整单元1011和第二端点调整单元1012。
所述第一端点调整单元1011,用于将灰度字形回路的最小宽度处的第一端点圆整到网格上,当所述圆整后的第一端点与所述最小宽度处的第二端点之间的距离大于所述最小宽度时,保持所述圆整后的第一端点的位置不变。
所述第二端点调整单元1012,用于依据所述调整方向,向远离所述第一端点的方向移动所述最小宽度处的第二端点。
本发明实施例中所述调整方向为水平方向,所述第二端点调整单元1012包括:交点坐标单元10121、差值单元10122和处理单元10123。
所述交点坐标单元10121,用于计算所述第二端点处的切线与距离所述第二端点最近的水平网格的交点的水平坐标。
所述差值单元10122,用于当所述交点的水平坐标大于距离所述第二端点最近的垂直网格的水平坐标时,计算所述交点的水平坐标与所述垂直网格的水平坐标的差值。
所述处理单元10123,用于沿着水平方向,向远离所述第一端点的方向移动所述第二端点,移动量为所述差值。
综上所述,本发明实施例提供的技术方案,通过调整灰度字形回路最小宽度处的完整网格覆盖率,得出整个回路的调整方式和调整量的大小,最终保证调整后的整个闭合回路覆盖尽可能多的完整网格。在进行灰度方式的填充时,达到明显改善位图填充效果的效果。并且,并不是所有的回路均需要调整,如果回路在调整中的任何一步中已经符合调整后的要求,那么,本发明将会对其进行保留,从而避免了将回路最终显示质量变坏的可能性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。