CN1121199A - 字符发生装置及其实现方法 - Google Patents

字符发生装置及其实现方法 Download PDF

Info

Publication number
CN1121199A
CN1121199A CN94112935A CN94112935A CN1121199A CN 1121199 A CN1121199 A CN 1121199A CN 94112935 A CN94112935 A CN 94112935A CN 94112935 A CN94112935 A CN 94112935A CN 1121199 A CN1121199 A CN 1121199A
Authority
CN
China
Prior art keywords
character
data
weights
coordinate
font
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN94112935A
Other languages
English (en)
Other versions
CN1098515C (zh
Inventor
吉田政幸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP5309556A external-priority patent/JPH07160242A/ja
Priority claimed from JP5309555A external-priority patent/JPH07160241A/ja
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN1121199A publication Critical patent/CN1121199A/zh
Application granted granted Critical
Publication of CN1098515C publication Critical patent/CN1098515C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • G06K2215/0045Converting outline to bitmap
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0054Geometric transformations, e.g. on rasterised data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

字符发生装置及其实现方法。该字符发生装置包括:存放包括坐标数据的字符数据的存储装置,根据存在该存储装置中的坐标数据生成字模的发生装置,确定使该字模粗细的参数的确定装置,以及根据确定装置确定的参数转换坐标数据的转换装置;并且根据转换装置所转换的坐标数据,利用发生装置生成粗的或细的字模。

Description

字符发生装置及其实现方法
本发明涉及把按矢量形式编码的字符等转换为按点形式编码的字符的一种字符发生装置以及用于实现所述转换的一种方法。
在把以矢量形式存储的数据变成位图和输出字符的常规装置中,被存在ROM或硬盘中的座标数据被读出,并通过按一定比例放大或缩小,使之被转换为所需的尺寸。然后,结果数据被转换为点形式的数据,从而提供了字符数据。
然而,在这种情况下,若同一字体形式具有不同的权值,则对应每个权值必须有一组座标数据。对于日语的字体形式来说,每种字体形式约有8000个字符,每种字体所需座标数据的存储量必须是1M字节到3M字节,如果对每种权值都提供座标数据,则存储量将是十分庞大的。
为了克服上述的缺点,本发明的一个目的是从字符数据中为同一字体形式产生不同的权值数据,包括至少对一种字体形式的若干轮廓数据,因此,用很小的存储量就能产生对单个字体形式的各种权值字符数据。
现在解释本发明的特征。
根据本发明的字符发生装置包括:存放由座标数据组成的字符数据的存储装置,根据存放在存储装置中的座标数据产生字模的发生装置,决定字模粗细的参数的确定装置,以及根据由确定装置决定的参数转换座标数据的转换装置;并且根据由转换装置转换的座标数据,用发生装置产生粗的或细的字模。
根据本发明的字符发生装置的转换装置通过参考邻近于某个目标的座标的两点的座标数据来决定座标数据。
根据本发明的字符发生装置的座标数据包括外部轮廓数据和内部轮廓数据。
根据本发明的字符发生装置中的确定装置决定一个参数,该参数指示大的字符数值或小的字符数值,分别对应外部轮廓数据和内部轮廓数据。
根据本发明的字符发生装置中的确定装置分别从外部轮廓数据和内部轮廓数据中、在x方向和y方向上决定大字符权值或小字符权值。
根据本发明的字符发生装置中的发生装置根据被转换的轮廓数据输出位图形式、轮廓座标数据形式或灰度形式。
从下面的说明和附图中,本发明的其他目的和特征将是清楚的。
图1是一个简图,说明根据本发明的字符发生装置的第一个应用系统;
图2是一个简图,说明根据本发明的字符发生装置的第二个应用系统;
图3包括图3A和图3B,给出了根据本发明的字符发生装置的第一种字符发生方法的流程图;
图4是一个具体的图形,表示在被根据本发明的字符发生装置转换之前,一个轮廓字体的布局;
图5是一个具体的图形,表示被根据本发明的字符发生装置转换后,一个轮廓字体的布局;
图6表示根据本发明的字符发生装置的被转换轮廓字体的座标输出数据;
图7是一个具体的图形,表示在根据本发明的字符发生装置中被掩盖状态的点;
图8是一个具体的图形,表示在根据本发明的字符发生装置中的轮廓OR(或)点;
图9表示在根据本发明的字符发生装置中转换成为第三Besier曲线的短矢量集合的过程;
图10是一个具体的图形,表示在根据本发明的字符发生装置中的一种被掩盖状态;
图11表示在根据本发明的字符发生装置中一个位图字体的产生过程;
图12是一个流程图,表示根据本发明的字符发生装置的一个加粗/变细的过程例子;
图13表示在根据本发明的字符发生装置中决定外部轮廓或内部轮廓的预处理过程;
图14表示在根据本发明的字符发生装置中明体加粗处理的结果;
图15表示在根据本发明的字符发生装置中哥特体加粗处理的结果;
图16表示在根据本发明的字符发生装置中用于决定加粗参数的第一个表格数据;
图17是一个具体的图形,表示在根据本发明的字符发生装置中的外部轮廓加粗处理过程;
图18表示在根据本发明的字符发生装置中随着加粗或变细处理过程对框架尺寸的纠正;
图19是一个流程图,表示为根据本发明的字符发生装置决定外部/内部轮廓的过程示例;
图20是一个原理图,说明根据本发明的字符发生装置决定内部轮廓特性的处理过程;
图21是一个原理图,说明根据本发明的字符发生装置决定外部轮廓特性的处理过程;
图22是一个流程图,表示根据本发明的字符发生装置选择加粗参数的过程示例;
图23A和图23B表示在根据本发明的字符发生装置中用于决定加粗参数的第二个表格数据;
图24给出了根据本发明的字符发生装置中被用来准备灰度字体的一个位图;
图25包括图25A和图25B,表示根据本发明的字符发生装置第二种字符产生方法的流程图;
图26A、26B和26C中的每一个都给出了根据本发明的字符发生装置中灰度字体转换表的例子;
图27表示根据本发明的字符发生装置中灰度字体的转换过程;
图28表示根据本发明的字符发生装置的被转换状态的灰度;
图29包括图29A和图29B,表示根据本发明的字符发生装置的第三种字符产生方法的流程图;
图30是一个具体的图形,表示在被根据本发明的字符发生装置转换之前,一个轮廓字体的布局;
图31是一个具体的图形,表示在被根据本发明的字符发生装置转换之后一个轮廓字体的布局;
图32表示根据本发明的字符发生装置的被转换轮廓字体的座标输出数据;
图33是一个具体的图形,表示利用根据本发明的字符发生装置中的座标数据准备绘画表;
图34表示根据本发明的字符发生装置的位图字体生成过程;
图35是一个流程图,表示根据本发明的字符发生装置的加粗/变细过程例子;
图36表示根据本发明的字符发生装置决定外部轮廓或内部轮廓的预处理;
图37表示经过根据本发明的字符发生装置的哥特体加粗处理所得到的结果;
图38是根据本发明的字符发生装置用于决定加粗参数的第三个表格数据;
图39A和图39B表示根据本发明的字符发生装置用于决定加粗参数的第四个表格数据;
图40说明在根据本发明的字符发生装置中用来准备灰度字体的位图;
图41由图41A和图41B组成,表示根据本发明的字符发生装置第二种字符产生方法的流程图;
图42A、42B和42C中的每一个都给出了根据本发明的字符发生装置的灰度字体转换表的例子;
图43表示根据本发明的字符发生装置的灰度字体转换过程;以及
图44表示根据本发明的字符发生装置的灰度被转换状态。
第一实施例
现在将描述本发明的第一个实施例。应该注意到:本发明可适用于具有多个设备的系统或包含单个设备的装置。本发明也可以通过为这样一个系统或装置提供一个程序来实现。
图1是一个简图,说明利用根据本发明的字符发生装置的第一个系统的控制结构。该系统可以是一个日语的字处理机、工作站或计算机系统。
在图1中,CPU1是中央处理器,控制整个系统并执行算术操作等等。ROM2是一个只读存储器,其中存放着系统启动程序和流程图有关的若干程序(后面将被描述)以及字模数据。RAM3是一个随机存取存储器,这是一个没有限制用途的数据存储区,对于每个处理过程,可装入并执行各种程序和数据。KBC4是一个键盘控制部分,从KB5(键盘)中接收键输入数据,并把数据送到CPU1。ROM2中存放着图16、图26、图38和图42中所示的这类数据,将在后面被描述。
CRTC6是一个显示控制器,它把将要被显示的数据送到CRT7(一个显示器)。
外部存储设备9,例如FD(软盘驱动器)或HD(硬盘设备)用来存放程序和数据,当在执行期间需要时,这些程序和数据就被引用或装入到RAM3。DKC8是控制数据传输的磁盘控制器。PRTC10是打印机控制器,PRT11为打印机设备,而系统总线则是上述各种组件的数据通路。
图2是利用本发明的字符发生装置的第二个系统的控制结构简图。该系统可以是激光打印机、喷墨打印机或感热式的印刷机。
在图2中,CPU21是控制整个装置并执行算术运算的中央处理器。ROM22是存放系统启动程序、字模数据等的只读存储器。
RAM23是一个随机存取存储器,这是一个没有限制用途的数据存储区,在每个处理过程中装入并执行各种程序和数据。
PRTC10是把数据传送到PRT11(打印机)的打印机控制器,而打印机再打印这些数据。
在这样一个字符发生装置中,CPU1根据指示某个被决定的字符权值的参数执行被存放在ROM2中的转换程序,并且把轮廓数据的座标值转换为其他的数据(后面将说明)。接着CPU1根据其座标已经被转换的轮廓数据产生一个或粗或细的字模,并且用少数几个字符数据来产生具有不同权值的粗字符或细字符。
而且,通过参考邻近某目标座标的两点的座标值,CPU1决定被转换的座标值,并产生一个被很好平衡的粗的或细的字模。
此外,CPU1从轮廓数据中提取外部轮廓数据和内部轮廓数据,并产生令人满意的一个粗的或细的字模。
而且,利用被抽取的外部轮廓数据和内部轮廓数据,CPU1分别决定粗字符权值和细字符权值,并产生能令人满意的粗的或细的字模。
接着,利用被抽取的外部或内部轮廓数据,CPU1决定x方向和y方向独立的字符权值,并产生能有效地反映每个字体形式特性的或粗或细的字模。
此外,根据被转换的轮廓数据,CPU1输出位图化的字体、轮廓座标数据或灰度字体,并且以某种适当的数据形式把或粗或细的字符数据提供给各种输出装置。
而且,根据指示被决定的字符权值的参数,从存放在ROM2中的一个表格中决定CPU1将转换的字符数据,并且转换对应被决定字符数据的轮廓数据的座标值。根据其座标被转换的轮廓数据,产生或粗或细的字模,因此,字符数据源被用来产生最佳的或粗或细的字符数据。
另外,通过转换其字符权值接近被决定的字符权值的字符数据,CPU1就能产生更加精确的或粗或细的字符数据。
现在参考图3A和图3B中的流程图说明本发明的这个实施例的详细处理过程。
图3A和图3B中的流程图给出根据本发明的字符发生装置的第一字符产生方法。数字(1)到(17)指示该过程的步骤。
给出的说明包括使用一种字体形式的数据(系统中存在的并且具有某一特定的权值)来产具有不同权值字符的数据。
步(1)接收输入参数。
输入参数可能是(例如)一个字符代码、一种字体形式、权值数据以及将被输出的字符输出尺寸和形式。
字符代码由字符代码系统所决定,例如,JIS(日本工业标准)代码、移位JIS代码、EUS代码或UNI代码,由此可预先标识目标系统。
字体形式从系统预先加入的数据〔如明体、哥特体字或圆哥特体〕或被加入做为可供选择的数据中选择出来的。权值表示字体形式的线条粗细程度,数据“很细”、“细”、“标准”、“粗”以及“很粗”被提供。
输出尺寸是表示将被输出的字体数据的实际大小的数据。
输出形式是所需字体的输出数据形式,以及发出输出请求,例如轮廓座标数据输出或位图化输出。
步(2)读出目标字符的座标数据。这些数据被预先存放在ROM、RAM、硬盘或软盘上。检查在步(1)中得到的数据中的字体形式数据和字符代码数据,并且读出所需的座标数据量。
将被读出的座标数据是通过提取某个字符的轮廓的特征点得到的数据,如图4所示。这些数据包括每个座标点的属性信息,例如直线数据/曲线数据确标识以及轮廓起点/终点标识。
虽然在该实施例中所用曲线数据的插值表达式可以是第二或第三B样条曲线或第二或第三Besier曲线,但所用的插值表达式是预先决定的。
指示字符框架的座标最小值是“0”。最大值是“800”。
步(3)根据被包含在输入参数中的权值数据对座标数据进行加粗或变细的处理。
这一处理过程将在后面参考图12中的流程图加以描述。做为这一处理的结果,座标数据被变换为粗化或细化轮廓的数据,如图5所示。
执行加粗或变细的处理后,座标点具有一对一的对应关系,每个点的属性标识符并没有变化。
步(4)根据输入参数中的输出尺寸,对在步(3)中得到的粗化或细化的座标数据执行扩大或缩小处理。
当所需的输出尺寸为(Ax,Ay)时,步(3)中得到的座标值为(x,y),执行放大或缩小处理后的座标值为(X,Y),而被存储的字符框架尺寸为(Mx,My),则有:
(X,Y)=(x×Ax/Mx,y×Ay/My)。
对一个字符的所有座标都用上面的表达式计算。在步(3)中得到的每个座标点的属性标识符都不改变。
当在步(5)中需要位图化输出时,程序控制进入步(7)。
步(7)到步(13)是从座标数据中实际准备位图化数据的过程。步(7)执行一次检测,制定目标座标数据是否为直线或曲线数据。在步(7)上,当座标数据为直线数据时,座标点被定义为一个直线的起点,而其后的一个座标点被定义为该直线的终点。然后把程序控制移到步(8)。
在步(7)上,当目标数据为曲线数据时,该座标点和曲线终止标识符所在的点之间所有点的座标数据被假定为曲线数据。程序控制然后移到步(9)。
步(8)执行产生一条直线的处理过程。在这种情况下,用DDA方法来产生一条直线。点被放在两个平面中,一个平面用于描绘,而且如图7所示,每个点只放在一个x座标上,对应一个y座标,因为显示时线被从左到右扫描,而且在奇数位置上的“1”到偶数位置上的“1”之间的区间都用“1”表示。若点被放在对应一个Y座标的多个X座标上,则不能很好地执行显示功能。
另一个平面为轮廓OR平面,如图8所示,在该平面中,对单个Y座标的所有X座标都被置“1”,因为该轮廓OR平面被用来补偿在描绘平面中被跳过的那些位。
步(9)执行把曲线数据转换为一组短直线(短矢量)的处理过程。
图9说明把一个第三Besier曲线转换为一组短矢量。
在图9中,点A、B、C和D是在步(3)中经过座标转换得到的曲线数据(第三Besier曲线点)。这些点被用来计算点a、b和c。点a位于点A和点B之间的中点,点b位于点B和点C之间的中点,而点c则位于点C和点D之间的中点。
接着,计算点x、y和z。点x为点a和点b之间的中点,点z为点b和c之间的中点,而点y为点x和z之间的中点。于是,点行Aaxy为新的第三Besier曲线点,而点行yzcD为另一个第三Besier曲线点。
当这些Besier曲线点按照相同的方式但更详细地划分并满足某种具体的制定参考时,该划分过程就停止了。因此得到的第三Besier曲线点行就是短矢量的集合。
步(10)根据步(9)得到的短矢量集合把点放在两个平面中。把点放在两个平面中的方法与步(8)中执行的方法相同。对所有的短矢量重复执行这一过程。
步(11)执行一次检测,判断对一个轮廓的所有座标数据的处理是否已经完成。若完成则程序控制移到步(13),否则移到步(12)。
步(12)更新当前座标数据的指针以便处理下一个数据。若下一个数据是直线数据,则指针被更新为指向下一个座标数据。若下一个数据为曲线数据,则指针被更新为指向曲线的终止座标点。然后程序控制返回步(7),执行一次检测,判定是否为直线的数据或曲线的数据,并根据这些数据安排点。
步(13)判定一个字符的所有轮廓数据是否都已经被处理过。若所有的轮廓数据已经被处理,程序控制进入步(15)。否则转到步(14)。
因为一个轮廓的数据已经被处理,在步(14)中指针移到下一个轮廓的头,程序控制返回步(7)。
在步(15)中,因为对所有座标数据把点安排在两个平面上的处理已经完成,如图10所示,用于描绘的平面沿着每个被扫描的线从左边开始扫描,并且在奇数标号“1”到偶数标号“1”之间的区间都用“1”显示。
对所有的被扫描行执行显示处理。然后,在步(16),如图11所示,把从步(15)中得到的描绘平面的数据和在步(8)和(10)中得到的轮廓OR平面的数据进行逻辑或运算,从而得到一个字符的位图化数据。
最后,步(17)把步(16)得到的一个字符的数据返回到请求一方指定的某个区域中,并终止处理过程。
现在参考图12中的流程图,详细描述图3中步(3)的加粗/变细示例过程。
图12是一个流程图,表示根据本发明的字符发生装置的一个加粗/变细过程示例。数字(1)到(12)表示该过程的步骤。
在该实施例中的加粗/变细处理中,加粗/变细参数根据外部轮廓a和内部轮廓b和c而变化,如图4所示。由于轮廓座标点行并没有区分为外部轮廓和内部轮廓,因此,必须对座标进行检测以判断是外部轮廓或是对内部轮廓的。为了改变轮廓座标,外部轮廓座标使用了一个外部轮廓加粗/变细参数,而内部轮廓座标也用了一个内部轮廓加粗/变细参数。
应该注意到:当形成一个轮廓的外部轮廓点行为逆时针时,则内部轮廓点行被安排为顺时针方向的。而后外部轮廓点行是顺时针的,则内部轮廓点行就安排为逆时针的。
在图12的步(1)到步(3)中,执行预处理以判断将在步(4)中被处理的目标轮廓是否为外部或内部轮廓。
在该处理过程中,抽取一个起点和两个和该起点相邻的点。当起点为AS时,在起点之前的点(一个轮廓的最终点)为A而跟在起点后的点为B;在通过划分矢量AS和SB形成的角度的方向上提供用于预处理的一个点。
当外部轮廓点行为逆时针方向时,起点由某个具体的值向右移动(当面向该矢量的移动方向时)。当外部轮廓点行为顺时针方向时,起点由某个特定的值向左移动(当面向矢量移动的方向时)。
程序控制移到步(4),执行一次检测,判断目标轮廓是外部轮廓或内部轮廓,使用了在步(3)中得到的用于预处理的点。这一步的处理将结合图19中的流程图详细说明。
接着,在步(5)上,根据权值决定外部和内部轮廓厚度的参数。决一轮廓厚度的参数在x方向和y方向上对外部和内部轮廓有独立的值,并且分别负责水平线和垂直线的加粗处理。
因为例如为了加粗一个明体字符(如图14所示)其水平线不需要加粗太多,而其垂直线就必须加粗很多,因此,x方向和y方向要求不同的值。
然而,对于圆哥特体字体形式的字符来说,水平方向上的线加粗的程度却和垂直方向上的线一样,如图15所示。
因此,单个字体形式的加粗必须被修改。如图16所示,表示从外部轮廓和内部轮廓到字体形式和权值的水平和垂直线的中心的参考值被预先放在一个表格中(通过从ROM2或22、或到RAM3或23的另一存储介质中写数据准备的)。标准字体权值和所需字体权值之间的差被用来决定在x方向和y方向上外部轮廓和内部轮廓的加粗。对于为变细而把座标数据用作标准数据的明体形式来说,为了产生一个粗的明体字符,通过确定外部轮廓的x部分的15和9之间的差以及其y部分的25和15之间的差来决定加粗的值(参数)。
当加粗的值为正时,执行加粗处理,而当加粗的值为负时,执行变细处理。在步(6)到步(10)的过程期间,对构成一个轮廓的所有座标点行执行加粗/变细处理。
首先,在步(6)中得到将被处理的一个目标点。接着,在步(7)中,求出与该目标点相邻的点。最后,在步(8)中实际执行加粗处理过程。
如图17所示,假定目标点为B,前面的点为A,后面的点为C。当外部轮廓为逆时针方向时,该目标点相对于平分曲矢量AB和BC形成的角的线向右移动。当外部轮廓为顺时针方向时,目标点向左移动。该点移动的范围等于和在步(5)中得到的x加粗值和y加粗值形成的三角形的斜边。
在步(9)中,当一个轮廓的所有座标点都已经被处理时,程序控制转到步(11)。当有一些轮廓点要被处理时,程序控制转到步(10),在这里更新指针,使之指向下一个轮廓点,并再次执行加粗处理过程。
在步(11)中执行一次检测,判断是否对一个字符的所有轮廓已经被处理。当处理完成时,程序控制移到步(12)。当还有剩下的轮廓要处理时,更新指针使之指向下一轮廓点,并再次执行加粗处理。
当对所有的轮廓座标点的加粗处理都完成时,程序控制转到步(12)。如图18所示,当加粗处理被执行时,结果字符框架变大,而当变细处理被执行时,结果框架变小。
因此,在步(12)中,需要调整结果框架的尺寸,使之符合原始字符框架的尺寸。放大/缩小率是在步(5)中得到的对外部轮廓加粗值的两倍(对变细处理为页的加粗值)。
若原始字符框架的X宽度为Bx,外部轮廓的水平加粗值为Fx,Y宽度为By,外部轮廓的垂直加粗值为Fy,执行加粗处理的座标为(x,y),则调整字符框架尺寸后的座标为(X,Y),
(X,Y)=((x+Fx)×Bx/(Bx+Fx×2),(y+Fy)×By/(By+Fy×2))。
对一个字符的所有座标点行执行这一计算,并且终止如图10所示的加粗处理过程。
现在结合图19中的流程图详细介绍图12中的步(4)的外部/内部轮廓确定过程。
图19中的流程图是根据本发明的字符发生装置确定外部/内部轮廓的一个示例过程。数字(1)到(8)表示该过程的步骤。
如图20所示,通过在某个特定的点上连接两个轮廓座标点ABCD形成的逆时针方向角被定义为正值;并且当这些点的角度之和为2&P时,这些点被确定为是对内部轮廓的。
当用图20中所执行的同样方式计算,而角度之和为“0”时,这些点被确定为是对外部轮廓的。因为在图12中的步(1)到(3)已经计算出具体的点,因此,执行该特定点形成的角度之和的计算过程,如图19中的流程图所示。
步(1)执行初始化,置角度之和为“0”。步(2)抽取两个相邻的点。步(3)通过确定矢量以及矢量之间角度的大小把该特定的点和两个被提取的点连接起来。假定该特定点为X,而两个提取点为A和B,可由外积表达式求出角度。其结果在步(4)中被加入角度之和。
步(5)执行一次检测,判断两点的一个轮廓提取是否已完成。当对所有的点执行这种计算后,程序控制转到步(6)。当还有剩下的数据要计算时,程序控制返回到步(2)以便重复这一计算。步(6)执行一次检测,判断角度之和是否为“0”或“2π”,若其和为“0”,程序控制转到步(7),置外部轮廓标识符并终止该处理过程。若其和为“2π”,程序控制转到步(8),置内部轮廓标识符并终止处理过程。
第二实施例
现在讨论另一个实施例。
下面将讨论这样一种情况:当需要一个具有特定权值的字体形式时,存在两个以上的权值可被用作同一字体形式的标准。在这种情况下,从同一字体形式的多个字体权值中选出将被用来处理所需权值的字体权值是很重要的。
当具有标准权值的字体形式被决定时,按照对第一实施例相同的方式执行下面的权值转换过程。因此,只说明选择标准权值的方法。
图22是一个流程图,给出了根据本发明的字符发生装置选择加粗参数的示例过程。数字(1)到(6)表示该过程的步骤。
首先,步(1)需要检测哪种字体形式的哪个权值存在存储设备中。存在该字体形式的头区中的头数据被引用到一个表格中,指示这类数据存在的数据也被输入到该表格中。
在图23A和2B中的示例表格中,权值3和7对明体形式,权值5对圆哥特体形式,权值6对斜哥特体形式,而权值4和7则对应楷体形式。
在步(2)中,执行一次检测,判断所需权值数据是否已经被存在例如120M或硬盘这样的存储设备中。对步(1)中准备的表格检索,通过利用所需的字体形式和权值数据,就能判定数据是否被存在存储设备中。当所需的权值数据被存在某个存储设备中时,程序控制到步(3),否则转到步(4)。
当所需的权值数据已经被存在存储设备时执行步(3)的处理。因不要求加粗/变细处理,从存储设备中读出座标数据。通过引用这些数据,根据输出的尺寸执行放大/缩小处理,并准备好位图化的字体,然后终止处理过程。
录所需的权值数据没被存在某个存储器中时,执行步(4)的处理。执行加粗/变细处理以输出具有所需权值的字符。
因此,需要选择源数据来执行加粗/变细处理。通常,加粗处理得到的结果变坏的程度不如变细处理的结果。因此,利用步(1)中准备好的表格,执行一次检测以判断权值的数据是否小于被存在存储设备中的所需的权值。
当权值的数据小于存在存储设备中所需数值时,程序控制转到步(5)。当较小权值的数据没被存在存储设备中时,程序控制转到步(6)。
例如,为了输出具有权值5的明体形式字体,因为具有权值3的明体形式字体已经存在存储设备中,程序控制转到步(5)。而为了输出具有权值3的斜哥特体形式的字体,因为不存在具有较小权值的斜哥特体形式的字体,因此,程序控制转到步(6)。
在步(5)中,具有一个将被用作加粗处理标准的权值的字体形式被选择。x方向和y方向上的参数被置为将要执行加粗处理的外部和内部轮廓。
为了输出具有权值5的明体形式字体,因为存在着具有权值3的明体形式字体,因此,每个外部和内部轮廓的x方向和y方向的权值3和权值5之间的差被置为加粗参数。在步(6)中,选择一种具有用作变细处理标准的权值的字体形式。接着,为每个外部和内部轮廓的x方向和y方向设置参数。
为了输出具有权值3的斜哥特体形式的字体,因为具有权值6的斜哥特体形式的字体已存在,轮廓的x方向和y方向的权值3和6之间的差被置为参数。
在上述的步(5)或(6)中设置3加粗或变细参数后,执行在第一实施例中所说明的处理过程,并输出一个具有所需权值的字符。虽然只介绍了判断是否存在具有比目标字符的权值小的权值的字体数据,但也可以执行检测来判断是否存在比目标字符的权值大的权值的字体数据。
此外,可以选择具有和目标字符的权值最接近的权值的数据,用来执行权值变换。
第三实施例
现在介绍另一个实施例。
下面将说明在第一和第二实施例中执行的加粗过程中使用灰度字体的情况。
位图化的字体是一种二进制字体,其点值为“0”或“1”,而灰度字体则是一种多值字体,其中的每个点都可能有多个值,如0到3、0到5、或0到255。
做为产生灰度字体的一种方法,通常,当具有n2灰度级的灰度字体将被输出时,如图24所示,所需的输出尺寸在图25A和25B中的步(4)在垂直和水平方向上被放大n倍,并且利用得到的输出尺寸准备好位图化的字体。
一个位图被垂直和水平地划分形成n个位,如图24所示。被包含在每个n×n的正方形域中的位1的数目决定了灰度每点的多值。
当第一实施例被应用到灰度字体时,所执行的处理过程如图25A和25B中的流程图所示。
图25A和25B是根据本发明的字符发生装置第二字符产生方法的流程图。数字(1)到(19)表示该过程的步骤。
由于这个处理过程的流程图同第一实施例中对位图化字体的生成或轮廓座标输出的处理几乎是一样的,并且其步骤几乎对应图3中的那些步骤,因此,这里只讨论由于灰度字体的生成而不同的过程步骤。
不同于图3A和3B的步骤有步(1)和(4)以及步(17)和(18),这些步骤将被加入。
步(1)取得输入参数,并且把灰度数据也加到输入参数中。例如,这些参数中有字符代码、字体形式、权值数据、字符输出尺寸、灰度级数据、输出形式以及输出设备的特性。
字符代码由字符代码系统所决定,例如JIS代码、移位JIS代码、EUS代码或UNI代码,由此预先标识一个目标系统。
字体形式从预先加入系统的数据中选择,如明体、哥特式或圆哥特体,或者被作为可选项加入的数据。
数据的内容和生成位图化字体时所用的数据完全相同。用于产生灰度字体的具体数据没有被存储。
权值数据是用于决定字体形式的行粗细程度的数据,被提供的这类数据有“很细”、“细”、“标准”、“粗”和“很粗”。输出尺寸是表示将被输出的字体数据实际大小的数据。x方向上和y方向上的大小都被要求。灰度级数据指出灰度字体将被准备的灰度级。
根据输出设备的特性,灰度级被置为4、16或256级。输出格式是对所需字体的输出数据形式,包括轮廓座标数据输出、位图化字体输出、灰度字体输出和一点(1—dot)表达式形式。例如,灰度字体的1—dot表达式形式用来表示一字节是否表达一个点,或者一字节表达2个点或4个点。输出设备的特性是表示如何为显示器准备一种最佳灰度字体而决定一种灰度级的数据。
在步(4)中,通过引用灰度字体的输出规格和灰度级,对步(2)中读出的座标数据执行放大/缩小处理。当所需输出尺寸为(Ax,Ay)时,灰度级为n、在步(3)中得到的座标为(x,y),经过放大/缩小处理后得到的座标为(X,Y),而被存储数据的字符框架尺寸为(Mx,My),用于数据放大或缩小的表达式为:
在步(17)和(18)中,利用步(16)中准备的位图化字体得到一个灰度字体。首先,在步(17)中,根据输出设备特性(要求作为一个输入参数)选择灰度转换表格。采用16灰度级的一个4×4的掩码,代表输出设备特性的值被预先存在灰度字体转换表中,如图26所示。
图26A给出了一个例子,其中,输出设备的亮度特性是一致的;图26B也给出了一个例子,但其中,点中心亮度高,而其外圈部分亮度却较低;图26C的例子中,点的外圈部分亮度高而其中心亮度却较低。
从中选择最适合输出设备高度特性的表格,然后,在步(18)中利用步(17)选择的表格准备好一个灰度字体。现在结合图27讨论这一处理过程。
图27给出了在步(16)中得到的位图化字体。垂直和水平的长度已经由灰度级n乘
Figure A9411293500301
得到。因此,垂直和水平长度被除以
Figure A9411293500302
并且提取
Figure A9411293500303
×
Figure A9411293500304
的网格正方形。每个网格正方形的位值被进入表中其对应网格正方形的值所乘(表格是在步(17)中得到的)。
对这些乘积求和就得到一个目标点的灰度值。
图27给出一个例子,其中,具有16灰度级的灰度字体被输出。为4×4的网格正方形选择图26B中的表格。
对所有的网格正方形执行上述的处理过程,因此产生如图28所示的灰度字体。接着,在步(19)中,根据输出格式存储该灰度字体并且把数据返回到请求一方。
如果所需的输出格式是一字节对一点,则网格正方形中的值被压缩为一字节并且被存储起来。
如果所需的输出格式是把邻近的点压缩到一字节,则一个点被压缩到4位并被存储,并且数据被返回到请求一方。接着终止该处理过程。
第四实施例
因为该实施例的字符发生装置的分块电路已经结合图1和图2被说明过,因此,这里将不作解释。
在图1和图2所示的字符发生装置中,根据指示某个被确定的字符权值的参数,CPU1执行存在120M2中的一个转换程序,并把轮廓数据的座标值变换为其他的数据(将在后面描述)。接着,CPU1根据其座标已经被变换的轮廓数据生成一个粗的或细的字模,并利用少数几个字符数据产生具有不同权值的一个粗字符或细字符。
而且,通过参考邻近某个目标的座标的两个点的座标值,CPU1确定一个被变换的座标值,并产生一个被很好平衡的粗的或细的字模。
此外,CPU1利用轮廓数据,确定x方向和y方向的独立的字符权值,并生成能有效地表示每个字体形式特性的一个或粗或细的字模。
而且,根据被转换的轮廓数据,CPU1输出位图化字体,轮廓座标数据或灰度字体,并以某种适当的数据格式把或粗或细的字符数据提供给各种输出装置。接着,根据指示某个被确定的字符权值的参数,从某个被存在120M2中的表格中的确定CPU1将转换的字符数据,并且变换对应这些被确定字符数据的轮廓数据的座标值。根据其座标被变换的轮廓数据,产生一个或粗或细的字模,使得字符数据源能被用来产生最佳的粗的或细的字符数据。
另外,通过转换那些其权值接某个被确定字符权值的字符数据,CPU1生成更加精确的粗的细的字符数据。
现在结合图29A和29B中的流程图讨论本发明的该实施例的详细处理过程。
图29A和29B的流程图给出了根据本发明的字符发生装置的第三种字符发生方法。数字(1)到(16)表示该过程的步骤。
将给出的解释包括利用一种字体形式的数据(存在一个系统中并具有特定的权值)来产具有不同权值的字符的数据。
步(1)接收输入参数。例如,输入参数可以是字符代码、字体形式、权值数据、以及将要输出的字符尺寸和格式。字符代码由某个字符代码系统确定,例如JIS代码、移位JIS代码、EUS代码或UNI代码,由此预先标识某个目标系统。字体形式从该系统预先加入的数据中选择,例如明体、哥特体、圆哥特体或作为所选项加入的数据。权值是关于字体形式的线粗细程度的数据1被提供的这类数据有“很细”、“细”、“标准”、“粗”和“很粗”。输出尺寸(规格)是表示将被输出的字体数据的实际大小的数据。输出格式是所需字体的输出数据形式,并且发出如轮廓座标数据输出或位图化输出这样的一个输出请求。
步(2)读出某个目标字符的座标数据。这些数据被预先存在ROM、RAM,硬盘或软盘中。检测步(1)得到的字体形式数据和字体代码数据,并读出所需数量的座标数据。将被读出的座标数据是通过提取字符轮廓的特征点所得到的数据,如图4所示。些数据包括每个座标点的属性信息,例如直线数据/;曲线数据确定标识符和轮廓起点/终点标识符。虽然用于该实施例的曲线数据的插值表达式可以是第二或第三B样条曲线,或第二或第三Besier曲线,但所用的插值表达式是预先确定的。
用来描述字符框架的座标最小值为“0”,而最大值为“800”。也包括在每个笔划框架中从字符的原始点到标准点的偏移信息。在步(3)中,根据被包括在输入参数中的权值数据,对座标数据执行加粗或变细处理。该处理过程的细节将在后面结合图37中的流程图描述。做为这一处理过程的结果,座标数据被变换为被粗化或细化轮廓的数据,如图31所示。
执行加粗或变细处理之后,座标点具有一对一的对应关系,而且每个点的属性标识符不变。步(4)根据被包含做为输入参数的输出尺寸,对步(3)中得到的被加粗或变细的座标数据执行放大或缩小处理。
当所需的输出尺寸为(Ax,Ay)时,在步(3)中得到的座标值为(x,y),经过放大或缩小处理后的座标值为(X,Y),而被存放的字符框架尺寸为(Mx,My),则有:
(X,Y)=(x×Ax/Mx,y×Ay/My)。
用上面的表达式计算来自单个字符的所有座标。在步(3)中得到的每个座标点的属性标识符不变。当步(5)要求一个位图化输出时,程序控制转到步(7)。步(7)到(13)是从座标数据中实际准备位图化数据的过程。步(7)执行一次检测,判断目标座标数据是否为直线数据或曲线数据。
在步(7)中,当座标数据为直线数据时,该座标点被定义为直线的起点,而且随后的座标点被定义为直线的终点。接着程序控制转到步(8)。在步(7)中,当目标数据为曲线数据时,在该座标点和放有曲线终止标识的点之间的所有点的座标数据被假定为曲线数据。程序控制然后移到步(9)。步(8)执行产生一条直线的处理过程。在这种情况下,利用DDA方法生成一条直线。由DDA得到的座标数据被输入到一个用于显示(描绘)的座标表格中,如图33所示。
在如图33所示的用于描绘的座标表中,对应输出区中的每个y座标输入x座标的一个起点座标和一个终点座标。做为DDA方法的结果,当对应单个y座标存在多个x座标时,这样设置x座标,使得最后的一个x座标与一个笔划的轮廓相关。在步(9)中,曲线数据被转换为一组短直线(短矢量)。
图9说明把第三Besier曲线转换为一组短矢量。因为该处理过程以前已经描述过,这里将不给出该处理过程的解释。
在步(10)中,根据步(9)中得到的短矢量集合,把座标数据输入到用于描绘的座标表格中。把座标数据输入该表的方法和步(8)中执行的方法一样。对所有的短矢量重复执行这一过程
步(11)执行一次检测,判断一个轮廓的所有座标数据的处理是否已经完成。若处理已经完成,程序控制转到步(13)。还则,程序控制转到步(12)。在步(12)更新当前座标数据的指针以便处理下一个数据。若下一个数据为直线数据,更新指针使之指向下一个座标数据。若下一个数据为曲线数据,更新指针使之指向曲线的终止座标点。
接着程序控制返回步(7),执行检测以判断该数据是直线的或曲线的,并根据该数据安排点。步(13)执行检测以判断是否已经处理了一个字符的所有轮廓数据。当所有的轮廓数据已经被处理时,程序控制转到步(15)。否则转到步(14)。因为一个轮廓的数据已经被处理,在步(14)中移动指针,使之指向下一个轮廓的头,程序控制返回到步(7)。因为在步(15)中,所有座标数据的点已经被放在两个平面上,因此,采用一种非零的卷绕方法,对对应y座标并在步(8)和(10)中被存在描绘座标表中的x座标执行描绘过程,如图34所示。根据这种方法,沿着每个被扫描的线从左边开始对平面扫描。在起点的标识符的值被增1,虽然标识符的值被减1。若该标识符的值非“0”,则在这些标识符的点之间的区间被描绘为“1”。
最后,在步(16)中,步(15)得到的对一个字符的数据被返回到由请求一方所指定的区域上,并终止该处理过程。
现在结合图35中的流程图详细描述图29中步(3)的加粗/变细示例过程。
在该实施例的加粗/变细处理过程中,改变加粗/变细一个笔划的参数以便修改每个轮廓点的座标。
图35是一个流程图,给出根据本发明的字符发生装置的加粗/变细过程的示例。数字(1)到(9)表示该过程的步骤。
步(1)根据某个权值决定一个轮廓粗细程度的参数。确定轮廓粗细度的参数在对该轮廓的x方向和y方向上有独立的值,并分别处理水平线和垂直线的加粗过程。
这是因为,例如为了加粗一个明体字符,如图36所示,其水平线并不需要被加粗太多,而其垂直线必须被加粗许多,因此,x方向和y方向要求不同的值。然而,对于圆哥特体字体形式的字符来说,水平方向的线被加粗的程度如同垂直方向上的线一样,如图37所示。因此,对单个字体形式的加粗值必须被修改。如图38所示,表示从轮廓到字体形式的水平和垂直线中心的参考值和权值的数据被预先送入一个表中。标准字体权值和所需字体权值之间的差被用来确定x方向和y方向上轮廓的加粗处理过程。当该加粗值为正数时,执行加粗处理过程,而当加粗值为负数时,执行变细处理过程。对于用加粗的座标数据做为标准数据的圆哥特本形式,为了产生一个很细的圆哥特体字符,通过确定x方向的10和25之间的差和y方向的10和25之间的差来决定一个加粗值(参数)。
步(2)根据加粗参数修改每个笔划的偏移信息。为了获取被修改的偏移信息,加粗参数的x值和y值被从该偏移的x座标和y座标中减去。
在步(3)到步(7)中,对组成一个笔划的所有座标点行执行加粗/变细处理。首先,步(3)取出将被处理的目标点。接着,步(4)取出与该目标点相邻的点。
步(5)实际执行该加粗处理过程。因为该处理过程已经结合图17详细解释过,因此,这里将不再解释。点被移动的范围等于由步(1)得到的x加粗值和y加粗值形成的三角形的斜边。因这在这一处理过程中获得的座标值就是单个笔划框架的座标值,因此,它们被加到步(2)中求出的偏移座标值上,以便从字符原点中提供座标。
在步(6)中,当一个轮廓的所有座标点都被处理时,程序控制转到步(8)。当还有一些轮廓点要处理时,程序控制移到步(7),修改指针使之指向下一条轮廓点,并且两次执行该加粗处理过程。步(8)执行检测以确定一个字符的所有轮廓是否已经都被处理。当这个处理过程完成时,程序控制移到步(9)。否则更新指针使之指向下一个轮廓点,并再次执行加粗处理。
当对所有的轮廓座标点的加粗处理都已经被执行时,程序控制转到步(9)。如图15所示,当执行加粗处理时,所得到的字符框架变大,而当执行变细处理时,其结果的框架变小。
因此需要调整结果框架的尺寸,使之符合原始字符框架的尺寸。放大/缩小率是步(1)中得到的轮廓加粗值(变细时加粗值是负数)的两倍。
若原始字符框架的x宽度为Bx,外部轮廓的水平加粗值为Fx,y宽度为By,外部轮廓的垂直加粗值为Fx,执行加粗处理的座标为(x,y),则在字符框架尺寸被调节后的座标为(X,Y)
(X,Y)=((x+Fx)×Bx/(Bx+Fx×2),(y+Fy)×By/(By+Fy×2))。
对一个字符的所有座标点行执行这一计算,然后终止图35所示的加粗处理过程。
第五个实施例
现在讨论第五个实施例。给出的说明将对于这样的一种情况:当所需的字体形式具有某个特定的权值时,存在两个以上的权值可用作这个相同字体形式的标准。
在这种情况下,从同一字体形式的多个字体权值中,选择将被用来处理所需权值的字体权值是很重要的。因此,当确定具有某个标准权值的字体形式时,采用和第一实施例中相同的方式执行下面的权值转换处理过程。这里只说明选择一个权值作为标准的方法。
图22是一个流程图,给出根据本发明的字符发生装置选择一个加粗参数的示例过程。数字(1)到(6)表示该过程的步骤。
首先,步(1)需要检查哪个字体形式的哪个权值被存在存储设备中。存放在字体形式头部中的头数据被引用到一个表格中,而指示这类数据存在的数据也被送入该表中。在图39A和39B的示例表格中,权值3和7对明体形式,权值5对应圆哥特体形式,权值6对应斜哥特体形式,而权值4和7对应Block形式。
步(2)执行检测,判断所需的权值数据是否已经被存在某个存储设备中,例如ROM或硬盘。检索步(1)所准备好的表格,利用所需的字体形式和权值数据,就能确定数据是否被存在存储设备中。当所需的数值数据已经被存在存储设备中,程序控制转到步(3)。否则转到步(4)。当所需的权值数据被存在存储设备中时执行步(3)的处理。因为不要求加粗/变细处理,因此,从存储设备中读出座标数据。通过引用这些座标数据,根据输出尺寸执行放大/缩小处理过程,并准备好位图化字体。然后终止该处理过程。
当所需权值数据没被存在存储设备中时,执行步(4)的处理。执行加粗/变细处理以输出具有所需权值的字符。因此需要选择源数据来执行该加粗/变细处理过程。一般来说,加粗处理的结果比变细处理的结果要好一些。因此,利用步(1)准备好的表格,执行一次检测,判断小于所需权值的权值数据是否被存在存储设备中。
当小于所需权值的权值数据被存在某个存储设备中时,程序控制移到步(5)。否则转到步(6)。
例如,为了输出具有权值为5的明体形式字体,因为存储设备中存在具有权值为3的明形式字体,因此程序控制转到步(5)。为了输出具有权值为3的斜哥特体形式的字体,因为不存在具有较小权值的斜哥特体形式的体,因此程序控制转到步(6)。
步(5)选择一个具有将用作加粗处理标准的权值的字体形式。设置x方向和y方向上的参数,以便执行加粗处理。为了输出具有权值5的Ming形式字体,因为存在权值为3的Ming形式字体,因此,轮廓的x方向和y方向上的权值3和权值5之间的差被置为加粗参数。步(6)选择具有用作变细处理标准的权值的字体形式。接着设置轮廓的x方向和y方向的参数。
为了输出权值为3的斜哥特体形式的字体,因为存在权值为6的斜哥特体形式的字体,因此,轮廓的x方向和y方向的权值3和6之间的差被置为参数。在上述的步(5)和(6)中设置3加粗或变细的参数之后,执行第四实施例中所介绍的处理过程,并输出具有所需权值的一个字符。
虽然给出的说明只用于判断权值小于某个目标字符的字体数据是否存在,但也可以检测判断权值大于某个目标字符的字体数据是否存在。此外,可以选择权值最接近目标的数据,并用来执行权值变换。
第六个实施例
现在将介绍第六个实施例。该实施例给出的说明是对于在第四和第五实施例中执行的加粗处理的灰度字体。
位图化字体是一种二进制字体,其点的值或为“0”或为“1”,而灰度字体则是一种多值字体,其中的每个点可以有多个值,例如0到3、0到5或0到255。通常,作为产生灰度字体的一种方法,当具有n2灰度级的灰度字体将被输出时,如图40所示,在图41A和41B的步(4)中,在垂直和水平方向上把所需的输出尺寸放大n倍,并利用该结果输出尺寸准备好一个位图化的字体。
如图40所示,一个位图被垂直和水平地划分,形成几个位(位组)。被包含在每个n×n正方形域部分中的位1的数目确定了灰度的一个点的多个值,所执行的处理过程如图41中的流程图所示。
图41A和41B是根据本发明的字符发生装置的第四种字符生成方法的流程图。数字(1)到(18)表示该过程的步骤。
因为该处理过程的流程图几乎和第四实施例中的位图化字体生成或轮廓座标输出的处理一样,并且其处理步骤几乎对应图29中的那些步骤,因此,这里只讨论由于生成灰度字体而不同的过程步骤。
这些不同的步骤是步(1)和(4),以及步(16)和(17),这些步骤都被加上。
步(1)获取输入参数,并把灰度数据加到输入参数中。例如,参数为字符代码、字体形式、权值数据以及字符输出尺寸、灰度级数据、输出格式和输出设备的特性。字符代码由某个字符代码系统所确定,例如JIS代码、移动JIS代码、EUS代码或UNI代码,由此预先标识一个目标系统。字体形式从预先被加入该系统的数据中选择,例如明体、哥特体、圆哥特体或作为可选项加上的数据。
数据的内容同用来生成位图化字体的数据完全一样。不保存生成灰度字体的特定数据。权值数据是关于字体形式的线粗细程度的数据,所提供的数据有“很细”、“细”、“标准”、“粗”以及“很粗”。
输出尺寸是表示将被输出的字体数据的实际尺寸的数据。x方向和y方向上的尺寸都被要求。灰度级数据指示将被准备的灰度字体的灰度级。根据输出设备的特性,灰度级被置为4、16或256级。
输出格式是所需字体的输出数据形式,包括轮廓座标数据输出,位图化字体输出,灰度级字体输出和1—点表达式形式。
例如,灰度字体的1—点表达式形式用来表示是否1字节表达1个点,或是否1字节表达2个或4个点。
输出设备的特性数据表示如何为显示器准备一种最佳灰度字体确定一个灰度级。
在步(4)中,通过引用灰度字体的输出尺寸和灰度级,对在步(2)中读出的座标数据执行放大/缩小处理。若所需的输出尺寸为(Ax,Ay),灰度级为n,步(3)中得到的座标为(x,y),经过放大/缩小处理后得到的座标为(X,Y),所存数据的字符框架尺寸为(Mx,My),则数据放大或缩小的表达式为: ( X , Y ) = ( Xx n xAx / Mx , yx n xAy / My )
在步(16)和(17)中,利用步(15)准备好的位图化字体来准备灰度字体。
首先,在步(16)中,根据被用来作为一个输入参数的输出设备特性选择灰度转换表。对16个灰度级采用4×4的掩码,表示输出设备特性的值被预先放在该灰度字体转换表中,如图42A到42C所示。
图42A给出了输出设备的亮度特性一致的例子;图42B给出在点的中心亮度高而在其外围部分中亮度却较低的例子;图42C给出的则是在点的外围部分亮度高而在其中心却亮度较低的例子。从中选择最适合于输出设备亮度特性的表格。
接着,步(17)利用步(16)中选择的表格准备好一个灰度字体。现在结合图43说明这一处理过程。
图43给出步(15)得到的位图化字体。通过用灰度级n乘以已经准备好垂直和水平的长度。因此,垂直和水平长度被
Figure A9411293500432
除,并提取
Figure A9411293500433
的网格正方形。每个网格正方形的位值乘以被送入步(16)得到的表格中的对应网格正方形中的一个值。
这些乘积之和为目标点提供一个灰度值。图42给出了一个输出具有16个灰度级的灰度字体的例子。对4×4网格正方形选择图42B中的表。对所有的网格正方形执行上述的处理过程,因此产生如图44所示的灰度字体。
接着,步(18)根据输出格式存放灰度字体并把数据返回到请求一方。如果被请求的输出格式为1字节对1点,则网格正方形的值被压缩为1字节并被保存起来。若被请求的输出格式把相邻的点压缩为1字节,则1个点被压缩为4位并被存储,接着,数据被返回到请求一方。然后终止该处理过程。
如上所述,根据本发明的一个实施例,转换装置根据被确定的字符权值变换轮廓数据的座标值,然后,发生装置根据其座标已经被变换的轮廓数据产生一个或粗或细的字模,因此利用少数几个字符数据就能产生具有不同权值的一个粗字符或细字符。
此外,根据本发明的另一个实施例,通过参考和某个目标的座标相邻的两个点的座标值,就能确定被变换的座标值,因此可以产生一个被很好平衡的粗的或细的字模。
另外,根据本发明的另一个实施例,可以从轮廓数据中提取外部轮廓数据和内部轮廓数据,并且能产生一个令人满意的粗的或细的字模。
而且,根据本发明的另一个实施例,利用被提取的外部轮廓数据和内部轮廓数据,就能确定输入粗的字符权值或输入细的字符权值,并能产生令人满意的粗的或细的字模。
此外,根据本发明的另一个实施例,利用被提取的外部和内部轮廓数据,就能确定x方向和y方向的独立字符权值,并能产生能有效地表示每种字体形式的特性的粗的或细的字模。
另外,根据本发明的另一个实施例,根据被转换的轮廓数据就能输出位图化字体,轮廓座标数据或灰度字体,并且能按某种适当的数据形式把粗的或细的字符数据提供给各种输出装置。
而且,根据本发明的另一个实施例,通过利用将被产生的字符的权值以及被存储的字符数据的权值之间的差确定一个参数,转换装置利用该被确定的参数来转换轮廓数据的座标值,而生成装置则利用得出的轮廓数据来产生一个或粗或细的字模,因此,字符数据源被用来产生最佳的粗的或细的字符数据。
另外,根据本发明的另一个实施例,根据其权值接近被确定的字符权值的字符数据确定一个参数,就能产生更精确的粗的或细的字符数据。
因此,根据本发明,只需一个较小的存储量,就能产生具有各种数权值的字体形式的字符数据。

Claims (30)

1.字符发生装置包括:
存放由座标数据组成的字符数据的存储装置,
根据存放在所述存储装置中的所述座标数据生成字模的生成装置,
确定一个使所述字模粗细的参数的确定装置,以及
根据由所述确定装置确定的所述参数转换所述座标数据的转换装置;并且
根据由所述转换装置所转换的座标数据,利用所述的生成装置来生成粗的或细的字模。
2.根据权利要求1的字符发生装置,其中,所述的转换装置为了转换所述的座标数据,引用了和目标座标相邻的两组座标的数据。
3.根据权利要求1的字符发生装置,其中,所述确定装置为x方向和y方向上的所述座标数据确定独立的参数。
4.根据权利要求1的字符发生装置,其中,所述的生成装置利用所述的被转换座标数据来输出位图化形式,座标数据形式或灰度形式。
5.根据权利要求1的字符发生装置,进一步包括一个用于输出所述的被生成字模的输出装置。
6.根据权利要求5的字符发生装置,其中,所述输出装置是一台打印机或一台显示器。
7.根据权利要求1的字符发生装置,其中,所述字符数据按照轮廓不允许互相交叉的形式存储。
8.根据权利要求1的字符发生装置,其中,所述字符数据按照轮廓允许互相交叉的形式存储。
9.根据权利要求7的字符发生装置,其中,按所述形式—所述轮廓不允许相互交叉一的所述字符数据包括表示外部轮廓的字符数据和表示内部轮廓的字符数据。
10.根据权利要求9的字符发生装置,其中,所述确定装置能确定分别对应所述外部轮廓和所述内部轮廓的数据。
11.根据权利要求1的字符发生装置,其中,所述参数由将要产生的字符的权值数据和被存在所述存储装置中的字符的权值数据之间的差所决定。
12.根据权利要求11的字符发生装置,其中,一个字符的所述权值数据对每一种字体形式存储。
13.根据权利要求1的字符发生装置,进一步包括一个纠正装置,用于纠正由所述转换装置所转换的所述座标数据的字符框架的尺寸,使得被纠正后的尺寸与原始的尺寸一致。
14.根据权利要求11的字符发生装置,其中,那些被存在所述存储装置的字符的被选择的权值数据就是最接近将被产生的字符的所述权值数据的那些权值数据。
15.根据权利要求11的字符发生装置,其中,在所述的被存在所述存储装置的权值数据中,第一优先级被赋给所选的比将要产生的字符的所述权值数据小的权值数据。
16.字符发生方法包括:
根据被存在某个存储装置中的座标数据产生字模的生成步骤,所述存储装置用于存放包括所述座标数据的字符数据,
确定使所述字模或粗或细的参数的确定步骤,以及
根据在所述确定步骤中被确定的所述参数转换所述座标数据的转换步骤;并且
由此,在所述的生成步骤中,根据所述转换步骤所转换的座标数据产生或粗或细的字模。
17.根据权利要求16的字符生成方法,其中,在所述的转换步骤中和目标座标相邻的两个点的座标数据被引用来转换所述的座标数据。
18.根据权利要求16的字符生成方法,其中,在所述的确定步骤,在x方向和y方向上,独立地确定所述座标数据的参数。
19.根据权利要求16的字符发生方法,其中,在所述的生成步骤,所述的被转换座标数据被用来输出位图化形式、座标数据形式或灰度形式。
20.根据权利要求16的字符生成方法,其中,所述的被生成字模被输出到某个输出装置。
21.根据权利要求20的字符生成方法,其中,所述的输出装置是打印机或显示器。
22.根据权利要求16的字符发生方法,其中,所述的字符数据按轮廓不能互相交叉的形式存储。
23.根据权利要求16的字符发生方法,其中,所述字符数据按照轮廓被允许互相交叉的形式存储。
24.根据权利要求22的字符发生方法,其中,采用所述形式(所述轮廓不允许相互交叉)的所述字符数据包括表示外部轮廓的字符数据和表示内部轮廓的字符数据。
25.根据权利要求24的字符发生方法,其中,在所述的确定步骤,分别对所述外部轮廓和所述内部轮廓确定数据。
26.根据权利要求16的字符发生方法,其中,所述参数由将被产生的字符的权值数据和被存在所述存储装置中的字符的权值数据之差确定。
27.根据权利要求26的字符发生方法,其中,字符的所述权值数据为每个字体形式所存储。
28.根据权利要求16的字符发生方法,进一步包括用于纠正在所述转换步骤中转换的所述座标数据的字符框架的尺寸的纠正步骤。
29.根据权利要求26的字符发生方法,其中,被存在所述存储装置中的字符的那些被选择的权值数据就是最接近将被产生的字符的所述权值数据的那些权值数据。
30.根据权利要求26的字符发生方法,其中,在被存于所述存储装置的所述权值数据中,第一优先级被赋给比将要产生的字符的所述权值数据较小的数权数据的选择。
CN94112935A 1993-12-09 1994-12-09 字符发生装置及其实现方法 Expired - Fee Related CN1098515C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP5309556A JPH07160242A (ja) 1993-12-09 1993-12-09 文字発生装置
JP5309555A JPH07160241A (ja) 1993-12-09 1993-12-09 文字発生装置
JP309556/93 1993-12-09
JP309555/93 1993-12-09

Publications (2)

Publication Number Publication Date
CN1121199A true CN1121199A (zh) 1996-04-24
CN1098515C CN1098515C (zh) 2003-01-08

Family

ID=26565996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94112935A Expired - Fee Related CN1098515C (zh) 1993-12-09 1994-12-09 字符发生装置及其实现方法

Country Status (8)

Country Link
US (1) US5959634A (zh)
EP (1) EP0657848B1 (zh)
KR (1) KR0167618B1 (zh)
CN (1) CN1098515C (zh)
DE (1) DE69425037T2 (zh)
HK (1) HK1011777A1 (zh)
SG (1) SG55106A1 (zh)
TW (1) TW301731B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794566B (zh) * 2010-01-08 2012-08-29 青岛海信移动通信技术股份有限公司 移动终端中确定待显示字符的字模数据的方法及相关装置
CN109887197A (zh) * 2018-12-21 2019-06-14 福建新大陆支付技术有限公司 一种基于pos机的矢量字体打印方法及pos机

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0785524A3 (en) * 1996-01-05 1999-01-13 Texas Instruments Incorporated Printing with dot shape modulation and greyscale
CN1161701C (zh) * 1997-03-14 2004-08-11 欧姆龙株式会社 语言识别装置和语言识别方法
JP3576797B2 (ja) * 1997-04-01 2004-10-13 キヤノン株式会社 図形処理装置、図形処理方法、文字処理装置および文字処理方法
KR100239357B1 (ko) * 1997-04-17 2000-01-15 구자홍 영상 표시 장치의 문자 처리 방법 및 장치
US7064757B1 (en) 1999-05-07 2006-06-20 Apple Computer, Inc. Automatic synthesis of font tables for character layout
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
JP3413383B2 (ja) * 2000-02-17 2003-06-03 株式会社ナムコ ゲームシステム及び情報記憶媒体
US7598955B1 (en) 2000-12-15 2009-10-06 Adobe Systems Incorporated Hinted stem placement on high-resolution pixel grid
US20040040503A1 (en) * 2002-08-29 2004-03-04 Micron Technology, Inc. Micromachines for delivering precursors and gases for film deposition
US7797631B2 (en) * 2002-09-18 2010-09-14 Canon Kabushiki Kaisha Document printing control apparatus and method
KR100497390B1 (ko) * 2003-04-01 2005-06-23 삼성전자주식회사 벡터 폰트 생성방법 및 장치
US7237184B2 (en) * 2003-12-18 2007-06-26 Microsoft Corporation Data property promotion system and method
US7639258B1 (en) * 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7602390B2 (en) * 2004-03-31 2009-10-13 Adobe Systems Incorporated Edge detection based stroke adjustment
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7333110B2 (en) * 2004-03-31 2008-02-19 Adobe Systems Incorporated Adjusted stroke rendering
US7580039B2 (en) * 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
TWI274257B (en) * 2005-03-17 2007-02-21 Arphic Technology Co Ltd Method for generating a bitmap character by scaling strokes of the character
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
DE112012006274B4 (de) 2012-04-27 2018-08-23 Mitsubishi Electric Corporation Schriftzeichen-Zeichnungsvorrichtung und Schriftzeichen-Zeichnungsverfahren
EP2784771A1 (en) * 2013-03-25 2014-10-01 Samsung Electronics Co., Ltd. Display apparatus and method of outputting text thereof
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
JP6642964B2 (ja) * 2015-01-05 2020-02-12 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
WO2022212652A1 (en) * 2021-03-31 2022-10-06 Cerini Arielle Nicole Digital penmanship
US12056289B2 (en) * 2022-03-31 2024-08-06 Rensselaer Polytechnic Institute Digital penmanship

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3275777D1 (en) * 1982-06-01 1987-04-23 Zhang Song Zhi The representation of character images in a compact form for computer storage
JPS61246877A (ja) * 1985-04-25 1986-11-04 Canon Inc 図形変換装置
US5365599A (en) * 1985-10-07 1994-11-15 Canon Kabushiki Kaisha Method and system of converting delineative pattern
JPH0237391A (ja) * 1988-07-27 1990-02-07 Fujitsu Ltd 画像補間方式
US5274365A (en) * 1988-10-26 1993-12-28 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces-character analysis
US4933866A (en) * 1988-11-17 1990-06-12 Vital Lasertype, Inc. Method and apparatus for generating aesthetically alterable character designs
US5475807A (en) * 1988-12-19 1995-12-12 Canon Kabushiki Kaisha Character processing apparatus
JP2907855B2 (ja) * 1989-02-27 1999-06-21 株式会社日立製作所 文字パターン発生装置および文字パターン発生方法
US5050228A (en) * 1989-03-04 1991-09-17 Brother Kogyo Kabushiki Kaisha Apparatus for converting image outline data into dot data representative of image dots
JPH02250189A (ja) * 1989-03-24 1990-10-05 Nippon Joho Kagaku Kk 文字発生方法および装置
US5053246A (en) * 1990-03-30 1991-10-01 The Goodyear Tire & Rubber Company Process for the surface treatment of polymers for reinforcement-to-rubber adhesion
SE464693B (sv) * 1990-04-04 1991-06-03 Haellde Maskiner Ab Matningsanordning vid groensaksskaerare
JP2774662B2 (ja) * 1990-04-04 1998-07-09 キヤノン株式会社 文字処理装置
KR940003701B1 (ko) * 1990-04-25 1994-04-27 샤프 가부시끼가이샤 컴퓨터를 사용한 문자도형 발생방법
JP2755789B2 (ja) * 1990-06-11 1998-05-25 キヤノン株式会社 文字フオントメモリと、該文字フオントメモリを用いた文字パターン発生装置
JPH0493992A (ja) * 1990-08-06 1992-03-26 Fuji Xerox Co Ltd 文字・図形描画装置
JP2909273B2 (ja) * 1991-06-10 1999-06-23 淑郎 大塚 アウトライン・フォントの線幅調整方法および装置
US5301267A (en) * 1991-09-27 1994-04-05 Adobe Systems Incorporated Intelligent font rendering co-processor
EP0537030B1 (en) * 1991-10-11 1997-09-17 Canon Kabushiki Kaisha Character or graphic processing method
JP3164617B2 (ja) * 1991-11-07 2001-05-08 株式会社日立製作所 文字図形変形処理装置および方法
US5280576A (en) * 1991-12-24 1994-01-18 Xerox Corporation Method of adjusting the weight of a character of an outline font
JP3338484B2 (ja) * 1992-09-09 2002-10-28 株式会社リコー アウトラインフォント変形装置
DE59209091D1 (de) * 1992-10-29 1998-02-05 Adobe Systems Inc Verfahren zum Ausgeben von Multitype-Schrift auf hochauflösenden Ausgabegeräten
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
TW363158B (en) * 1993-06-25 1999-07-01 Omron Tateisi Electronics Co A system for automatic adjustment of, character spacing
JPH0816144A (ja) * 1994-06-29 1996-01-19 Fujitsu Ltd アウトラインフォント展開方法およびアウトラインフォント展開装置
US5598520A (en) * 1994-09-26 1997-01-28 Microsoft Corporation Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary
JPH08194459A (ja) * 1995-01-19 1996-07-30 Fujitsu Ltd アウトライン文字描画装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794566B (zh) * 2010-01-08 2012-08-29 青岛海信移动通信技术股份有限公司 移动终端中确定待显示字符的字模数据的方法及相关装置
CN109887197A (zh) * 2018-12-21 2019-06-14 福建新大陆支付技术有限公司 一种基于pos机的矢量字体打印方法及pos机

Also Published As

Publication number Publication date
EP0657848A2 (en) 1995-06-14
KR0167618B1 (ko) 1999-01-15
EP0657848A3 (en) 1996-09-18
TW301731B (zh) 1997-04-01
EP0657848B1 (en) 2000-06-28
DE69425037D1 (de) 2000-08-03
DE69425037T2 (de) 2001-03-08
HK1011777A1 (en) 1999-07-16
US5959634A (en) 1999-09-28
SG55106A1 (en) 1998-12-21
CN1098515C (zh) 2003-01-08

Similar Documents

Publication Publication Date Title
CN1098515C (zh) 字符发生装置及其实现方法
CN1027472C (zh) 文字生成方法及其装置
CN1045835C (zh) 产生字符的方法和装置
CN1047680C (zh) 脸部图像数据处理装置
CN1194319C (zh) 对表格式数据进行查找、列表及分类的方法和装置
CN1115650C (zh) 图象生成系统和方法
CN1238819C (zh) 三维字符生成设备及三维图形数据生成设备
CN1215433C (zh) 联机文字识别装置及方法
CN1684492A (zh) 图像词典作成装置、编码装置、图像词典作成方法
CN1790338A (zh) 布局处理方法、装置以及程序
CN101046892A (zh) 图形描绘设备
CN1898676A (zh) 使用了点图案的信息输入输出方法
CN1123923A (zh) 一种字体处理装置和字体处理方法
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1969314A (zh) 图像处理设备和方法、存储介质及其程序
CN1940965A (zh) 信息处理设备及其控制方法
CN1846232A (zh) 使用加权信息的对象姿态估计和匹配系统
CN1551017A (zh) 图像检索装置、方法、程序及存储有该程序的存储介质
CN1147116A (zh) 模式识别方法和系统以及模式数据处理系统
CN1115524A (zh) 数据压缩方法、数据复原方法及信息处理装置
CN1160667C (zh) 轮廓平滑化处理方法及其装置
CN1846229A (zh) 图像处理设备、图像处理程序和计算机可读记录介质
CN1093953C (zh) 字符图形发生装置
CN1325058A (zh) 图像显示设备、图像显示方法和记录媒体
CN1102278C (zh) 字符图形产生装置和方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee