字符发生装置的制作方法

文档序号:2639848阅读:161来源:国知局
专利名称:字符发生装置的制作方法
技术领域
本发明涉及可以实现多种字体系统的字符发生装置的改进。
对于日文,建立一种字体需要准备比欧洲字体多得多的字符。就字符数而言,任何一种欧洲字体都只涉及约200个字符,而日文则每种字体涉及约7000个字符。因此,除以前记录的字体以外,字符发生装置需要大量的人力和时间来记录新建立的字体。这还涉及需要重新记录的数量极大的数据。
在某些字体中,只要改变元素的外形,就可以生成一种给人印象十分不同的字体(在某些情况下,被承认为是绝对不同的字体)。这样,人们提出了一些通过改变元素外形来产生不同字体的方法(日本公开HEI 3-234559和HEI 4-56894)。在这种情况下,如图31A和31B所示,元素指的是构成字1的笔画2a,2b,2c,…的末端部分3(图31B中用粗线指出的部分)。
下面描述的,是按照日本专利公开HEI 3-234559和HEI 4-56894的内容,通过改变元素外形来产生不同字体的方法。
首先,参照图32A至32C简要地描述一下日本专利公开HEI 3-234559。在Gothic体中,构成一个字符的每一个笔画的轮廓是用由直线和贝赛尔曲线逼近的轮廓字符数据表示的。这样,如图32A所示,绘图点”c”是设置在元素3的两个端点“a”和”b”的中间。如图32B所示,绘图点”a 和”b也是设定在沿着笔画的轮廓的方向分别向前推进规定的距离后的位置上的,然后删除点”a”和”b”。最后,如图32C所示,利用新设定的三个绘图点”a”,”b”和”c” ,便产生出一种具有在Gothic体中已经点出的元素的字体。
接着,参照图32A至32C简要地描述一下日本专利公开HEI 4-56894。首先产生的是矢量字符数据,其中构成一个字符的每一笔画轮廓的位移后的点坐标表达为一个矢量。然后,如图32A所示,将元素3的矢量字符数据删除,用以前已经记录在端点外形存储器内的如图32B所示的端点外形4的矢量字符数据代替。于是,如图32C所示,从Gothic体便形成了园浑的Gothic体。
但是,采用通过改变元素外形来产生另一种字体的传统方法,会遇到如下所述的问题。
首先,在日本专利公开HEI 3-234559中,绘图点(或控制点)是用由直线或贝赛尔曲线逼近的轮廓字符数据重新计算或推导出来的,以使元素外形发生变化。对于改变元素外形的一般情况,这是可行的。但是,既然绘图点(控制点)是重新通过计算推导出来的,所以将元素改变成复杂的元素外形是非常困难的,这是一个问题。
在日本专利公开HEI 4-56894中,元素部分的矢量字符数据,一次被删除之后,用以前记录的端点外形的矢量字符数据代替。对于改变元素外形的一般情况来说,这也是可行的。但是,既然元素部分是简单地用以前准备的端点外形代替的,在某些情况下,如果处理目标元素与该笔画的延伸方向呈一定角度的倾斜,替换元素外形之后设计字符就会有困难,而如果元素与笔画的延伸方向垂直,则没有问题。
另外,端点的外形是一次删除元件部分的矢量字符数据,然后重新连接另一端点外形的矢量字符数据而获得的,元素外形改变之后所得的字符是用一个轮廓表示的。就是说,不可能在表示一个字符的轮廓内部再加上一个独立的图形。因此不可能产生如图34所示的包含独立反白显示部分5的字体。
近年来,桌上排版得到日益广泛的承认,对于实现多种多样新颖字体的要求日益强烈。另一方面,不幸的是,硬件越来越小,越来越个人化,带来一个问题,就是字体涉及的数据量太大。
因此,本发明的目的是提供一种既允许容易地实现快速多字体系统,又不增大数据量的字符发生装置。
为了达到上述目的,本发明提供一种字符发生装置,通过在基本字体字符的处理目标部分,迭加一个外形元素来产生新字体的字符的字符发生装置,该字符发生装置包括用来存储字体属性的字体属性存储器,字体属性包括表示字体的字体码、字体名、表示用作基础的相关字体的基本字体码、表示用来产生字体的组件的组件码以及产生该字体的修改信息;用来储存代表基本字体外形的字符数据的字符数据存储器;用来储存代表组件外形的组件数据的组件数据存储器;用来指定准备产生的字体的输入段;字形识别器,用来参考字体属性,从字符数据存储器中读出用作输入段所规定的字体的基础的字体中字符的字符数据,并根据读出的字符数据识别基本字体中字符处理目标部分的外形;组件数据修改器,用来参考字体属性,从组件数据存储器中读出准备用来产生输入段所规定的字体的组件数据,并根据处理目标部分的外形,修改读出的组件数据,使准备用的组件的尺寸和位置与处理目标部分相匹配;数据合成器,用来产生规定字体的字符,该字符是既根据字形识别器读出的基本字体字符的字符数据,又根据经组件修改器修改的组件数据,将该组件迭加在基础字体中的字符的处理目标部分上而产生的。
采用这种安排,数据合成器根据由字形识别器读出的基本字体的字符数据,以及经组件数据修改器修改的组件数据,将所用的组件迭加在基本字体字符的处理目标部分上、从而产生规定字体字符的字符数据。
因此,不计算新的绘图点或删除/重新连接绘图点,以较少的人力就能通过组件数据的修改和迭加,产生新字体的字符。
在一个实施例中,储存在字符数据存储器内的字符数据,具有针对基本字体中的字符的每一个单独的处理目标部分的、以及针对准备产生的每一个各别字体的,准备用于组件迭加的迭加信息。
采用这种安排,即使采用基础字体中的相同的字符,对于准备处理的不同部分,或者准备产生的不同字体,也可以设置不同的迭加方法。
在一个实施例中,字形识别器参考字体属性的修改信息,以及对应的字体和读出的字符数据中的处理目标部分的迭加信息,决定一种组件迭加方法,并根据这个决定的结果完成字形的识别。
采用这种安排,即使采用基础字体中相同的字符,通过针对准备处理不同的部分,或者准备产生的不同字体,采用不同的迭加方法,来避免组件之间的或者组件与处理目标部分的接触。
在一个实施例中,被字形识别器识别的处理目标部分,是构成该字符的任何笔画端部的元素。
字形识别器识别基本字体中字符的元素长度。
采用这种安排,可以将准备采用的组件的长度设置到最佳,以便和基本字体中字符的长度相匹配。
在一个实施例中,其外形被字形识别器识别的处理目标部分,是构成该字符的笔画以及该笔画端部的元素;以及字形识别器至少或者识别基本字体中字符的元素中的一个的倾斜角,或者识别该元素所属的笔画的倾斜角,采用这种安排,可以将准备采用的组件的倾斜角设置到最佳,以便和基本字体中的该字符的至少一个元素的或者该笔画的倾斜角匹配。
在一个实施例中,组件数据修改器修改组件数据,使得准备采用的组件的长度与该元素的长度匹配,或者使得准备采用的组件的倾斜角与至少一个元素的和该笔画的倾斜角匹配。
采用这种安排,既然准备采用的组件的长度设置得与该元素的长度匹配,或者使得准备采用的组件的倾斜角设置得与至少一个元素和该笔画的倾斜角匹配,迭加在处理目标部分上的组件的长度或倾斜角就变成没有任何不调和感觉的长度或倾斜角。
参阅下文的详细叙述和附图,对本发明将会有更完全的理解。附图只是用来说明,对本发明没有限制性,其中图1是本发明字符发生装置的框图;图2是说明图1字符属性存储器中所存的字符属性的构成的例子的视图;图3是说明图1字符数据存储器中所存的轮廓字符数据的构成例子的视图;图4是说明图1粘贴组件数据存储器中所存的粘贴组件数据的构成例子的视图;图5A和图5B是多边形的解释性视图;图6是在图1中的CPU控制下执行字符发生过程的流程图;图7是接在图6后面的字符发生过程的流程图;图8是接在图7后面的字符发生过程的流程图;图9是接在图6后面的字符发生过程的流程图;图10是接在图9后面的字符发生过程的流程图;图11是接在图6后面的另一字符发生过程的流程图;图12A和12B是图3所示轮廓字符数据的实际的说明性视图;图13A,13B,13C,…和13I是说明粘贴组件例子的视图;图14A,14B,14C,14D和14E是说明新产生的字体的视图;图15说明确定处理目标元素的长度和角度的说明性视图;图16是图13所示粘贴组件的说明性放大视图;图17是图16所示粘贴组件旋转的说明性视图;图18是加在图15所示处理目标元素上的图17所示粘贴组件状态的视图;图19是计算处理目标元素所属笔画的角度的说明性视图;图20是不同于图17所示粘贴组件的粘贴组件旋转的说明性视图21是加在图19所示处理目标元素上的如图17所示粘贴组件状态的视图;图22是处理目标元素角度和计算该处理目标元素所属笔画的角度的说明性视图;图23A和23B是不同于图17和图20所示粘贴组件的粘贴组件旋转的说明性视图;图24是在图22所示处理目标元素上加上如图23A和23B所示粘贴组件后的状态的视图;图25A和25B是说明改变图12A和12B所示轮廓字符数据的字符的笔画宽度的例子的视图;图26A和26B是不同于图17,图20及图23A和23B所示粘贴组件的粘贴组件旋转的说明性视图;图27A和27B是说明用不同于图18,图21及图24所示粘贴方法的方法粘贴图26A和26B所示粘贴组件之后的状态的视图;图28是确定处理目标元素所属笔画的角度的说明性视图;图29是不同于图17,图20,图23A和23B及图26A和26B所示粘贴组件的粘贴组件旋转的说明性视图;图30是在图28所示处理目标元素上粘贴如图29所示粘贴组件之后的状态视图;图31A和31B是元素的说明性视图;图32A,32B及图32C是按现有技术改变元素形状的方法的说明性视图;图33A,33B及图33C是不同于图32A,32B及图32C的方法的按现有技术改变元素形状的方法的说明性视图;图34是说明通过改变元素形状而获得的字体例子的视图;下文将用


的实施例更详细地描述了本发明。
图1是本实施例字符发生装置的框图。本实施例是在以由绘图点和控制点组成的直线和贝赛尔曲线来逼近构成一个字符的每一笔画的轮廓而得到的轮廓字符数据作为字符数据的情况下描述的。但是,本发明所用的字符数据并不限于此。
如图1所示,字符发生装置一般包括键盘11、辅助存储器12、主要存储器13、CPU(中央处理单元)14、位图存储器15、显示装置16及输出装置17。
键盘用来输入准备产生的字体的字体码和字符号。辅助存储器12有用来存储作为关于准备产生的每种字体迭加的信息的字体属性的字符属性存储器18;用来储存用作准备产生的字体的基础的字体的轮廓字符数据的字符数据存储器19;以及用来存储准备用来改变基本字体处理目标部分形状的粘贴组件数据的粘贴组件数据存储器20。主要存储器13有临时存放从辅助存储器读出的轮廓字符数据用的输入缓冲器21;临时存放形状改变后的粘贴组件数据用的输出缓冲器22;以及存放形状改变信息用的存储器23。
应该指出,在下文中,用粘贴组件数据代表的一个图形称作粘贴组件。
CPU 14具有提取基础字体轮廓字符数据处理目标部分并识别其形状用的字形识别器24;修改粘贴组件形状用的粘贴组件数据修改器25;将字形识别器24和粘贴组件数据修改器25所得结果加以合成,产生新字体字符的轮廓字符数据用的数据合成器26;以及工作存储器27。CPU14根据储存在辅助存储器12和主要存储器13中的各种数据,完成对字符产生过程的控制。位图存储器15把在CPU14的控制下生成的字符图形变成位图数据,并将其送到显示装置16或者输出装置17。显示装置16根据从位图存储器15衍生的位图数据显示字符的图象。由打印机等提供的输出装置17根据从位图存储器15衍生的位图数据打印字符。
应该指出,在图5A所示的用直线和贝赛尔曲线表示的轮廓字符数据中,如图5B所示由笔画的轮廓形成的袋形的封闭的图形61称为多边形。当构成多边形61的轮廓字符数据顺时针方向安排时,多边形61的内部画上斜线(图14A至14E)。另一方面,当轮廓字符数据逆时针方向安排时,多边形61的内部空白(图12A至12B)。
下文所用术语”粘贴”,指的是将单独准备的粘贴组件数据迭加在基础字体轮廓字符数据内的处理目标部分上。
下面详细解释辅助存储器12。
如前所述,字体属性存储器18已经存储了有关准备产生的每种字体的迭加信息。如图2所示,字体属性包括表示准备产生的字体的字体码31、准备产生的字体的字体名32、表示用作准备产生的字体的基础(基本字体)的字体的基本字体码33、表示生成用的组件的组件码34,以及迭加过程所必需的修改信息35。
当对应于准备产生的字体存在两种粘贴组件时,组件码34明确地由第一组件码36和第二组件码37规定,其中第一组件码36代表标准粘贴组件(下文称作第一组件),而第二组件码37代表特殊的粘贴组件(下文称作第二组件)。
修改信息35用来规定对基本字体字符中所有的处理目标部分都有效的组件粘贴方法。修改信息35包括比例(缩放)信息38,用来规定粘贴组件是否依据该元素的尺寸进行按比例放大/缩小;信息39,规定是否要计算元素的倾斜角;信息40规定是否要计算笔画的倾斜角;信息41规定是否要用元素的中点作为组件粘贴的基准点。
应该指出,组件码34和修改信息35规定的项目数可以适当增加。
字符数据存储器19存储了用作准备产生的字体的基础的字体的轮廓字符数据。如图3所示,轮廓字符数据包括表示目的字体的字体名45;表示该字体的每个字符(遵循日本工业标准JIS)的字符码46;表示构成该字符的每个多边形的信息的多边形信息47;以及构成该多边形的每个点的点信息48。
另外,字符码46包括构成该字符的多边形个数。多边形信息47包括构成该多边形的点数。点信息48包括包括点号和点的坐标,以及作为组件粘贴过程信息的修改属性(标志)。
点信息48的修改属性用来规定对基本字体的字符中每个处理目标部件都有效的组件粘贴方法。点包括8个标志表示元素起点的元素起点标志49、表示元素终点的元素终点标志50、用来表示组件是否进行粘贴的粘贴标志51、用来规定是粘贴第一组件还是粘贴第二组件来产生TWIG字体的标志52、用来规定是粘贴第一组件还是粘贴第二组件来产生PRINCESS字体的标志53、用来规定是粘贴第一组件还是粘贴第二组件来产生PIERROT字体的标志54、用来规定是用第一点还是用第二点作为组件基准点来产生PIERROT字体的标志55、以及一个用来规定是粘贴第一组件还是粘贴第二组件来产生TUKUSI字体的标志56。
这些标志在数量上可以适当增加。
如图3所示,轮廓字符数据包括POP的字体名、属于POP字体的字中其JIS码为3026的”爱”字(一个表示”爱情”的汉字)、以及,如图12A所示,该汉字所具有的13个多边形中第13号多边形的多边形71的点信息。
如图12B所示,多边形71有4个绘图点a1,a4,a5及a8(以下就用术语”点”来称呼”绘图点”)以及4个控制点a2,a3,a6及a7。
在粘贴组件数据存储器20中,储存了粘贴组件数据。粘贴组件数据,和轮廓字符数据中一样,是用直线和贝赛尔曲线表示的。粘贴组件数据,如图4所示,包括作为包括第一组件及第二组件在内的全部粘贴组件的粘贴组件数据的序号的组件码57、表示构成该粘贴组件的多边形的信息的多边形信息58、以及表示构成多边形的点的信息的点信息59。
组件码57包括构成组件的多边形个数。多边形信息58包括构成多边形的点数。点信息59包括点号和点的坐标。
如图4所示的粘贴组件数据代表图13C所示组件号3的粘贴组件。
具有上述构成的字符发生装置通过下列操作产生新字体字符的轮廓字符数据。
图6至图11是要在CPU14的控制下执行的字符发生过程的操作流程图。下面按照图6至图11详细地描述在图14A至14E所示的字体(字体名TWIG用图14A;字体名PRINCESS用图14B;字体名CRYSTAL用图14C;字体名PIERROT用图14D;字体名TUKUSI用图14E)中产生JIS码3026”爱”字字符数据的字符发生过程的操作,采用图12A所示字体的轮廓字符数据作为基本字体的轮廓字符数据,并采用图13A至图13I所示的粘贴组件的粘贴组件数据。
步骤S1,从键盘11输入要产生的字符的字体码(2TWIG;3PRINCESS;4CRYSTAL;5PIERROT;6TUKUSI)和字符号(3026)。
步骤S2,参考辅助存储器12中字体属性存储器18的基本字体码33,用字形识别器24确定步骤S1中规定的字体用的基本字体的字体名。然后,从字符数据存储器19内所存轮廓字体数据,读出轮廓字符数据,这是基本字体的字体名所规定的字体的轮廓字符数据,并且是步骤S1中输入的字符号(3026)所规定的”爱”字的轮廓字符数据。读出的轮廓字符数据储存在主存储器13的输入缓冲器21。
步骤S3,字形识别器24将构成该轮廓字符数据的多边形信息47从步骤S2储存在输入缓冲器21中的轮廓字符数据中读出。
步骤S4,字形识别器24将读出的多边形信息47的点信息48储存在工作存储器27中。
步骤S5,字形识别器24用如下方法查找出属于多边形信息47所代表的多边形的全部处理目标元素。
首先,根据储存在工作存储器27内的点信息48,找出有元素起点标志49的点号。接着,按时针方向(亦即按点号的升序)顺着多边形的轮廓,从有元素起点标志49的点开始,找出有元素终点标志50的点号。然后,将出现在找出的该两点之间的元素识别为处理目标元素,亦即修改过程的目标。从现在起,上述过程一直重复到全部处理目标元素都识别出来为止。
结果,例如,如图12B所示,其起点为a4,而其终点为a5的元素被识别为处理目标元素。
步骤S6,粘贴组件数据修改器25,从步骤S5所找出的各所述处理目标元素中,选择一个未处理过的元素。另外,利用根据步骤S1输入的字体码引出的辅助存储器12中字符属性存储器18内的组件号34,从粘贴组件数据存储器20,读出对应于准备产生的字体的粘贴组件数据。然后,将读出的粘贴组件数据存入主存储器13的输入缓冲器21。
步骤S7,字形识别器24参照字体属性存储器18中修改信息35中的比例缩放信息38,决定粘贴组件的尺寸是否要比照处理目标元素作相应的比例缩放。结果,如果按比例缩放,则程序转入步骤S8,否则,转入步骤S21。
在字体属性如图2所示的情况下,只有字体TUKUSI规定不要按比例缩放。于是,为了产生字体TUKUSI,程序转入步骤S21。
步骤S8,字形识别器24,参照工作存储器27中所存点信息48的粘贴标志51,决定是否对要每个元素进行组件粘贴。结果,如果进行组件粘贴,则程序转入步骤S9,否则,转入步骤S57。
步骤S9,如果按照步骤S1输入的字体码,第一组件号36和第二组件号37在字体属性的组件号34中都存在,则由字形识别器24,根据工作存储器27中所存点信息48的标志52至54和56,决定使用第一粘贴组件还是使用第二粘贴组件。结果,如果使用第一组件,则程序转入步骤S10,如果使用第二组件,则转入步骤S41。
在只要一种粘贴组件的字体CRYSTAL的情况下,无论什么情况,程序都转入步骤S10。
步骤S10,字形识别器24用下列方法计算步骤S6所选处理目标元素的长度D1(这里假定,是其起点为a4而终点为a5的处理目标元素)。
如图15所示,利用多边形71点a4,a5的坐标(a4(x1,y1),a5(x2,y2)),点a4,a5之间的距离D1用下列公式计算D1={(x2-x1)2+(y2-y1)2}1/2将这样算出的距离D1作为处理目标元素的长度,存入工作存储器27。
步骤S11,粘贴组件数据修改器25,根据步骤S10算出的处理目标元素的长度D1,以及按下列公式算出的值,以原点(0,0)作为中心,对在步骤S6存入输入缓冲器21的粘贴组件数据,进行比例缩放D1/D*E式中,D是元素的参考长度,E是与D对应的粘贴组件72的参考长度。
步骤S12,字形识别器24,参照储存在字体属性存储器18中的字体属性的修改信息35中的信息39,40,决定是要计算哪个角度,是元素对于Y轴的角度还是笔画对于X轴的角度。结果,如果要计算元素的角度,则程序转入步骤S13,如果要计算笔画的角度,则转入步骤S15,如果两个角度都要计算,则转入步骤S17。
在字体属性如图2所示情况下,为了产生TWIG字体决定要计算元素的角度。为了产生PRINCESS字体、PIERROT字体或TUKUSI字体则决定要计算笔画的角度。为了产生CRYSTAL字体,两个角度都要计算。
步骤13,产生TWIG字体用的元素角度θ1,由字形识别器24按下列方法计算。
如图15所示,计算连接处理目标元素两个端点a4,a5的直线L1与平行与Y轴的直线LY之间的夹角θ1。
步骤S14,由粘贴组件数据修改器25确定的,是步骤S11对粘贴组件72a进行比例缩放后,如图17所示绕原点(0,0)从Y轴旋转一个角度θ1这一处理所得的粘贴组件数据。
这些步骤之后,程序转入步骤S52。
步骤S15,字形识别器24用下列方法计算产生PRINCESS字体、PIERROT字体或TUKUSI字体所用的目的元素所属的笔画的笔画角度θ2。
参照图19,用计算两线夹角用的函数atan2(dx,dy),来计算将处理目标元素的起点a4连接到点a4沿着绘图点或控制点构成多边形的方向上紧接着的前一个点(该实施例中的控制点a3)的连线L2(dx,dy)与平行与X轴的直线LX的夹角θa。用类似方法计算连接处理目标元素的终点a5和点a5的下一个绘图点或控制点(该实施例中的控制点a6)的连线L3与直线LX的夹角θb。然后,求两夹角θa和θb的平均值,并假定为该处理目标元素所属笔画对于X轴的倾斜角θ2。
步骤16,如图20,26A,26B及29所示,由粘贴组件数据修改器25确定将在步骤S11中按比例缩放之后的粘贴组件74a,77a,79a,绕原点(0,0)旋转一个对于X轴的角度θ2之后得到的粘贴组件数据。
这些步骤之后,程序转入步骤S52。
步骤S17和S18,像在步骤S13和S15一样,确定产生字体CRYSTAL用的元素角度θ1和笔画角度θ2(图22)。
步骤S19,如图23A所示,粘贴组件数据修改器25确定将在步骤S11中按比例缩放之后的粘贴组件76a,以原点(0,0)作中心旋转得使对角线qr旋转一个等于对直线LY的角度θ1的角度之后得到的粘贴组件数据。
步骤S20,如图23B所示,粘贴组件数据修改器25确定的是,其对角线qr在步骤19中已旋转了角度θ1的粘贴组件76b,再以原点(0,0)作中心旋转,使其对角线po从线LX旋转了一个等于笔画角度θ2的角度之后得到的粘贴组件数据。
这些步骤之后,程序转入步骤S52。
步骤S21至S23,像在步骤S8,S9和S12一样,决定是否进行组件粘贴,是否采用第一组件,计算哪个角度。
步骤S24至S31,像在步骤S13至520一样,计算元素角度θ1和笔画角度θ2,并根据算出的元素角度θ1或笔画角度θ2,对储存在输入缓冲器21的粘贴组件数据进行旋转过程。
这些步骤之后,程序转入步骤S52。
步骤S32至S40,像在步骤S12至S20一样,决定要计算哪个角度计算元素角度θ1还是计算笔画角度θ2,对储存在输入缓冲器21的第二组件的粘贴组件数据,进行旋转过程。
这些步骤之后,程序转入步骤S52。
步骤S41至S51,像在步骤S10至S20一样,计算处理目标元素的长度D1,对储存在输入缓冲器21的第二组件的粘贴组件数据进行按比例缩放,决定要计算哪个角度计算元素角度θ1还是计算笔画角度θ2,对按比例缩放后的第二组件的粘贴组件数据进行旋转过程。
这些步骤之后,程序转入步骤S52。
步骤S52,数据合成器26参照储存在字体属性存储器18中的字体属性的修改信息35中的信息41,和储存在工作存储器27中的点信息48中的标志55,决定经受上述比例缩放过程和旋转过程的粘贴组件的原点放在哪个点上(亦即决定粘贴的基准点在哪里)。
有三种点可以作为基准点图15中的元素起点a4、元素中点b和元素终点a5。在图2所示的修改信息35的情况下,既然只有PIERROT字体规定,元素中点b以外的某些点可以作为基准点,所以要参照产生PIERROT字体用的点信息48中的标志55,决定是用元素的起点还是用元素的终点作为基准点。
作为决定的结果,如果用元素的起点作为基准点,则程序转入步骤S53;如果用元素的中点作为基准点,则程序转入步骤S54;而如果用元素的终点作为基准点,则程序转入步骤S55。
在这方面,如果步骤S8决定不进行组件粘贴(亦即点信息48中的粘贴标志51没有设置),则跳过步骤S9至S52,所以点信息48中的标志52至56全部清零。
步骤S53,在PIERROT字体的情况下,由粘贴组件数据修改器25确定这样的粘贴组件数据,即在步骤S11和S16经受按比例缩放过程和旋转过程的组件77b,如图26A所示,被水平轴反射,而反射后的组件77c的原点,如图27A所示,移动到处理目标元素的元素起点a4的坐标上。
这些步骤之后,程序转入步骤S56。
步骤S54,粘贴组件数据修改器25确定将经受了上述按比例缩放过程和旋转过程之后的组件72b,74b,76c,79b的组件原点,如图18,21,24和30所示,移动到处理目标元素的元素起点a4和元素终点a5之间的元素中点b上而得到的粘贴组件数据。
这些步骤之后,程序转入步骤S56。
步骤S55,在PIERROT字体的情况下,由粘贴组件数据修改器25确定,经受了上述按比例缩放过程和旋转过程的组件77b的原点,如图27B所示,移动到处理目标元素的元素终点a5而得到的粘贴组件数据。
步骤S56,经受了上述按比例缩放过程、旋转过程和移动过程的粘贴组件数据,由数据合成器26存入主存储器13的输出缓冲器22。
步骤S57,字形识别器24决定在步骤S53中读入的多边形信息47中的全部处理目标元素的过程是否都已都完成。结果,如果这些过程完成了,则程序转向步骤S58;否则,程序返回步骤S6,进行下一个处理目标元素的识别过程。
这个决定是根据在步骤S56储存在输出缓中器22内的粘贴组件数据套数与在步骤S5查找出的处理目标元素的数目一致而作出的。
步骤S58,在步骤S3读出并储存在工作存储器27中的多边形信息47,由数据合成器26存入输出缓冲器22。
在这一方面,在步骤S56中储存在输出缓冲器22内的粘贴组件数据,已在步骤S53,步骤S54或步骤S55中定位,使得根据在这一步骤中储存的点信息47,重叠在多边形71的处理目标元素上。所以,在这一步骤完成的时刻,如图18,21,24,27或30所示,已经粘贴了对应于多边形71的元素的粘贴组件的轮廓字符数据已经储存在输出缓冲器22中了。
步骤S59,字形识别器24决定,在步骤S2中读出的轮廓字符数据中的全部多边形,是否已经处理完毕。结果,如果处理完毕,则程序转至步骤S60,否则,返回步骤S3,处理下一个多边形。
这个决定是根据在步骤S58储存在输出缓冲器22内的多边形信息套数是否跟构成储存在输出缓冲器22内的轮廓字符数据中的字符码的相应字符的多边形的数目一致而作出的。
步骤S60,把储存在输出缓冲器22内的一个字符的轮廓字符数据转移到位图存储器15或辅助存储器12中。这一步骤完成之后,字符产生过程的操作即已完成。
应该指出,转移至位图存储器15的轮廓字符数据,变成位图数据后,不是在显示装置16上显示,就是由输出装置17打印出来。
如前所述,在这个实施例中,基本字体的轮廓字符数据是储存在辅助存储器12的轮廓字符数据中的,而作为粘贴组件轮廓字符数据的粘贴组件数据则储存在粘贴组件数据存储器20中。这时,根据从键盘输入的字体码和字符号,构成CPU14的字形识别器24和粘贴组件数据修改器25,根据对修改信息35的参照结果,对参照组件号34而获得的粘贴组件进行按比例缩放、旋转和移动,并粘贴在参照根据输入的字体码而储存在字体属性存储器18的基本字体码33而获得的基本字体中的字符的处理目标元素上。
所以,按照本实施例,为了产生新字体的字符数据,不必由设计者一个一个地设计字符。而是只要输入字体码和字符号,就能自动产生新字体的字符数据。如前所述,在这个过程中,基本字体元素的外形,已经由于在该基本字符的处理目标元素上贴上了粘贴组件而发生了变化。这样,不必计算新的绘图点或者删除/连接绘图点,很容易就能以小的数据量和较少的研制人力,实现高级多字体系统。
字形识别器24计算处理目标元素的长度和角度,以及处理目标元素所属的笔画的角度。粘贴组件数据修改器25,根据处理目标元素的长度对粘贴组件进行按比例缩放,然后根据处理目标元素或笔画的角度对它进行旋转,从而确定粘贴组件数据。数据识别器26将经过比例缩放过程和旋转过程而得到的粘贴组件数据,迭加在基本字符的处理目标元素的轮廓字符数据上,便产生出轮廓字符数据。
因此,不论处理目标元素的长度和倾斜角多大,都能将适当尺寸的粘贴组件,以适当的角度贴在处理目标元素上。
另外,字形识别器24是这样安排的,使得它能既根据与字体码有关的字体属性的修改信息35,又根据赋于多边形信息47的点信息48的标志51到56,决定粘贴组件的粘贴方法,例如选择是否进行组件粘贴、选择组件的类型、选择是否对组件进行按比例缩放、选择粘贴的基准点等。
相应地,通过将修改信息35和标志51至56设置成最优值,就可以避免组件与组件之间或组件与笔画之间的接触而造成的任何崩溃,以免降低字符的质量。即使对于相同的字体相同的元素,也可以为产生不同的字体而改变粘贴方法。这样,就可能开发出多种多样的新颖字体。
在这个实施例中,准备在CPU14的控制下执行的字符产生过程算法并不限于图6至图11所示的流程。
例如,在本实施例中字符发生过程的流程图中,作了这样的安排,即对于准备产生的一种字体,所有的粘贴组件一律根据处理目标元素的长度来决定是否进行按比例缩放。但是,可以修改该流程图,加上修改属性标志,以便能够实现这样的组合,即只有特定的元素才进行按比例缩放,而其他元素则不。
还可以和改变基本字体笔画宽度的装置结合起来,如图30所示,将经过按比例缩放及旋转的粘贴组件迭加在例如多边形71上,而后者如图25B所示,通过将每个笔画的线宽度变窄而已经收窄了。
另外,虽然在这个实施例中字符数据是用直线和贝赛尔曲线逼近多边形轮廓而获得的轮廓字符数据,但本发明并不限于这一安排。唯一的要求是字符数据允许字符的外形最终转变成轮廓。
由上述可以清楚看出,当要产生的字体已经从输入段输入时,参照已经存于字体属性存储器中的字体属性,将指定字体的基本字符的字符数据读出,字形识别器根据字符数据识别处理目标元素的形状。然后,组件数据修改器参照字体属性修改组件数据,使所用的组件大小和方位都与处理目标元素相匹配。然后,数据合成器把字形识别器读出的字符数据和组件数据修改器修改过的组件数据加以合成,从而产生将组件迭加在基本字符上之后的字符数据。这样,不必计算新的绘图点或者删除/连接绘图点,而只要通过修改和迭加组件数据,就能产生新字体的字符数据。
于是,按照本发明,以很少量的开发人力,不必增加数据量,就很容易实现多字体系统。
另外,既然组件数据经过修改,使组件的大小和方位都与处理目标部分匹配,这样,不论处理目标部分的外形如何,把组件迭加在处理目标部分之后都能给人一种自然的感觉。
在一个实施例中,字符数据具有针对基本字符的处理目标和针对要产生的不同字体的迭加信息。所以,即使是同一个字符,也可以针对处理目标部分和针对需要产生的字体,改变迭加方法。
在一个实施例中,字符发生装置中的字形识别器,既参照字体属性的修改信息,又参照字符数据的迭加信息,来决定迭加方法,然后,再根据决定的结果识别字形。这样,即使对于同一个字符,也可以针对每一个处理目标部分和针对每一种需要产生的字体,改变迭加方法,从而避免由于组件之间的和组件与处理目标部分之间的接触而造成的程序崩溃。
这样,按照这个实施例,例如,用POP字符作为基本字体产生PIERROT字体,如图14D所示,根据情况将基准点改成元素起点或者元素终点,迭加或者不迭加粘贴组件,就可以使组件77与笔画避免彼此接触。
在一个实施例中,字符发生装置中的字形识别器识别基本字符元素的长度。于是,就可以按比例缩放组件,使之与基本字符的元素相匹配。
在一个实施例中,字符发生装置中的字形识别器,识别基本字符的元素及其所属的笔画这两者中至少一个的倾斜角。所以,组件可以与元素或笔画的倾斜角相匹配的倾斜角进行迭加。
这样,按照这个实施例,可以产生出这样的字体的字符,即其元素所属的笔画的走向被挡住,如图14A所示,笔力实际上放在那里;或者如图14B所示,产生符合笔画走向,使人感到自然的字体的字符。
在一个实施例中,字符发生装置中的组件数据修改器对组件数据进行修改,使得准备使用的组件的长度与处理目标部分的长度相匹配,或者使得倾斜角与组件和笔画两者这至少一个的倾斜角相匹配。所以,可以对准备使用的组件进行按比例缩放和旋转,使之与元素的长度相匹配,或与元素或笔画的倾斜角相匹配。
这样,按照本实施例,组件可以协调的长度和倾斜角,迭加在基本字体的字符元素上,故可产生出使人感到自然的字体的字符。
尽管这样描述了本发明,但显然可以作各种各样的改变。这些改变不会被认为是脱离本发明的精神和范围,对于本专业的普通技术人员来说,这些变化显然包括在下列权利要求的范围之内。
权利要求
1.一种通过将一种外形的组件迭加在基本字体的字符的处理目标部分上,改变该处理目标部分的外形,来产生新字体字符的字符发生装置,其特点征于它包括用来储存包括表示字体的字体码、字体名、表示用作有关字体的基础的字体的基本字体码、表示产生该字体用的组件的组件码、以及产生该字体用的修改信息的字体属性的字体属性存储器,储存代表基本字体中字符外形的字符数据用的字符数据存储器,储存代表组件外形的组件数据用的组件数据存储器,用来规定准备产生的字体的输入段,用来参照字体属性,从字符数据存储器读出作为输入段规定的字体基础的字体的字符数据,并根据读出的字符数据识别基本字体中字符处理目标部分的形状的字形识别器,用来参照字体属性,从组件数据存储器读出产生输入段所规定的字体用的组件数据,并根据处理目标部分的形状,修改读出的组件数据,使准备使用的组件的大小和角度与处理目标部分的形状相匹配的组件数据修改器,用来既根据字形识别器读出的基本字体字符数据,又根据经过组件数据修改器修改的组件数据,将该组件迭加在基本字体字符的处理目标部分上,产生规定字体的字符的字符数据的数据合成器。
2.按照权利要求1的字符发生装置,其特征在于储存在字符数据存储器内的字符数据,具有准备针对基本字体字符每个个别的处理目标部分,和针对准备产生的每种个别的字体,用于组件迭加的迭加信息。
3.按照权利要求2的字符发生装置,其特征在于字形识别器参照字体属性的修改信息以及相应的字体,读出的字符数据中的处理目标部分的迭加信息,决定组件迭加方法,并根据这个决定的结果,完成形状的识别。
4.按照权利要求1的字符发生装置,其特征在于其形状由字形识别器识别的处理目标部分,是作为构成该字符任何一个笔画端部的元素,以及字形识别器识别基本字体字符中的元素的长度。
5.按照权利要求1的字符发生装置,其特征在于其形状由字形识别器识别的处理目标部分,是构成该字符的笔画以及作为该笔画端部的元素,以及字形识别器识别基本字体字符中的元素和该元素所属的笔画两者中至少一个的倾斜角。
6.按照权利要求4的字符发生装置,其特征在于组件数据修改器修改组件数据,使准备使用的组件的长度与元素的长度相匹配,使准备使用的组件的倾斜角与元素和笔画两者中至少一个的倾斜角相匹配。
7.按照权利要求5的字符发生装置,其特征在于组件数据修改器修改组件数据,使准备使用的组件的长度与元素的长度相匹配,使准备使用的组件的倾斜角与元素和笔画两者中至少一个的倾斜角相匹配。
全文摘要
提供既易于实现多字体系统,又不增大数据量的字符发生装置。基本字体的字符数据储存在字符数据存储器里;而粘贴组件数据储存在粘贴组件数据存储器里。字形识别器根据键盘规定的字体码和字符号,参照字体属性,计算处理目标元素的长度和角度及处理目标元素所属笔画的角度。粘贴组件数据修改器参照字体属性对选定的粘贴组件数据进行按比例缩放和旋转过程。数据合成器将按比例缩放和旋转后的粘贴组件数据迭加在处理目标元素上,产生字符数据。
文档编号G09G5/24GK1157979SQ9612284
公开日1997年8月27日 申请日期1996年10月11日 优先权日1995年10月13日
发明者今城佳子, 长谷川进, 绀矢峰弘, 信贵丰, 藤泽雅之, 伊藤爱 申请人:夏普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1