位映像字符转换器的制作方法

文档序号:6409195阅读:194来源:国知局
专利名称:位映像字符转换器的制作方法
技术领域
本发明涉及从各种字符和其它符号的位映象外形的曲线表示中产生分辨率和点尺寸可选择的表示的技术。本发明尤其涉及把字符或符号的外形表示转换成位映象表示的填充装置和方法。
以前在计算机显示或桌面出版应用方面基本上有三种方法和装置来表示字形。这些方法是1)位映象表示法;2)矢量表示法;和3)曲线表示法。
在位映象表示法中把字形定义成点阵,如15×16点阵。请参见

图1的这种汉字字符的例子。如果需要显示或打印如24×24不同大小的字形,则要求有与该字形大小对应的点阵。如果在应用汉语或其它东方国家文字的计算和印刷系统中使用位映象字形,则需要较大的存储空间来保存描述不同大小的各种字体的字形的点阵。
在矢量表示法中用多边形近似法来表示字形外形。存储表示多边形顶点的数据点。然而,这种方案不是高效的方法。为了高精度地逼近曲线部分,需要许多小的矢量。而且,当这些字符按比例放大到非常大的尺寸时输出的图象不是很好。最终结果是线的交会点不光滑。
以曲线形式表示的字形外形用一组光滑连接的三次曲线来描述。如果用这种方法来定义字符,则从同一个曲线描述中可以产生不同大小和形状的字符。所要做的所有工作是规定X和Y方向上的换算系统。
对字符作放大缩小的过程是完成曲线表示的坐标位映象,并用区域填充方法重构位映象。基于这一优点,已经把这种轮廓化的字形应用于桌面计算机和打印系统。
如果用轮廓化的字形来格式文本,则必须提供有效和全面的方法来把用其外形描述的字形转换成位映象形式,并在帧缓冲器适当的位置上对它进行填充,用于以后的显示或打印。
所谓“全面”其含义是该方法应当对各种尺寸的字形进行光栅化而形变最小。在轮廓化的字形中,用一种描述来产生不同大小的字形。在这种情况下,如果该方法需要产生小号的字形,则会出现问题。这些问题包括断笔、过填充和变形。例如,当把字形缩成较小号时,许多笔划将变成只有一个像素的宽度。如果没有较好地设计填充方法,则可能会产生过填充或未充满这些笔划。未充满会产生断笔划。过填充会填充帧缓冲器中额外的空余空间。形变可能是由于量化等引起的一笔划中不均匀的笔划宽度、笔划合并以及各种形变产生的。
在文献中有许多种填充方法。它们可以划分成两种主要的类别1)种子(seed)填充;和2)边缘填充。
在种子填充方法中,首先把待填充的形状的连接轮廓线画在作画缓冲器上。然而,在字符形状内部选出一种子点。然后该方法填充该像素以及从该种子像素可获得所有像素。填充将连续进行,一直到达轮廓线点上。
种子填充的优点是在填充过程期间,不会处理轮廓外的像素。然而,种子填充在把外形或字符转换成位映象字符时出现许多问题。种子填充的一个缺点是需要为各条轮廓线提供或找出一个起始的种子点。该种子点可以在与输入所有轮廓数据的某一步过程中提供。然而,当字形尺寸变得较小时,一个轮廓线可能分解成两个或更多个独立的轮廓。这样提供的种子点将落在这些轮廓线的其中一个内,而且将仅填充该轮廓线,以致产生了未充满现象。如果需要在填充进行之前用该方法本身来找出所有种子点,则该方法将变得十分复杂。
边缘填充还可以称作扫描转换填充。边缘填充方法的第一步也是把字形的轮廓画到作画缓冲器上。下一步是一行一行地扫描整个作画缓冲器,填充轮廓线内部。在各个水平扫描线内,该方法填充第一和第二轮廓线像素之间的区段,第三和第四轮廓线像素之间的区段以及后面各组轮廓线像素之间的区段。其依据是一条直线与一闭合的轮廓线相交偶数次。如果该线的第一点位于该轮廓线外,那么该线可以横截该轮廓线,并通过计算相交次数来决定哪段位于轮廓线内。
所有的边缘填充方法不得不解决诸如角上的点以及重叠的轮廓线等一些特殊情况,以使本方法在所有时间都能正确地工作。通常,该方法必须扫描整个作画缓冲器以对它进行正确填充。而且,该方法还需要进行额外的过程以避免过填充和未填满现象。有时需要用另一个存储缓冲器来存储轮廓线。这使得该方法效率低下。
本发明的目的在于提供一种全面高效的填充装置和方法,通过它们外形的描述来产生位映象字符。它只需较小的存储器,且处理速度快,避免了过填充和未填满现象。
与其它的专利相比,本发明具有下列重要的特征和目的。
本发明首先把曲线描述的轮廓线转换成位映象描述,然后填充该轮廓线内部,得到位映象字形。
在轮廓线转换过程中,在链式码描述中设置一些链式码标志,来指示轮廓线冲突之处。
在填充过程中,用链式码描述来帮助扫描并仅填充轮廓线内部以改善速度。链式码标志有助于避免过填充问题。
根据字形轮廓线的描述来建立填充说明。这避免了种子填充方法中字形尺寸较小时产生的未填满问题。
在本发明中使用了两个存储缓冲器。一个用于字形图象。该缓冲器的大小与最大字符相等,一位用于一个像素。另一个用于存储链式码和链式码标志。
省略功能用于避免数字或参量描述和外形像素描述之间的差异产生的过填充问题。
如果把它与下列一些相关专利比较,则与已有技术的这些差异十分明显。
美国专利No.4,551,092主要涉及在把字符从外形形式转换到位映象形式期间,尤其是在字符尺寸较小时控制字符笔划的宽度。这被称为示意(hinting),而不是填充。该专利研究的主题不同于本发明的目的和实质。
美国专利No.4,785,391和No.4,959,801都涉及同一方法。其中一个是另一个的改进。在这些专利中主要讲授的是表示字形的新方法,以改善字符的产生质量,尤其是对小号的字符。
美国专利No.5,5 38,385论及轮廓线填充。它首先扫描轮廓线,在作画缓冲器上建立一些记号。例如,建立第一和第二类图象元素。然后如该方法所定义的获得方向码序列。然而,通过光栅扫描,在作画缓冲器内的记号和方向码的帮助下填充内部。该专利与本发明的不同之处是1)该专利在作画缓冲器上产生记号来帮助填充。另一方面,本发明在作画缓冲器上画出外形,并在轮廓线的链式码描述上设置一些标志,来帮助填充。
2)本发明产生链式码轮廓线,有助于仅扫描待填充的轮廓线内部和轮廓线本身。相反,该专利需要扫描整个作画缓冲器来填充字符。
3)本发明用作画缓冲器中的一位来表示位映象形式的一个像素。然而,该专利至少用作画缓冲器中的两位来表示位映象形的一个像素,以获得空间来存储记号。
美国专利No.4,967,376涉及字形轮廓填充。它首先扫描轮廓线,在作画缓冲器上建立一些记号,这些记号可以是左边缘标记或右边缘标记。然后扫描整个作画缓冲器开始填充。该专利与本发明的几个差别如下所列1)该专利在作画缓冲器内产生记号来帮助填充。而本发明在作画缓冲器上画出外形,并在轮廓线链式码描述中设置一些标志来帮助填充。
2)本发明产生轮廓线链式码,它有助于仅扫描轮廓线内部和轮廓线本身来填充。而该专利需要扫描整个作画缓冲器来进行填充。
3)本发明用作画缓冲器中的一位来表示位映象形式的一个像素。另一方面,该专利用相同大小的二个存储面。一个是作画面,另一个是控制面。
4)另外,本发明有特殊的省略功能,而该专利没有。
本发明用链式码标志实现了上述目的。尤其是,用链式码标志来指示轮廓线的冲突,有助于避免断笔划和过填充问题。使用两个存储缓冲器,一个是作画缓冲器,而另一个用于表示轮廓线的链式码。
电子出版系统、文字处理系统及其它领域使用外形描述来存储字符和符号。为了产生给定大小的位映象字符,必须按比例缩小外形描述,在图像缓冲器内画出外形描述,然后填充。本发明把这些事情结合在一起。在本发明中有三个步骤。
在第一步,在作画缓冲器内画出字符或符号的外形,产生链式码表示,并在链式码表示中设置指示轮廓线冲突的标志。
在第二步,再次扫描轮廓线,把漏掉的标志加到链式码表示中。
在第三步,填充作画缓冲器中的轮廓线的内部。在填充期间,一行接一行地扫描和填充作画缓冲器。但不扫描轮廓线外。它实现了不需要种子点来帮助填充。而且,在第三步中,用了专门的技术来调节舍入误差,使得字符笔划更细,更接近原来的字符。这用于避免前面的填充方法面临的一个像素过填充问题。
本方法和装置结合了边缘填充和种子填充的优点,同时避免了它们的缺点,使它成为一种非常有效和全面的处理系统和装置。
通过结合下面附图阅读本发明的详细描述将能更容易地理解和了解本发明的特征和优点。
图1是15×16位映象字符图像的示意图。
图2是三次Bezier曲线的曲线段示意图。
图3是Bezier曲线的分解图,把一段Bezier曲线在中点位置分成两段,形成新的曲线段,每段都是Bezier曲线。
图4是汉字“颤”的示意图,图8个部分,11条轮廓线构成。
图5是有0—7,8个值表示8个方向的链式码表示的示意图。
图6是传统的已填充了12个像素的填充方法下的过填充矩形。
图7是改进的矩形像素表示,它已填充了6个像素,比图6的矩形更精确。
图8至图13示出了本发明在填充英文字符“F”时的填充过程。
图14和图15示出了通过关于字母“F”的填充过程的三个步骤产生链式码和标志。
图16至图21示出了本发明在填充数字“5”时的填充过程。
图22和图23示出了通过关于数字“5”的填充过程的三个步骤产生链式码和标志。
本发明用三次Bezier曲线来描述字形。参量三次由线段是一种曲线点用一些参数t的三次式项式来表示的曲线。因为是有限的曲线段,所以我们可以限制参数t的范围,0≤t≤1,而不失一般性。对于三次Bezier曲线段,如图2所示,用了四点,以矢量形式表示的曲线方程式如下P(t)=Σi=03Piti(l-t)3-i---0≤t≤1]]>Bezire曲线有许多重要的特性。它们中的一些对实现本发明是有用的,它们是
1.P0和P3是曲线段的两个端点。
2.可以用Bezier曲线来表示直线段。如果连接P0和P3两点来形成直线,则直线P0P3上的任意两点可用作两个剩余控制点P1和P2。
3.两内控制点P1和P2位于两相应端点的曲线段的切线矢量上。即P1=P0+△P0*K0P2=P3+△P3*K3其中K0和K3为标量。
4.如果在中间点t=0.5处把Bezier曲线分成两段,它们中的每段仍是Bezier曲线,新的控制点可以如图3所示由下面的公式计算Q0=P0Q1=P0+P12]]>Q2=P0+2P1+P24]]>Q3=P0+3P1+3P2+P38]]>R0=Q3R1=P1+2P2+P34]]>R2=P2+P32]]>R3=P3上面首先告诉了我们如果一条曲线是由几条曲线段连接而成的,并且该曲线是闭合的,则每条曲线段可以用三个数据点来表示。这是因为一条曲线段的端点是下一条曲线段的起始点。
其次可以把上面用于检查曲线的一部分是否是直线。如果两个控制点位于或者非常接近线段P0P3,则可以认为该曲线是直线,可由两点而不是四点来表示。最后,它还告诉我们在光栅装置上画Bezier曲线的方法。
与英文字符不同,大多数汉字或东方字符由几个不相连的部分构成。每个部分的外形可以包含一条或一条以上条闭合轮廓线。例如,如图4的字符“颤”,由8个不相连的部分构成。在8个部分之中,5个部分(即1,2,5,7,8)由单条闭合的曲线表示,其余3个(即部分3,4,6)由两条闭合曲线表示。每条闭合曲线由几条Bezier曲线段描述。
对于汉字或其它东方字符,本发明将一个部分一个部分地对字形栅格化。即本发明的装置和方法读取一个部分的完整的曲线描述,并在读取和栅格化下一部分之前对它栅格化。在字形内对部分进行栅格化是根据从上至下和从左到右的顺序进行的。在字符“颤”的例子中(图47),栅格化过程将按部分1至8的顺序。
对于每条轮廓线,在该方法中,描述Bezier曲线段的数据点并不位于不变的方向上。该方向可以任意决定,但必须是一致的。例如,如果根据该方向(即顺时针)从左侧看闭合曲线的内侧,则其外侧在右边(即逆时针)。该固定方向的规则对于本发明的填充方法来说非常重要。
作为讨论,下面将描述本发明对一个部分进行栅格化的过程。假设作画缓冲器(帧缓冲存储器)可用于存储经栅格化的位映象字形图形。还假设内轮廓线的方向为逆时针,外轮廓线的方向为顺时针。因此,当找出该轮廓线时,填充方向(应当填充的轮廓线的内部部件)在右边。
填充过程由三个步骤组成,首先在作画缓冲器上产生字形外形,并产生外形的链式码描述和链式码标志;其次加入遗漏的链式码标志,第三,填充轮廓线内部。
所述的第一步是在作画缓冲器上画出字形外形,同时产生外形的链式码描述和链式码标志。
链式码是用来表示数字曲线的编码方法。在该方法中,对连续的曲线像素之间的方向矢量进行编码。链式码通常用8个方向(见图5),可以用3比特码字来编码。
一般,链式码包含起始像素地址后跟一串码字。在本发明中,用四位来表示一个节点,用三位来表示方向,用一位表示一个标志。链式码是轮廓线冲突点的指示,在填充过程中用来避免未填充和过填充。当轮廓线充分缩小以至轮廓线上的不同部分由于数据量化原因而映象到同一组像素上时就会产生轮廓线冲突。
在该步骤中,该方法用Bezier曲线分解特性在作画缓冲器上画出Bezier曲线;并对冲突的外形像素设置链式码标志。
该过程中的这一步骤可以用下列的方法步骤来确定01 清除堆栈,初始化变量02 对每条闭合的轮廓线进行一次03 开始04 如果该段缩小到单个像素05开始06产生该像素的链式码;07 如果作画缓冲器上相关的像素为008开始09把该链式码的标志设置为0;10在作画缓冲器上画出该像素;11结束12 否则把该链式码的标志设置为1;13 如果堆栈为空14停止;
15 否则弹出进堆栈的段16 结束17 否则18 开始19 把一段分成二段;20 把第二段推入堆栈;21 结束22 结束为了保持链式码值,需要一个辅助缓冲器。由于本方法一个部分一个部分地栅格化字形,所以缓冲器的大小由描述字形中所有部分中的一个部分的轮廓线最长总长度(像素总数)来决定。假定一个汉字有N个部分,li表示第i个部分的轮廓线像素的总数;s是所需的缓冲器大小,则我们有s=f(max(li;i=1,…N))在实现本发明的方法前,应当清除作画缓冲器。对于每个新产生的外形像素,将建立一相应的链式码。至于是否把该链式码的标志设置成1,则由作画缓冲器内的其相关的像素值决定。如果该像素值已经画在作画缓冲器上,则把标志设置为1,表示有冲突。相反,把标志设置为0,并在作画缓冲器内画出相关的像素。
该步骤完成时,在作画缓冲器上画出了该字形部分的外形,也产生了链式码及其标志。
以下面的方法进行本过程的第二步。如我们在前面第一步所说的,轮廓线冲突是轮廓线的不同部分由于量化误差而映象到同一组像素上的结果。这些像素中的每个都有两组相关的链式码。在第一步期间,仅设置了第二个链式码标志,需要另外有一步骤来向回检查,设置遗漏的链式码标志。这是为了保证正确填充。该第二步的步骤如下
01 对每条闭合轮廓线进行一次02 开始03得到端点坐标;04做05 开始06从链式码计算当前像素的坐标;07如果该链式码的标志为108 清除作画缓冲器上的外形像素(X,Y);09否则10如果外形像素(X,Y)为011 开始12 把相关链式码的标志设置为113 在作画缓冲器上设置外形像素(X,Y)14 结束15否则16如果外形沿着垂直方向向上,并且17 作画缓冲器内相邻的像素(X+1,Y)为1;18 把该相关的链式码的标志设置为1;19结束20 一直到当前像素到达循环中最后一个像素;21 结束由于所有的轮廓线均闭合,起始像素的坐标与结束像素的坐标相同。对于每条轮廓线,选择一个像素作为起始点,向后分析链式码检查遗漏的链式码标志。如果已经设置了各链式码标志,则它表示一个轮廓线冲突。
有一条额外的链式码,它也映象到已与其冲突的相关的像素上。然后本发明确定该链式码,并把它的链式码标志设置为1。为了完成这一工作,本方法在作画缓冲器中把已经冲突的像素复位到0,并继续分析工作。以后,只要发现作画缓冲器的外形像素被清除,则设置相应的链式码标志。
在第二步中,如果对应的轮廓线处于垂直方向上并且其内部区域宽仅为两个像素,则设置额外的链式码标志。该额外的标志在描述避免过填充的下一步骤第3步中使用。
此时,如果存在冲突像素,只检测出轮廓线内所有的冲突像素,并用链式码标志作标记。还设置额外标志,以避免过填充。因此,现在可以开始填充。
对每条轮廓线,本方法和装置将分析其链式码并检测其相应的标志。如果没有设置标志,本方法将在作画缓冲器内寻找对应的轮廓线像素的位置,并沿水平方向对其内部进行填充。该填充可以从左到右,也可以从右到左,这可以由上述的恒方向转换来判断。填充将沿着预定的方向继续进行,一直到碰到一个已经填充的像素为止。
在填充期间,本方法和装置必须解决过填充问题。本发明的方法首先用数学或参量轮廓线描述来进行外形作画。根据本方法,轮廓线的宽度为零,而在外形作画时,外形有固定的宽度,1个像素。例如,假设有一坐标为(0,0),(3,2)的矩形。该矩形的外形表示由四个矢量(0,0),(3,0);(3,0),(3,2);(3,2),(0,2)和(0,2),(0,0)组成。如果该外形是在作画缓冲器内填充,其结果是一个12个平方单位的矩形(见图6)。然而,在参量条件下,该矩形仅有6个平方单位(见图7)。这就是造成过填充问题的原因。下面过程中的步骤用于省略这些过填充像素。
本过程的外形填充方法的步骤如下01 对每个闭合曲线进行一次02 开始03得到起始点的坐标
04做05 开始06 根据链式码在作画缓冲器中对当前轮廓线像素定位07 决定水平填充方向;08 如果该链式码的标志为零09从该轮廓线像素开始填充作画缓冲器10沿水平填充方向填充,一直到遇到一已填充的像素;11如果(轮廓线处于垂直向下或处于水平向左的方向上);12并且其相应的链式码标志为零;13把该轮廓线复位到零;14 结束15 一直到达结束点16 结束下面提供二个例子来说明本发明的填充方法。图8至图13示出了英文字符“F”的填充过程,图16至21示出了数字“5”的填充过程。在图14,15,22和23中还示出了填充算法的最初两步产生的链式码和标志。
图8至图13中的字符“F”被缩小20×20位的映象图上。其外形用了1000×1000归一化坐标系统,它仅包含一条轮廓线。当把它缩小20×20位的映像图上时,则坐标系统的原点在左下角(即0,0)上。下面的解释基于图8至图13所描述的字符“F”和图14和15的相关的标志码进行的。
在这些链式码标志表中,数字“0”—“7”表示没有相应标志组的链式码,数字“8”—“F”表示有相应标志组的链式码“0”—“7”。
在本装置进行的填充过程的第一步中,以顺时钟方向对字符“F”的外形进行栅格化。如图8所示,把字符的外形画在作画缓冲器上。同时,产生带有一些如图14所示的链式码标志的链式码描述。在像素(6,29)开始轮廓化处理,沿水平方向向右进行15个像素一直到像素(21,29)。
在链式码描述的开始处有15个“0”,表示水平移动了15个像素。此后,轮廓从像素(21,29)到像素(21,25)向下4个像素。再看图14,在链式码描述中有4个“6”,表示垂直移动了4个像素。
链式码描述中下一个数字“4”指示轮廓线从像素(21,25)到像素(20,25)水平移动。链式码描述的数字“0”,“4”,“6”是其标志没有设置的链码。这分别意味着直线向右,然后直线向下,再直线向左。
在图5中可以发现链式码的含义。在图14中有一些链式码,其中已设置了标志,如最后两个链式码“C”。它们意味着除了标志已设置之外其余与链式码“4”相同。第一个“C”表示轮廓从像素(8,29)到像素(7,29)向左移动一个像素,轮廓线像素在像素(7,29)冲突。第二个“C”表示轮廓从像素(7,29)到像素(6,29)向左移动一个像素,轮廓线像素在像素(6,29)冲突。在该步骤中最初两个像素(6,29)和(7,29)的链式码描述还应有设置标志,指示两个像素冲突。然而,因为在产生最初两个“0”时,该方法的步骤过程并不知道有两个像素冲突,所以在该步骤中避免了这种情况。下面的步骤返回加入这些遗漏的标志。
在本装置填充过程的第二步期间,如图15所示设置遗漏的链式码标志。从起始像素(6,29)开始沿着在第一步产生的链式码以逆时针方向跟踪该轮廓线。在该过程中,检查链式码标志和图像缓冲器内的轮廓线像素。在从像素(6,29)至(7,29)跟踪轮廓线时,因为已为相关的链式码设置了标志,所以清除了图像面内的像素(6,29)。同样原因,也清除了图像面内的像素(7,29)。
当再从水平方向跟踪轮廓线到像素(7,29)时,发现像素点已经清除。此时,为相关的链式码设置标志。该链式码为链式码表中开始处的第二个“8”,在图14中,其值为“0”,意味着没有设置标志。同时,再次在图像面内设置像素(7,29)。用同样的方法,还为像素(6,29)的链式码表内的第一个链式码设置标志。另外,再次在图像面内设置像素(6,29)。在第二步中,正确设置了填充过程中所需要的所有链式码标志。
在该过程的第三步中,填充从像素(6,29)以顺时针方向沿轮廓线开始。图9至12示出了到像素(18,28),(12,22),(19,19)和(12,13)的填充过程的中间结果。
在填充过程期间,顺时针扫描轮廓。在每一个轮廓像素点上,检查相关的链式码标志。如果设置了标志,那么,不进行填充。否则,填充该像素与另一个已经画在图像面上的轮廓像素之间的内部部分。
轮廓线像素的填充方向结合两个到达到离开该像素的链式码来决定。例如,在图10中,到达和离开像素(12,22)的链式码都为“6”。在这种情况下,填充方向为水平向左。从像素(12,22)到该笔划另一条边上的像素(9,22)来填充水平行22。
在一些情况下,两个链式码结合表示在该轮廓像素上不必进行填充。这意味着,到了一个不需要填充的顶点。在填充期间,从图像缓冲器中除去向下和向左的轮廓线像素,以补偿数字或参量边缘和图像缓冲器内的实际边缘之间的差异产生的误差。填充之后,图10、11和12中的水平笔划和垂直笔划较细。这是除去过程的效果。图13示出了最后的结果。
上面对图8至15的描述也可应用于图16至23所描述的数字5类似的例子。因此,图22和23内的链式码组和图16至21像素取向过程的相对位置直接与填充字母“F”的描述相对应。
虽然上面对本发明作了具体说明,但应当从广义的范围来阅读下面的权利要求书。
权利要求
1.一种把字符的外形表示转换成位映象形式以形成字符字形的方法,其特征在于,包含为字符的位映象形式提供一缓冲器;为该字符的链式码表示提供一缓冲器;把字符的外形画入第一缓冲器;产生轮廓线的链式码表示;设置表示轮廓线冲突的标志;扫描链式码表示的轮廓线,加入遗漏的链式码标志;在第一缓冲器内填充该字符的轮廓线内部部分;以及打印该字符。
2.如权利要求1所述的方法,其特征在于,进一步包含对具有多个部分的字形部分进行栅格化。
3.如权利要求2所述的方法,其特征在于,进一步包含读取一个部分完整的曲线描述,对曲线描述进行栅格化;然后按顺序读下一个部分,并对它进行栅格化。
4.如权利要求3所述的方法,其特征在于,进一步包含在描述字符的栅格化过程中,画出Bezier曲线。
5.如权利要求4所述的方法,其特征在于,进一步包含以恒定的方向描述Bezier曲线段。
6.如权利要求5所述的方法,其特征在于,进一上包含对起始像素的链式码初始化,其中4位用于表示一个节点,3位用于表示方向,1位用于表示标志。
7.如权利要求6所述的方法,其特征在于,进一步包含用链式码标志表示轮廓线冲突点。
8.一种对特定字符的字形通过字符转换提供位映象的方法,其特征在于,包含把字符的轮廓线的曲线描述转换成它们的位映象描述和链式码描述;在链式码描述中设置标志,避免过填充和未填充;建立字形外形的参量描述与像素描述之间的差异,消除过填充;以及填充轮廓线内部,获得位映象字形。
9.如权利要求8所述的方法,其特征在于,进一步包含仅扫描所述字形的轮廓线内部。
10.如权利要求8所述的方法,其特征在于,进一步包含填充所述字形的轮廓线内部。
11.如权利要求8所述的方法,其特征在于,进一步包含根据字形轮廓线的方向建立填充方向。
12.如权利要求8所述的方法,其特征在于,进一步包含为字形图像设置第一存储缓冲器;为链式码设置第二缓冲器。
13.如权利要求12所述的方法,其特征在于,进一步包含所述第一缓冲器的大小与最大的字符相等,一位用于每个像素。
14.一种对字符字形进行栅格化的方法,其特征在于,包含读取字形的一个部分的曲线描述来对字形进行栅格化;栅格化所述一个部分;读取第二部分;以及此后,通过读取和栅格化各顺序排列的部分按顺序对所述第二部分和任一个部分进行栅格化。
15.如权利要求14所述的方法,其特征在于,进一步包含用方向恒定的Bezier段来描述待栅格化的曲线部分。
16.如权利要求15所述的方法,其特征在于,进一步包含填充字形的部分。
17.一种填充字形部分以在打印过程中产生字符的方法,其特征在于,包含在作画缓冲器内产生字形外形;产生外形的链式码描述和链式码标志;加入遗漏的链式码标志;以及填充字形部分的轮廓线内部部分。
18.如权利要求17所述的方法,其特征在于,进一步包含在作画缓冲器上产生字形外形时,在待编码的连续的曲线像素之间提供矢量方向;以及产生带有链式码标志的外形的链式码描述。
19.如权利要求17所述的方法,其特征在于,进一步包含提供链式码标志,以避免因字形尺寸换算产生的轮廓线冲突。
20.如权利要求18所述的方法,其特征在于,进一步包含作画缓冲器通过分解Bezier曲线画出Bezier曲线。
21.如权利要求18所述的方法,其特征在于,进一步包含至少通过第二缓冲器保存链式码值。
22.如权利要求18所述的方法,其特征在于,进一步包含为每个新产生的字符的各部分的外形像素提供相应的链式码。
23.如权利要求22所述的方法,其特征在于,进一上包含设置链式码,指示已画在作画缓冲器上的像素的冲突。
24.如权利要求23所述的方法,其特征在于,进一步包含选择作画缓冲器的起始点的像素;返回分析链式码,检查遗漏的链式码标志;以及由此建立轮廓线冲突。
25.如权利要求18所述的方法,其特征在于,进一步包含检测并标记冲突链式码标志;设置额外的链式码标志,避免过填充;以及,填充所述字形。
全文摘要
一种把字符的外形表示转换成其位映象形式的数据转换装置和方法,使用两个缓冲器,一个用于字符符号的位映象形式,另一个用于字符外形的链式码表示。在该方法中使用三个步骤。第一步在作画缓冲器上画出字符外形,并产生带有标志的链式码表示,以指示轮廓冲突。然后再次扫描轮廓线,在链式码表示中加入遗漏的标志。最后,用轮廓的链式码表示来填充作画缓冲器上的轮廓线的内部部分,以提供已填充的字符。
文档编号G06T11/40GK1118471SQ95109809
公开日1996年3月13日 申请日期1995年8月17日 优先权日1994年8月17日
发明者周皓, 邵东军 申请人:普林特罗尼克斯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1