首页> 中国专利> 字符图形发生装置

字符图形发生装置

摘要

一种字符图形发生装置,包括CPU和存储器。CPU判断字符的精细度是否从标准的粗细度改变而来,并当字符的粗细度改变时,判断改变字元轮廓形状数据中每个构成字元的粗细度的过程是通过计算还是通过用替换字元替换完成的。然后,CPU根据该判断改变字元轮廓形状数据中粗细度,并根据字符形状框架数据使字元框架形状数据变形。与此有关,CPU根据改变的字元框架形状数据改变字元轮廓形状数据,并利用改变的字元轮廓形状数据产生字符图形。

著录项

  • 公开/公告号CN1175749A

    专利类型发明专利

  • 公开/公告日1998-03-11

    原文格式PDF

  • 申请/专利权人 夏普株式会社;

    申请/专利号CN97117832.1

  • 发明设计人 长谷川进;渡边一;朝井宣美;

    申请日1997-08-22

  • 分类号G06T1/00;

  • 代理机构上海专利商标事务所;

  • 代理人张政权

  • 地址 日本国大阪府

  • 入库时间 2023-12-17 13:08:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-10-24

    未缴年费专利权终止 IPC(主分类):G06F7/00 授权公告日:20021106 终止日期:20110822 申请日:19970822

    专利权的终止

  • 2002-11-06

    授权

    授权

  • 1998-03-11

    公开

    公开

  • 1998-02-25

    实质审查请求的生效

    实质审查请求的生效

说明书

本发明涉及字符图形发生装置,尤其涉及一种具有轮廓字体的字符并产生具有不同粗细笔划的各种字符图形的字符图形发生装置。

上述字符图形发生装置的例子包括产生粗体字符图形或细体字符图形。例如第4-24689号日本特开平公报披露了一种字符发生装置,其中,构成字符轮廓的一组点向轮廓的内或外位移一个预定的长度。位移方向与每个点的轮廓斜率垂直。

而且,第4-136898号日本特开平公报披露了一种方法,其特点是为接近于字符(具有直线/曲线)轮廓的数据附加一个属性,该属性对应于近似直线/曲线的状态,并通过利用该附加的属性,改变笔划的直线宽度和部分改变轮廓的形状。

然而,根据上述两件日本特开平公报所披露的方法,在移动每个轮廓点时需要包括计算角度在内的复杂程序,这将导致大量的计算操作。再者,由于位移量为固定,设计的字符中原来所示的粗笔划部分或细笔划部分变得单调,由此降低了质量。此外,还必须为每个轮廓点附加变形纠正数据,诸如位移方向和位移量,故附加数据的步骤量以及字体数据量也很大。

此外,诸如第8-12544号日本专利公报披露的一种常规的字符图形发生装置,按线条画(表示字符图形的框架)所示的字符形状状,以及基本字元(构成字符图形的字型)的轮廓形状状存储数据,作为多个参数,并通过以字符形状状的数据为基础为每种字符修改和组合构成字元的形状产生字符图形。

然而,这种存储构成字元之形状的数据,作为形成轮廓的多个字元参数的方法需要对字元参数和登记操作有专业的知识,以便设计和登记这些参数。因此,要不具备专业知识的人,诸如字符字体设计师来修改这些固定字元构成是困难的。

而且,采用这种方法,需要对诸如字符的弯曲部分或鳞状(鳞片状)部分之类的形状进行许多修改,以保持字符在字型方面的质量。

本发明考虑到这些情况,其目的在于提供一种字符图形发生装置以产生一种更高质量的字形,其中减少了准备数据的步骤数以及产生粗字符图形或细字符图形所需的数据量,并减少了计算量。此外,本发明提供一种字符图形发生装置,用少量的步骤产生多种高质量无设计限制的字形。

因此,本发明提供一种字符图形发生装置,它包括:存储器,用以事先存储字符形状框架数据,它表示了字符的框架形状状,具有一组字元框架形状的字元框架形状数据,该组字元构成了每种字型的字符,具有一组字元轮廓形状的字元轮廓形状数据,该组字元为每种字型构成字符;粗细度判断装置,判断字符的粗细度是否从标准粗细度改变;粗细度改变过程判断装置,如字符的粗细度被改变时,判断字元轮廓形状数据中每个构成字元的粗细度是通过计算改变的,还是通过用替换字元来替换而改变;字元轮廓粗细度改变装置,根据粗细度改变过程判断装置改变字元轮廓形状数据的粗细度;字元框架形状/字元轮廓形状改变装置,根据字符形状框架数据改变字元框架形状数据,并根据改变的字元框架形状数据,相应地改变字元轮廓形状数据;以及利用改变的字元轮廓形状数据产生字符图形的发生装置。

根据本发明,如字符的粗细度作了改变,粗细度改变过程判断装置判断改变粗细度的过程是通过计算进行的,还是通过用另一字元替换该字元进行的。字元轮廓粗细度改变装置根据粗细度改变过程判断装置的判断,改变字元轮廓形状数据中每个构成字元的粗细度。因此,可以用与字元有关的最合适的方法改变每个字元的形状。例如,如果当通过计算改变字符的粗细度时,字符的质量劣化,则可以准备另一个字元进行替换。这就可以产生具有极高质量而容量相当小的粗或细字符图形。

图1是表示本发明的一个方框图。

图2是一个方框图,它表示根据本发明实施例的字符图形发生装置的示意性结构。

图3是一个说明性的示意图,它表示根据本发明实施例的以字符形状的框架数据形式而存储的内容的一例。

图4是一个说明性的示意图,它表示一例根据本发明实施例1的一个字符的字符形状状框架数据中的几何信息。

图5是一个示意图,它表示根据本发明实施例的以字元框架形状数据形式而存储的内容的一个例于。

图6是一个示意图,它表示根据本发明实施例1的通过字元框架形状数据的坐标变换的框架点的移动。

图7是一个示意图,它表示根据本发明实施例1的以字元轮廓形状数据方式而存储的内容的例子。

图8是一个示意图,它表示根据本发明实施例1的字元轮廓形状的轮廓点与字元框架形状的框架点之间的对应性。

图9是一个示意图,它表示根据本发明实施例1在改变字元轮廓形状时轮廓点的移动。

图10A是一个示意图,它表示一例根据本发明实施例1的字元轮廓形状数据中一个字元的原始轮廓形状状。

图10B是一个示意图,它表示一例根据本发明实施例1,在字元轮廓形状数据中进行坐标变换后的一个字元的轮廓形状状。

图11是一个流程图,它表示根据本发明实施例1的操作。

图12是一个流程图,它表示根据本发明实施例1的操作。

图13是一个示意图,它表示根据本发明实施例1在改变粗细时轮廓点的移动。

图14是一个示意图,它表示根据本发明实施例1在改变字元轮廓形状数据中的轮廓形状状之后的一例几何信息。

图15是一个示意图,它表示根据本发明实施例1在改变字元轮廓形状数据中的粗细度和轮廓形状状之后的几何信息的例子。

图16是一个方框图,它表示根据本发明实施例2的一个字符图形发生装置的示意性结构。

图17是一个示意图,它表示根据本发明实施例2以字符形状框架数据所存储的内容的例子。

图18是一个示意图,它表示根据本发明实施例2,一例用于一个字符的字符形状框架数据内的几何信息。

图19是一个示意图,它表示根据本发明实施例2,在字元轮廓形状数据中所存储的内容的一例。

图20A是一个示意图,它表示根据本发明实施例2一例用于字元轮廓形状数据内一个字元的几何信息。

图20B是一个示意图,它表示根据本发明实施例2一例用于字元轮廓形状数据内一个字元的几何信息。

图21A和21B是一个流程图,它表示根据本发明实施例2的操作。

图22是一个示意图,它表示根据本发明实施例2,字元轮廓形状的轮廓点与字元框架形状的框架点之间的对应性。

图23是一个示意图,它表示根据本发明实施例2,在普通属性的情况下轮廓点的移动。

图24是一个示意图,它表示根据本发明实施例2,在相对位置维持属性的情况下的轮廓点的移动。

图25是一个示意图,它表示根据本发明实施例2,在绝对位置维持属性的情况下,轮廓点的移动。

图1示出本发明的结构。本发明中,通常将包含ROM,RAM和I/O端口的微处理器用于粗细度判断装置,粗细度变更过程判断装置103,字元轮廓粗细度修改装置104,字元框架形状/字元轮廓形状修改装置105以及发生装置106。ROM则通常用作存储器101。

在本发明的上述结构中,根据用户的指令可以进行粗细度判断装置102的判断。

存储器101较佳地事先存储字符形状框架数据、字元框架形状数据和字元轮廓形状数据,因此,字符形状框架数据包括(a)字元合格数据,用以表明相应于各组成字元的字元轮廓形状数据,以及(b)判断构成字元粗细度修改过程所需的粗细度修改过程判断数据。

而且,存储器101预先存储字符形状框架数据、字元框架形状数据和字元轮廓形状数据,这样,对一种字型的字元轮廓形状数据包括了修改字元轮廓粗细度的过程所需的粗细度修改属性。

此外,存储器101较佳地预先存储字符形状框架数据、字元框架形状数据和字元轮廓形状数据,故一种字型的字元轮廓形状数据包括修改字元轮廓形状状所需的字元轮廓形状修改数据。

而且,存储器101在使字元框架形状数据中的每个框架点经过坐标变换以使Y坐标为零并修改与其有关的字元轮廓形状数据后,预先较佳地存储这些字符形状框架数据、字元框架形状数据和字元轮廓形状数据。

字元轮廓粗细度修改装置104根据粗细度修改属性数据,对于字元轮廓形状数据内的每个轮廓点,在判断是否(a)X坐标为固定而Y坐标单独移动,或(b)X和Y坐标均为固定后较佳地修改这些字元轮廓形状状的粗细度。

本发明的另一方面是提供一种字符图形发生装置,它包括:存储器,预先存储表示字符框架形状状的字符形状框架数据,具有一组框架形状字符字元的字元框架形状数据,该字符字元构成了每种字型的字符,以及具有一组字元轮廓形状的字元轮廓形状数据,而该字符字元用来构成了每种字型的字符;字元框架形状修改装置,根据字符形状框架数据修改字元框架形状数据;修改程序判断装置,判断移动轮廓点的情况;字元轮廓形状修改装置,根据修改程序判断装置判断的移动轮廓点的情况,移动字元轮廓形状数据中的每个轮廓点;以及发生装置,通过所修改的字元轮廓形状数据的应用产生字符图形。

根据本发明的这一方面,通常将包括ROM、RAM和I/O端口的微处理器用于字元框架形状修改装置、修改程序判断装置、字元轮廓形状修改装置以及发生装置。存储器通常采用ROM。

根据本发明的这一方面,字元框架形状修改装置根据字符形状框架数据修改字元框架形状数据;然后,修改程序判断装置判断移动轮廓点的情况;字元轮廓形状修改装置根据移动轮廓点的情况(由修改程序判断装置判断)移动字元轮廓形状数据中的每个轮廓点。因此,根据构成字元有关的轮廓形状可以用最合适的方法移动字元轮廓形状数据内的每个轮廓点。这就能够产生高质量的字符图形。

根据本发明的这一方面的上述结构,字元轮廓形状修改装置通过固定被移动的轮廓点与相应框架线之间的距离,并根据对字元框架的修改,通过增大或减小垂足与框架点之间的距离,较佳地移动字元轮廓形状数据内的轮廓点,该垂直线是垂直于框架线从被移动的轮廓点画出的一条线。

而且,字元轮廓形状修改装置还通过固定被移动的轮廓点与相应框架线之间的距离,并固定垂足与框架点之间的距离,较佳地移动字元轮廓形状数据中的轮廓点,该垂直线是垂直于框架线从待移动的轮廓点画出的线条。

此外,字元轮廓形状修改装置还通过固定轮廓点与框架点之间的距离和角度,较佳地移动字元轮廓形状数据内的轮廓点。

实例

从以下结合附图对实施例1和2所作的详细描述中,本发明的以上和其它的目的将变得更为清楚。然而,对于本领域的熟练人员而言,根据该详细的描述显然还可以作出各种变化和变换,因此,实施例和附图仅仅是为了说明而并非用来限制本发明的范围。

根据本发明的字符图形发生装置通常可以与日文文字处理器或个人计算机结合使用。然而,根据本发明的字符图形发生装置可以应用于任何一种字符,只要每个字符都包括多个字元即可。例如,该字符图形发生装置可以应用于英文字符、中文字符、韩国(朝鲜)文字符等等。在此情况下,根据本发明的字符图形发生装置可以与英文文字处理器、中文文字处理器、朝鲜文文字处理器或类似的文字处理器结合使用。

实施例1

图2是一个方框图,它表示根据本发明实施例1的一种字符图形发生装置。参见图2,该字符图形发生装置包括键盘10、辅助存储器11、CPU12、主存储器13、位图存储器14以及包括激光打印机、热打印机在内的输出装置15,或其它类似的装置。

键盘10用于输入字符编码,它表示待产生的字符和字型码。辅助存储器11预先存储表示字符形状状的字符形状框架数据、表示组成字元框架形状的字元框架形状数据,该组成字元形成每个字符,以及表示形成每个字符的组成字元的轮廓形状的字元轮廓形状数据。

CPU12包括粗细度判断部分,它根据设计的字型编码判断字符的粗细度是否作了修改;粗细度修改过程判断部分,它通过计算或用另一个字元替换此字元,判断是否完成每个构成字元之粗细度的修改过程;字元轮廓粗细度修改部分,用以修改轮廓形状状的粗细度;字元框架形状/字元轮廓形状修改部分,根据字符的框架形状状修改字元框架形状状和字元轮廓形状状;以及产生字符图形的发生部分。

而且,CPU12包括程序存储器和工作区存储器,用以执行控制操作,以辅助存储器11和主存储器13中的每个数据为基础产生字符图形。这些字符图形在位图存储器14上展开为位图数据,并通过输出装置15诸如激光打印机或热打印机打印输出。

主存储器13包括输入缓冲区,用以暂存从辅助存储器11读出的字符数据;输出缓冲器,用以暂存表示修改形状的字元轮廓形状数据;以及存储器部分,用以存储表示修改粗细度的字元轮廓形状数据。

例如,采用以下的方法来存储字符的轮廓形状状,(1)通过直线近似存储字符的轮廓的方法,(2)通过直线和圆弧存储字符轮廓的方法,(3)通过直线和曲线存储字符轮廓的方法。这些方法中,方法(3)最适合于产生该字符图形,它考虑了字符的质量、数据容量的有效性及其它因素。考虑到这一点,本实施例采用上述方法(3)存储每个字符的轮廓。这样,在辅助存储器11中存储由直线和曲线存储的字符的轮廓数据,作为字元轮廓形状数据中轮廓点的坐标数据。

接下来将描述辅助存储器11内所存储的内容。图3是一个示意图,它表示所存储的字符形状框架数据的一个例子。该字符形状框架数据包括用以区分字符种类的字符编码30,由一个字符形状框架数据产生的字型31,以及构成字符形状状的字元32。而且,为每种字型编码以及为每个构成字元存储字元合格数据和粗细度修改过程确定数据。

通过将字符构成字元数乘以所产生的字型数存储为字元合格数据。字元合格数据包括表明字元轮廓形状状对应于构成字元的字元编码35,形成构成字元的框架点数目36,以及指向框架点坐标数据的指针37。

在字元合格数据分组后,接着存储了粗细度修改进程判断数据。这些粗细度修改过程判断数据通过将字符构成字元数乘以所产生的字型数而存储。该粗细度修改进程判断数据包括(a)一个粗字元替换判断码60,如果字符较粗,则用以表明是否执行用另一种字元替换该构成字元的过程,(b)一个细字元替换判断码61,如果字符较细,则用以表明是否执行用另一种字元替换该构成字元的过程,(c)一种粗变通字元码62,用以在执行该字元的替换过程中修改该字元码,以及(d)一种细变通字元码63,用以在执行字元替换过程中修改该字元码。

在对粗细度修改过程判断数据分组后,接着存储框架点坐标数据。这些框架点坐标数据按这样一种方式存储,即构成字元的一组框架点坐标数据39跟随着字符的框架点数38后面。图4表示一例用于键盘10输入的一个字符的字符形状框架数据中的几何信息。该例中,根据JIS字段点(Kuten)码,指定第1643的字符码“伊”。

图5是一个示意图,它表示一例所存储的字元框架形状数据。在字元框架形状数据中,首先存储表示该字型的字型码40,然后存储为字型准备的字元数41,继之以字元框架数据1至N(设字元数为N)。

即,为每个字元和每个字元框架数据设置的字元框架数据包括:字元码42、构成该框架的框架点数43、以及指向该框架点坐标数据的指针44。该组字元框架数据后跟框架点总数以及每个字元的框架点坐标数据46。

在对按原始字元形式的每个框架点的X和Y坐标进行坐标变换后,使得每个框架点的Y坐标将为零,存储每个字元的框架点,图6表示按原始框架形状式的框架点与经过坐标变换后的框架点之间的对应性。图6中,点K0,K1,K2,K3和K4表示原始框架点,在字元框架形状数据中有一个构成字元。这些是与构成图4所示汉字字符左边旁“亻”的撇(stretched)部分“丿”相应的字元的框架点(字符“伊”的字符形状框架数据)。

连接框架点K0,K1,K2,K3和K4的直线段成为K0-K1,K1-K2,K2-K3,K3-K4,线段的长度分别为L0,L1,L2和L3。

首先,将框架点K0移动到坐标值为(0 ,0)的K0′。然后,框架点K1移到K1′,后者位于X轴方向上离K0为长度L0的位置上。框架点K2移到K2′,它位于X轴方向上离K1′为长度L1位置上;框架点K3移到K3′,它位于X轴方向上离K2′为长度L2的位置上;框架点K4移到K′4,它位于X轴方向上离K3′为长度L3的位置上。这样、经坐标变换后的框架点K0′,K1′,K2′,  K3′和K4′即作为字元框架形状数据中的框架点坐标数据存储。

图7是一个示意图,它表示一例所存储的字元轮廓形状数据。在该字元轮廓形状数据中,首先存储表示字符字型的字型码50,然后存储为字型准备的字元号51,继之是字元轮廓数据1至M(设字元数目为M)。

即,字元轮廓数据提供给每个字元,且每个字元轮廓数据包括字元码52、构成该轮廓的轮廓点数53,以及指向该轮廓点坐标数据的指针54。该组字元轮廓数据后跟轮廓点的总数55以及每个字元的轮廓点坐标数据56。

一个字元的轮廓点坐标数据包括字元轮廓形状修改数据70和粗细度修改属性数据71。在具有相同字元码的字元中,字元轮廓形状修改数据70示出字元轮廓形状轮廓部分与字元轮廓形状的轮廓点之间的对应性。字元轮廓形状修改数据70以每个轮廓点所属的轮廓点数的形式被存储字。粗细度修改属性数据71以移动过程判断码的形式存储、该判断码表示在修改粗细度中移动该轮廓点的过程。

图8表示字元轮廓形状修改数据,即一个构成字元中,采用字元轮廓形状的轮廓点与采用字元框架形状的框架点之间的对应性。图8中,点K0,K1,K2,K3,和K4表示原始的框架点,字元框架形状数据中的一个组成字元就有上述的原始框架点。这些是与构成图4所示汉字字符的左边旁“亻”的“撇”部分“丿”相对应的字元的框架点(字符“伊”的字符形状框架数据)。另一方面,点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9表示字元轮廓形状数据中每个组成字元所具有的轮廓点。这些是与构成图4所示汉字字符的左边旁“亻”的“撇”部分“丿”相对应的字元的框架点(字符“伊”的字符形状框架数据)。

连接框架点K0,K1,K2,K3和K4的直线段分别成为K0-K1,K1-K2,K2-K3,K3-K4。相对每个轮廓点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9进行计算,以确定该线段离轮廓点的距离为最短。如此确定的作为线段的起始点的框架点数分配为轮廓点所属于的框架点数。如此确定的框架点数作为字元轮廓形状数据中的字元轮廓形状修改数据存储。如果在与字元框架形状的变形有关的修改字元轮廓形状的过程中使一个框架点的坐标值发生变化,则判断由先前的框架点和随后的框架点所定义的两条线段从而找到作为两条线段的起始点的两个框架点的编号数。作为字元框架形状修改数据,所有与两个框架点有着相同框架数的轮廓点都是移动的对象。

通过移动轮廓点,预先改变字元轮廓形状数据中每个字元的形状,这与以下的事实有关,即在相应的字元框架形状中使原始形状具有的框架点的X和Y坐标值经过坐标变换,使得所有Y坐标值均为零。换句话说,如前面图8中所述,根据字元框架形状数据中线段K0-K1,K1-K2,K2-K3,以及K3-K4的移动,移动字元轮廓形状数据中的轮廓点P0至P9。

以下将参照图9详细说明轮廓点的移动。说明将针对一种情况即仅仅移动线段K3-K4。轮廓形状修改数据表明,当线段K3-K4移动到K3′-K4′时,轮廓点P5、P6和P7是移动的目标(因为轮廓点P5,P6和P7属于的框架点数为(K3))。轮廓点P5和P7的移动条件如下:

(1)从轮廓点P5和P7至线段K3-K4的垂足分别为CP1和CP2。线段K3-CP1,CP1-CP2,以及CP2-K4的长度分别设为L1、L2和L3。

点CP1′和CP2′将按照线段K3-K4的比例L1∶L2∶L3在线段K3′-K4′上产生(框架点K3′与框架点K3相同)。这里,线段K3′-CP1′、CP1′-CP2′以及CP2′-K4′的长度假定分别为L1′L2′和L3′。

(2)假如从点P5和P7至线段K3-K4的距离分别为D5和D7,点P5和P7将按与线段K3′-K4′垂直的方向从(1)中获得的点CP1′和CP2′移到点P5′和P7*,距离分别为D5和D7。

即图9中,点P5和P7的移动条件是:

(a)长度比L1∶L2∶L3=L1′∶L2′∶L3′,

(b)距离D5=D5′,距离D7=D7′。

尽管轮廓点P6的移动条件相同,轮廓点P6也将移到轮廓点P6′,这是与从框架点K4移动的框架点K4′相同的点,因为图9中轮廓点P6具有与框架点K4相同的坐标值。

由于移动轮廓点的过程满足了上述条件(a)和(b),故可以根据字元框架形状的坐标变换修改字元轮廓形状。将如此修改的轮廓点作为轮廓点坐标存储在字元轮廓形状数据内。图10A表示字元轮廓形状数据中一个构成字元的原始轮廓形状的例子,经修改的一个轮廓形状的例子示于图10B。

下面将结合图11和12所示的流程图,说明如此构成的字符图形发生装置。

首先,由键盘10输入待产生的字符码和字型码(步骤S1)。然后CPU12对每个字符根据字符码读入用于产生过程的、字符形状框架数据,还将对应于字型码的字元框架形状数据和字元轮廓形状数据从辅助存储器11读入主存储器13的输入缓冲器(步骤S2)。

然后,在粗细度判断部分,根据步骤S1输入的字型码,CPU12判断待产生的字型是否为经过粗细度修改的字型(步骤S3)。如为不需要进行粗细度修改的字型,过程进入步骤S4。如为需要进行粗细度修改的字型,则过程进入步骤S6。

步骤S4,根据步骤S2读取的字符形状框架数据,CPU12接收一个构成字元的字元合格数据和框架点坐标数据,这些数据由输入缓冲器送到CPU12内的工作存储器。

步骤S5,根据读到输入缓冲器的字元框架形状数据和字元轮廓形状数据,CPU12接收对应于字元码35的字元的轮廓点坐标数据,并送到CPU12内的工作存储器。

然后,过程进入步骤S15。根据步骤S4中送到CPU12内工作存储器内的字符形状框架数据中的构成字元的框架点坐标数据,CPU12内字元框架形状/字元轮廓形状修改部分通过扩大、收缩、旋转等等使字元框架形状数据中每个框架点的坐标值与框架点坐标数据一致。

然后,根据前面参照图8所述的在字元框架形状数据中移动线段K0-K1,K1-K2,K2-K3以及K3-K4的条件,移动字元轮廓形状数据中的轮廓点P0至P9。该移动轮廓点的情况与参照图9所述的情况相同。

在结束构成字元中所有轮廓点的移动过程之后,步骤S16将已移动的轮廓点P0′至P9′输出到主存储器13的输出缓冲器内。

如上述步骤S3,CPU12判断待产生的字型需要对粗细度修改,则CPU12执行以下过程。

步骤S6,CPU12从步骤S2读得的字符形状框架数据,取出一个构成字元的字元合格数据、粗细度修改过程判断数据以及框架点坐标数据从输入缓冲器送到CPU12内的工作存储器内。

然后,程序进入步骤S7。CPU12中的粗细度修改程序判断部分检查粗细度修改过程判断数据中的字元变更判断码,并判断是否应执行该字元的变更。如果字型码所设计的字型为粗字符图形,则采用字元变更判断码60(相对粗的字符)。如果字型码所指定的字型为细字符图形,采用字元变更确定码61(对细的字符)。如果执行字元变更,则程序进入步骤54。如粗细度修改过程无需字元变更,则程序进入步骤步骤S8。

步骤S8,CPU12从读入输入缓冲器的字元框架形状数据和字元轮廓形状数据中,取出对应于字元码35的字元的框架点坐标数据46和轮廓点坐标数据56,送到CPU12的工作存储器内。然后,CPU12中的字元轮廓粗细度修改部分,从轮廓点坐标数据中取出一个轮廓点和相应粗细度的修改属性数据。(步骤S9)

步骤S10,CPU12检验粗细度修改属性数据并判断在修改字元轮廓形状的粗细度中,(a)是否轮廓点的X坐标为固定,而只单独对轮廓点的Y坐标修改,或(b)X和Y坐标均固定。如果X坐标固定,Y坐标单独改变,则过程进入步骤S11。如果X坐标和Y坐标均为固定,则程序进入步骤S12,无需移动轮廓点。

图13表示修改粗细度时轮廓点的移动。图13中,点K0、K1和K2表示在坐标变换后字元框架形状数据中一个构成字元所具有的框架点。这些是对应于“撇”部分“丿”的字元框架点,构成图4所示汉字字符的左边旁(字符“伊”的字符形状框架数据)。另一方面,点P0,P1,P2,P3和P4表示在坐标变换后,字元轮廓形状数据所具有的一个构成字元的轮廓点。这些是对应于图4所示构成汉字字符左边旁“亻”撇”部分“丿”的字元轮廓点(字符“伊”的字符形状框架数据。然而,图13中,为了简化的原因,与图8和图9相比,省去了与说明无直接联系的框架点和轮廓点。点P0和P3是轮廓形状的起始点和终止点。此例中,假如X和Y坐标均为固定,点P1、P2和P4的移动过程判断码表明,X坐标为固定的而Y坐标单独改变。

连接框架点K0和K1的线段为K0-K1,连接框架点K1和K2的线段为K1-K2。因为字元框架形状数据中的每个框架点均经过坐标变换,使得Y坐标全部为零,这些线段全部放置在X轴上。可见,从每个轮廓点P1、P2和P4至最近的线段的距离分别D1、D2和D4。由于根据字元框架形状数据的坐标变换修改了字元轮廓形状数据中的轮廓点,每个距离D1、D2和D4都与每个轮廓点的Y坐标的绝对值相等。

距离D1乘以预先在CPU12的程序存储器中定义的粗细度修改常数,成为距离D1′,然后经过符号判断(正或负)给出移动的轮廓点P1′的Y坐标(步骤S11)。

然后,CPU将轮廓点P1′存储到主存储器13的存储部分(步骤12)。其中,粗细度常数对于待产生的每种字型而言是恒定的。如果产生粗体字符,该常数大于1。如果产生细体字符,该常数小于1。

对于每个轮廓点的移动,CPU12判断是否已经完成了构成字元中所有轮廓点的粗细度修改过程(步骤S13)。如果还未完成对所有轮廓点的粗细度修改过程,程序返回步骤S9,以执行下一个轮廓点的过程。图13中,点P2′和P4′以及点P1′是移动后的轮廓点。

然后,程序进入步骤S15。根据存入CPU12之工作存储器的字符形状框架数据中的构成字元的框架点坐标数据,CPU12中的字元框架形状/字元轮廓形状修改部分,利用扩大、收缩、旋转等等,使字元框架形状数据中的每个框架点的坐标值与框架点坐标数据相一致。结合字元框架形状的变形,移动存储在主存储器13的存储器部分内的粗细度修改轮廓点。移动该轮廓点的情况与前面参照图9所述的情况相同。

在完成移动一个构成字元的所有粗细度修改轮廓点的过程以后,在步骤S16,CPU将移动的轮廓点输出到主存储器13的输出缓冲器内。

如步骤S7,CPU12判断执行了构成字元的字元变更,则CPU12完成以下过程。

步骤S14,CPU12检测对应于字符形状框架数据内字元码35的另一字元码。如果待产生的字型为粗字符图形,CPU检测另一字元码62(为粗字符)。如果待产生的字型为细字符图形,CPU检测另一字元码63(为细字符)。然后,CPU12将与另一字元码对应的字元的框架点坐标数据46和轮廓点坐标数据56存入CPU12的工作存储器。

然后,程序进入步骤S15。根据存入CPU12内工作存储器的字符形状框架数据中的构成字元的框架点坐标数据,CPU12内的字元框架形状/字元轮廓形状修改部分通过扩大、收缩、旋转等等,使字元框架形状数据的每个框架点的坐标值与框架点坐标数据相一致。结合字元框架形状的变形,移动字元轮廓形状数据的轮廓点。该移动轮廓点的情况与以上参照图9所述的情况相同。

在完成移动一个构成字元的全部轮廓点的过程之后,步骤S16,CPU将移动的轮廓点输出到主存储器13的输出缓冲器内。

图14表示根据框架形状“伊”(为图4中举例的字符形状框架数据),在修改字元轮廓形状数据之后的几何信息。图15也表示在修改框架形状“伊”的字元轮廓形状和粗细度之后的几何信息。

步骤S17,CPU12判断字符中的所有构成字元是否作了处理。如判断为“是”,程序进入步骤S18,其中,将主存储器13的输出缓冲器中的数据送到位图存储器14,结束过程。如判断为“否”,则程序返回步骤S3,由CPU12检查字符字型码。

然后,将送到位图存储器14的轮廓点数据展开为位图数据打印,并通过输出装置15诸如激光打印机、热打印机或类似的装置输出。

这样,在修改字符中的构成字元的粗细度时,CPU12判断构成字元的粗细度是通过计算完成的,还是用另一个粗(细)字元替代该字元而完成的。按照该判断,以字符形状框架数据为基础,通过计算或替换修改字元框架形状数据,此外,还进一步修改字元轮廓形状状。然后,利用修改的轮廓形状状产生字符图形。

这样,与所有字符图形必须经过设计的现有技术的字体开发相比,由于只要设计表示构成字元轮廓的字元轮廓形状状就能产生字符图形,故采用少量的步骤就能开发一种字型。

而且,通过采用字元合格数据产生字符的轮廓,该字元合格数据相对每个构成字元包括框架形状修改数据和表明对应于构成字元轮廓形状的字元码。因此,在设计字符形状时没有结构上的限制强加于此,当与常规的存储框架点坐标(表示字符框架形状和在每个框架点的单线条宽度参数)的方法比较时,可以无妨碍地自由设计字符形状状和字符字型。

此外,由于字符形状框架数据包括粗细度修改过程判断数据,故可以在通过粗细度修改过程而变形和通过字元替换而变形之间为每个构成字元选择最合适的方法,由此可以产生具有极高质量的粗或细的字符图形。

再者,由于字元轮廓形状数据包括粗细度修改属性数据,故可以为每个轮廓点选择移动过程,由此在修改粗细度时通过精细调节轮廓,可以产生具有极高质量的粗或细的字符图形。

此外,本发明的装置适合于存储轮廓形状修改数据,用于修改字元轮廓形状并不失真地变形轮廓形状,由此可以公共使用字元轮廓形状,可以减少开发一种字型所需的字元轮廓形状数据的量。

再者,在预先经过坐标变换后,字元框架形状状和字元轮廓形状状被存储起来,这样,便使它们位于X轴上。因此,在改变字元框架形状状和字元轮廓形状状以及在改变粗细度方面就可以减少高级计算诸如角度计算的工作量,由此可以高速产生字符图形。

而且,在改变粗细度时,通过一种简单的乘法可以调节Y坐标值,以改变构成字元的粗细度,由此可以以极高速度产生粗或细的字符图形。

在本实施例中,CPU根据所指定的字符字型码判断字符的粗细度是否改变。然而,该装置允许用户指定待产生的任意粗细度的字符,并允许根据此指定改变字符的粗细度。此外,可以事先将字符分为3类,包括粗字符、原始字符和细字符,或分为5类,包括粗字符、稍粗字符、原始字符、稍细字符和细字符,允许用户在其中选择任意一类。实际上,在此情况下,也可以准备优选的字元。

而且,可以如下进行判断,即哪些构成字元应当通过计算进行粗细度修改,哪些构成字元应当用另一种字元替换。例如,如果通过计算进行字符的粗细度改变,该字元的字符质量将下降。则,可以准备另一些字元进行替换。这样就有可能产生极高质量的、粗细均匀的字符图形。

实施例2

图16是一个方框图,它示意性地表示根据本发明实施例2的字符图形发生装置的结构。参见图16,字符图形发生装置包括:含有键盘或类似部件的输入装置10a、辅助存储器11a、CPU12a、主存储器13a、位图存储器14a以及含有激光打印机、热打印机之类的输出装置15a。

输入装置10a用以输入要生成的字符的字符码以及字符字型码。辅助存储器11a存储字符形状框架数据、字元框架形状数据和字元轮廓形状数据。

CPU12a包括字元框架形状改变部分,用以根据字符形状框架数据改变字元框架形状状;字元轮廓形状改变部分,用以改变字元的轮廓形状状;改变过程确定部分,以确定在改变字元轮廓形状状方面的改变过程以及产生字符图形的发生部分。

而且,CPU12a还包括程序存储器和工作区存储器,执行一种控制操作,以根据辅助存储器11a和主存储器13a内的每一数据产生字符图形。这些字符图形在位图存储器14a上扩展成位图数据并通过输出装置15a诸如激光打印机或热打印机打印输出。

主存储器13a包括输入缓冲器,暂时存储从辅助存储器11a读出的字符数据,输出缓冲器暂时存储表示改变了形状的字元轮廓形状数据,存储器部分存储表示改变了形状的字元框架形状数据并存储轮廓形状改变数据。

字符的轮廓形状状例如采用以下的方法存储,(1)通过直线近似法存储字符的轮廓的方法,(2)通过直线和圆弧存储字符轮廓的方法,(3)通过直线和曲线存储字符轮廓的方法。这些方法中,考虑到字符的质量、数据容量的效率及其它的因素,方法(3)是最适合于产生字符图形的,因此,本实施例中,在辅助存储器11a中存储通过上述方法(3)获得的数据,作为字元轮廓形状数据中的轮廓点的坐标数据。

接下来将描述辅助存储器11a内存储的内容。图17是一个示意图,表示一例存储的字符形状框架数据。该字符形状框架数据包括用以区分字符类型的字符码30a,由一个字符形状框架数据产生的字型数31a,以及构成字符形状状的字元数32a。而且,为每个字符码及每个构成字元存储字元合格数据。

通过将字符构成字元数乘以产生的字型数存储为字元合格数据。字元合格数据包括表示相应于构成字元的字元轮廓形状的字元码35a,形成构成字元的框架点数36a,以及指向框架点坐标数据的指针37a。合格数据成组后,接着存储框架点坐标数据。该框架点坐标数据包括:一个字符的框架点数38a,继之以每个构成字元的框架点坐标数据39a。图18表示一个字符的字符形状框架数据中的几何信息一例。尽管这里省略了对字元框架形状数据的说明,同样可见存储了与实例1所述相同的内容。

图19是一个示意图,它表示一例存储字元轮廓形状数据。在字元轮廓形状数据中,首先存储表示字型的字型码50a,然后存储为字型准备的字元数51a,继之以字元数据1至M(倘若该字元数为M)。

即,字元数据提供给每个字元,每个字元轮廓数据包括字元码52a、构成轮廓的轮廓点数53a、以及指向轮廓点坐标数据的指针54a。该组字元数据后跟每个字元的轮廓点的总数55a和轮廓点坐标数据56a。

字元的轮廓点坐标数据56a包括字元轮廓形状改变数据70a、起始点/结束点判断码72以及字元轮廓形状属性数据73。字元轮廓形状改变数据70a表示具有相同字元码的一个字元中,字元轮廓形状的轮廓点与字元框架形状的框架点之间的对应性。字元轮廓形状改变数据70a以每个轮廓点所属于的框架点数的形式存储。字元轮廓形状属性数据73以变形过程码的形式存储,它表示在改变字元的轮廓形状中移动轮廓点的条件。变形过程码可以具有普通属性、相对位置维持属性,或绝对位置维持属性。下面说明这些属性的特定变形过程。图20A和20B的每张图表示字元轮廓形状数据中一个字元的几何信息一例。

现在结合图21A和21B所示的流程图,说明如此构成的字符图形发生装置的操作。为了更具体地说明这一切,采用原先图18所示的字符形状框架数据“旭”。

首先将要产生的字符的字符码(在JIS编码中字符“旭”的字符码为“1616”和字型码(例如“01”)从输入装置10a诸如键盘(步骤S1a)等等输入。然后,CPU12a根据字符码为每个字符读取产生过程所用的字符形状框架数据,还将对应于字型码的字元框架形状数据和字元轮廓形状数据从辅助存储器11a读到主存储器13a的输入缓冲器内(步骤S2a)。

然后,CPU12a从步骤S2a读得的字符形状框架数据中取出字元合格数据和一个构成字元的框架点坐标数据,将它们从输入缓冲器读到CPU12a内的工作存储器内(步骤S3a)。

步骤S4a,CPU12a从读入输入缓冲器的字元框架形状数据和字元轮廓形状数据取出对应于字元码35a的字元的框架点坐标数据39a和轮廓点坐标数据56a,将它们读到CPU12a的工作存储器内。

步骤S5a,根据读到工作存储器内的字符形状框架数据中构成字元的框架点坐标数据,CPU12a通过扩大、收缩、旋转等等使字元框架形状数据中每个框架点的坐标值与框架点坐标数据相一致。

图22表示字元轮廓形状改变数据,即一个构成字元中字元轮廓形状的轮廓点与字元框架形状的框架点之间的对应性。图22中,点K0,K1,K2,K3和K4表示字元框架形状数据中一个构成字元所拥有的框架点。这些是与图18所示的汉字字符的“撇”部分“丿”相应的字元的框架点(字符“旭”的字符形状框架数据)。另一方面,点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9表示字元轮廓形状数据中一个构成字元所拥有的轮廓点。这些是由图18所示的汉字字符的“撇”部分“丿”相应的字元的轮廓点(字符“旭”的字符形状框架数据)。

连接框架点K0,K1,K2,K3和K4的线段分别为K0-K1,K1-K2,K2-K3以及K3-K4。对轮廓点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9的每一个进行计算,判断从轮廓点起算哪条线段为最短。将如此确定的作为线段起始点的框架点数分配为轮廓点所属于的框架点数。

如此确定的框架点数作为字元轮廓形状数据中的字元轮廓形状改变数据存储。如果一个框架点的坐标值在改变与字元框架形状的变形有关的字元轮廓形状中发生变化,则决定对由前述框架点和后续框架点所定义的两条线段找到作为两条线段的起始点的两个框架点的号码。作为字元轮廓形状改变数据的所有轮廓点具有与两个框架点相同的框架号,它们是移动的对象。

步骤S6a,CPU12a从轮廓点坐标数据中取出一个轮廓点和与其相应的字元轮廓形状属性数据。

然后,步骤S7a CPU12a检查字元轮廓形状属性数据,在改变字元轮廓形状时设置一个移动轮廓点的条件。在检查字元轮廓形状属性数据时,如变形过程码为普通属性时,流程进入步骤S8a,如过程码为相对位置维持属性,程序进入步骤S9a,如过程码为绝对位置维持属性,流程进入步骤S10a,以执行后来的过程。

以下将参照图23详细说明步骤S8a中的轮廓点的移动。图23表示相应于图18所示汉字字符的“撇”部分“丿”的框架点和轮廓点(字符“旭”的字符形状框架数据)。其中,轮廓形状改变数据表明,当线段K3-K4移动到线段K3′-K4′时,轮廓点P5,P6和P7为移动的对象(因为轮廓点P5,P6和P7属于的框架点数为(K3)。轮廓点P5、P6和P7的移动条件如下。

(1)从轮廓点P5和P7到线段K3-K4的垂足分别为CP1和CP2。线段K3-CP1,CP1-CP2和CP2-K4的长度分别为L1、L2和L3。其中,由轮廓点P5、CP1和K3形成的角度为角度A,由轮廓点P7、CP2和K3所形成的角度为角度B。

点CP1′和CP2′将在线段K3′-K4′上产生,它与线段K3-K4之比L1∶L2∶L3成比例(框架点K3′与框架点K3相同)。其中,假定线段K3′-CP1′,CP1′-CP2′和CP2′-K4′的长度分别为L1′,L2′和L3′。

(2)假定点P5和P7至线段K3-K4的距离分别为D5和D7,点P5和P7将沿与线段K3′-K4′垂直的方向从(1)中得到的点CP1′和CP2′移到点P5′和P7′,距离分别为D5和D7。其中,由轮廓点P5′,CP1′和K3′所形成的角度为角度A′,由轮廓点P7′,CP2′和K3′所形成的角度为角度B′。

即,图23中,点P5和P7的移动条件为:

(a)长度比例L1∶L2∶L3=L1′∶L2′∶L3′,

(b)距离D5=D5′,且D7=D7′,

(c)角度A=A′=90度,且角度B=B=90度。

轮廓点移动过程满足上述条件(a),(b)和(c),使其可以根据字符形状框架数据改变字元轮廓形状。其中,图23中,由于轮廓点P6具有与框架点K4相同的坐标值,尽管轮廓点P6的移动条件相同,但轮廓点P6仍将从框架点K4移动到轮廓点P6′,P6′点是与框架点K4′相同的点。

以下将参照图24详细说明步骤S9a中轮廓点的移动。该图表示对应于图18所示汉字字符的左下部的弯折部“乚”的字元的框架点和轮廓点(字符“旭”的字符形状框架数据)。然而,与图22和23比较,为了简化的缘故,在图24中省略了与说明不直接相关的框架点和轮廓点。其中,轮廓形状改变数据表明,当线段K1-K2移动到线段Kl′-K2′时,轮廓点P1和P2为移动的对象(因为轮廓点P1和P2所属于的框架点数为(K1))。轮廓点P1和P2移动的条件如下。

(1)从轮廓点P1和P2至线段K1-K2的垂足分别为CP1和CP2。距离K1-CP1,P1-CP1,CP2-K2,和P2-CP2分别为dx1,dy1,dx2和dy2。其中,由轮廓点P1、CP1和K1所形成的角为角A,由轮廓点P2、CP2和K2所形成的角为角B。

(2)点CP1′和CP2′从框架点K1′和K2′开始,将在线段K1′-K2′上形成,故dx1=dx1′,dx2=dx2′。点P1和P2将以与线段K1′-K2′垂直的方向从点CP1′和CP2′移动到点P1′和P2′,距离分别为dy1=dy1′和dy2=dy2′。其中,由轮廓点P1′、CP1′和K1′所形成的角为角A′,由轮廓点P2′、CP2′和K2′所形成的角为角B′。

即,图24中,点P1和P2的移动条件为:

(a)距离dx1=dxl′,dy1=dy1′

(b)距离dx2=dx2′,dy2=dy2′

(c)角A=A′=90度,角B=B′=90度。

满足上述条件(a),(b)和(c)的轮廓点移动过程使其可以根据字符形状框架数据改变字元轮廓形状状。

以下参照图25详细说明步骤S10a中轮廓点的移动。该图表示字元的框架点和轮廓点,该字元对应于图18所示汉字字符的“撇”部分“丿”的鳞状(鳞片状)部分(字符“旭”的字符形状框架数据)。然而,与图22和23比较,为了简化的缘故,在图25中省略了与说明不直接相关的框架点和轮廓点。其中,轮廓形状改变数据表明,当线段K0-K1移动到线段K0′-K1′时,轮廓点P0、P1和P2为移动的对象(因为轮廓点P0、P1和P2所属于的框架点为(K0))。轮廓点P0、P1和P2的移动条件如下。

(1)从框架点K0到各个轮廓点P1和P2之距离的X分量和Y分量分别为dx1,dy1,dx2和dy2。

(2)点P1′和P2′将从框架点K0′开始形成,故dx1=dx1′,dy1=dy1′,dx2=dx2′,dy2=dy2′。

即,图25中,移动点P1和P2的条件为:

(a)距离dx1=dx1′,dy1=dy1′,

(b)距离dx2=dx2′,dy2=dy2′。

满足上述条件(a)和(b)的轮廓点移动过程使其可以根据字符形状框架数据改变字元轮廓形状状。其中,尽管移动轮廓点P0的条件是相同的,但轮廓点P0仍将移动到轮廓点P0′,后者等同于从框架点K0移动的框架点K0′,因为轮廓点P0具有与图25中的框架点K0相同的坐标值。

在结束了构成字元中的所有轮廓点的移动过程后(步骤S11a),移动的轮廓点将输出到主存储器13a的输出缓冲器(步骤S12a)。

此外,步骤S13a,CPU12a判断字符中的所有字元是否都作了处理。如判断为“是”,程序进入步骤S14a,其中,主存储器13a的输出缓冲器内的数据送到位图存储器14a,结束过程。如判断为“否”,程序返回步骤S3a,故从输入缓冲器内取出下一构成字元的字元合格数据和框架点坐标数据,送到CPU12a内的工作存储器。

送到位图存储器14a的轮廓点数据将扩展为位图数据,通过如激光打印机、热打印机或类似的输出装置15a打印和输出。

这样,CPU12a判断变形过程码是普通属性、相对位置维持属性、还是绝对位置维持属性。根据该判断,移动轮廓点,改变字元轮廓形状状,然后利用改变的轮廓形状状数据形成字符图形。

与必须设计所有字符图形的现有技术的字体开发相比,本方法只需设计表示构成字元的轮廓就能产生字符图形,因此它可以用少量的步骤开发字符字型。此外,由于本发明的装置中提供了改变字元轮廓形状状的装置,故字元轮廓形状状可以通用,使之可以减少开发一个字型所需的字元轮廓形状状数。

再者,由于无需改变字元轮廓部分笔划的粗细度即可改变笔划的长度,故可以在改变轮廓形状状后在字符图形中高质量地产生纵向条、侧面条、伸展曲线等等类似线条。

再者,由于可以保持与框架点有关的轮廓点的距离和角度,故可以在改变轮廓形状状后在字符图形中高质量地产生弯曲部分或类似形状。

而且,由于可以保持轮廓点相对框架线段的距离,故可以在改变轮廓形状状后在字符图形中高质量地产生鳞状(鳞片状)部分或类似部分。

根据本发明,事先存储字符形状框架数据、字元框架形状数据和字元轮廓形状数据,如果字符的粗细度已经改变,CPU判断改变粗细度的过程是通过计算完成的,还是用另一字元替换该字元完成的。根据该判断,改变该字元形状的粗细度。因此,根据该字元可以用最合适的方法改变每个字元的形状。这使其可以用相当少的容量以极高的质量产生粗或细的字符图形。

而且,根据本发明,按照字符形状框架数据改变字元框架形状数据;然后,改变过程判断部分判断移动轮廓点的条件;当通过改变过程判断部分判断时,根据移动轮廓点的条件移动字元轮廓形状数据中的每个轮廓点。因此,通过与构成字元的轮廓形状状有关的最合适的方法,即可移动字元轮廓形状状中的每个轮廓点。这样就可以产生一种高质量的字符图形。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号