JP3792171B2 - 文字パターン生成装置 - Google Patents

文字パターン生成装置 Download PDF

Info

Publication number
JP3792171B2
JP3792171B2 JP2002103159A JP2002103159A JP3792171B2 JP 3792171 B2 JP3792171 B2 JP 3792171B2 JP 2002103159 A JP2002103159 A JP 2002103159A JP 2002103159 A JP2002103159 A JP 2002103159A JP 3792171 B2 JP3792171 B2 JP 3792171B2
Authority
JP
Japan
Prior art keywords
skeleton
contour
shape
information
point
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.)
Expired - Fee Related
Application number
JP2002103159A
Other languages
English (en)
Other versions
JP2003029735A (ja
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.)
Sharp Corp
Original Assignee
Sharp Corp
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
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2002103159A priority Critical patent/JP3792171B2/ja
Publication of JP2003029735A publication Critical patent/JP2003029735A/ja
Application granted granted Critical
Publication of JP3792171B2 publication Critical patent/JP3792171B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、文字をアウトラインフォントで持ち、ストローク厚の異なる多種の文字パターンを生成する文字パターン生成装置に関する。
【0002】
【従来の技術】
上記のような文字パターン生成装置には、太めの文字パターンや細めの文字パターンを生成する文字パターン生成装置があるが、このような文字パターン生成装置としては、特開平4−24689号公報に示されているように、文字の輪郭を構成する点列を、各点における輪郭の傾きに対して垂直方向に、予め定めた一定の移動量だけ、輪郭の外側または内側に移動するという方法がある。
【0003】
また、特開平4−136898号公報に示されているように、文字の輪郭を直線/曲線近似したデータに、その各近似直線/曲線の実情に応じた属性を付加し、付加された属性を利用して、ストロークの線幅の変更や輪郭形状を部分的に変える変形を行うという方法がある。
【0004】
【発明が解決しようとする課題】
しかしながら、上記した特開平4−24689号公報や特開平4−136898号公報に記載の方法では、各輪郭点を移動させる際に、角度計算を含む複雑な処理が必要であり、計算量が多い。さらに、移動量が一定のため、本来デザインされた文字に存在するストロークの太い部分や細い部分が単調になってしまい、品位が低下してしまう。また、輪郭点全てに対し、移動方向、移動量等の変形/補正情報を付加しておく必要があるため、データ付加に関する工数、およびフォントデータ量が大きくなる。
【0005】
また、従来の文字パターン生成装置としては、特公平8−12544号公報に記載されているような、文字図形の骨格を示す線図形で記述された字体情報と、文字図形の書体を構成する基本要素の輪郭形状を複数のパラメータとして記憶し、字体情報に基づいて構成要素の形状を文字種ごとに変形し、組み合わせることにより文字図形を生成する方法が知られている。
【0006】
しかしながら、構成要素の形状情報を、輪郭を形成する複数の要素パラメータとして保存する方法では、これらを設計し登録するには要素パラメータと登録操作に関する専門的な知識を必要とし、専門的な技術知識のない人、例えば書体のデザイナーなどには、これらの構成要素の変更は困難であった。また、この方法では、書体としての文字の品位を保つために、屈曲部、うろこ等の形状に対して、多くの修正を必要としていた。
【0007】
本発明は、かかる課題を解決するためになされたものであって、太めの文字パターンや細めの文字パターンを生成するために必要な、データ作成工数および、データ容量を少なくし、かつ少ない計算量により高品位なフォントを作成する文字パターン生成装置を提供するものである。
【0008】
また、本発明は、デザイン的制約のない高品位フォントを、少ない工数により多種類生成する文字パターン生成装置を提供するものである。
【0009】
【課題を解決するための手段】
本発明に係る文字パターン生成装置は、文字の骨格形状を骨格点とそれらを直線で結んだ骨格線として表した字体骨格形状情報と、文字を構成する構成要素の骨格形状を骨格点とそれらを直線で結んだ骨格線として書体ごとにまとめた要素骨格形状情報と、文字を構成する構成要素の輪郭形状の情報、構成要素における輪郭形状の輪郭点と骨格形状の骨格点の対応を示す情報、及び要素骨格形状が変更された場合にそれに合わせて要素輪郭形状を変更する際の輪郭点の移動条件を示す変形方式の情報を書体ごとにまとめた要素輪郭形状情報とをあらかじめ記憶した記憶部と、前記字体骨格形状情報に合わせて前記要素骨格形状情報を変更する要素骨格形状変更部と、構成要素の輪郭形状を変更する際の輪郭点の移動条件を前記変形方式の情報に基づいて判定する変更方式判定部と、前記変更方式判定部により判定された輪郭点の移動条件に従い、要素骨格形状の変更に合わせて要素輪郭形状情報の各輪郭点を移動させる要素輪郭形状変更部と、変更された輪郭形状情報を用いて文字パターンを生成する生成部と、を備えてなることを特徴とする。
【0010】
本発明において、要素骨格形状変更部、変更方式判定部、要素輪郭形状変更部及び生成部としては、ROM,RAM,I/Oポートを含むマイクロプロセッサを用いるのが便利であり、記憶部としては、通常、その中のROMが用いられる。
【0011】
本発明によれば、字体骨格形状情報に合わせて要素骨格形状情報を変更した後、変更方式判定部により輪郭点の移動条件を判別し、その判定された移動条件に従って要素輪郭形状情報の各輪郭点を移動させるようにしたので、構成要素の輪郭形状に応じた最適な移動方法で要素輪郭形状情報の各輪郭点を移動させることができ、これにより高品位な文字パターンを生成することができる。
【0012】
上記構成においては、要素輪郭形状変更部を、要素輪郭形状情報内の輪郭点を移動させる際、移動対象となっている輪郭点とそれに対応する骨格線との距離を固定とし、移動対象となっている輪郭点から骨格線に向けておろした垂線とその骨格線との交点と骨格点との距離を要素骨格の変更に合わせて拡大縮小し、それに付随して輪郭点を移動させるように構成することが好ましい。
【0013】
また、要素輪郭形状変更部を、要素輪郭形状情報内の輪郭点を移動させる際、移動対象となっている輪郭点とそれに対応する骨格線との距離を固定とするとともに、移動対象となっている輪郭点から骨格線に向けておろした垂線とその骨格線との交点と骨格点との距離を固定として輪郭点を移動させるように構成することが好ましい。
【0014】
さらに、要素輪郭形状変更部を、要素輪郭形状情報内の輪郭点を移動させる際、輪郭点と骨格点との距離と角度を固定として輪郭点を移動させるように構成することが好ましい。
【0015】
【発明の実施の形態】
以下、図面を参照して本発明の実施例1及び実施例2を説明する。なお、これによってこの発明が限定されるものではない。本発明の文字パターン生成装置は、通常、日本語ワードプロセッサやパーソナルコンピュータに組み込んで用いられる。
【0016】
〔実施例1〕
図2は本発明による文字パターン生成装置の実施例1の概略構成を示すブロック図である。この図において、文字パターン生成装置は、キーボード10、補助メモリ11、CPU12、主メモリ13、ビットマップメモリ14、及び、レーザープリンタ、熱転写プリンタ等からなる出力装置15を備えている。
【0017】
キーボード10からは、生成する文字を示す文字コードと、書体コードが入力される。補助メモリ11には、文字の形状を表す字体骨格形状情報と、文字を構成する構成要素の骨格形状を表す要素骨格形状情報と、文字を構成する構成要素の輪郭形状を表す要素輪郭形状情報が予め記憶されている。
【0018】
CPU12は、指定された書体コードから太さ変更を行うか否かを判定する機能を有する太さ判定部と、1つの構成要素毎に太さ変更処理を行うのかまたは要素置き換え処理を行うのかを判定する機能を有する太さ変更処理判定部と、輪郭形状の太さを変更する機能を有する要素輪郭太さ変更部と、文字の骨格形状に合わせて要素骨格形状と要素輪郭形状を変更する機能を有する要素骨格形状・要素輪郭形状変更部と、文字パターンを生成する機能を有する生成部とを備えている。
【0019】
また、CPU12は、プログラム用のメモリとワーク用のメモリを有しており、補助メモリ11と主メモリ13との各データにより文字パターンを生成するための制御を行う。この文字パターンは、ビットマップメモリ14上でビットマップデータに展開され、レーザープリンタ、熱転写プリンタ等の出力装置15により印刷されて出力される。
【0020】
主メモリ13は、補助メモリ11から読み出された文字情報を一時格納するための入力用バッファと、形状の変更された要素輪郭形状データを一時格納するための出力用バッファと、太さの変更された要素輪郭形状データを記憶する記憶部を有している。
【0021】
ここで、文字の輪郭形状を記憶する方法としては、(1)文字の輪郭線を直線近似で記憶する方法、(2)文字の輪郭線を直線と円弧で記憶する方法、(3)文字の輪郭線を直線と曲線で記憶する方法等をあげることができるが、文字品位、データ容量の効率等を考慮した場合、上記(3)の方法が最も文字パターンの生成に適している。この点を考慮して、本実施例では、上記(3)の方法で文字の輪郭線を記憶しており、このように直線と曲線で記憶した文字の輪郭線のデータが、要素輪郭形状情報における輪郭点座標データとして補助メモリ11に記憶されている。
【0022】
次に、補助メモリ11の記憶内容を説明する。図3は字体骨格形状情報の記憶内容の一例を示す説明図である。字体骨格形状情報としては、字種を区別する文字コード30と、一つの字体骨格形状情報から生成される書体種の数31と、文字の字体を構成する要素の数32とが記憶されている。また、書体コードと構成要素ごとに、要素貼付け情報と太さ変更処理判定情報が記憶されている。
【0023】
この要素貼付け情報は、文字の構成要素数と生成書体数を掛けた数だけ記憶されており、構成要素に対応する要素輪郭形状を指示する要素コード35と、構成要素を形成する骨格点数36と、骨格点座標データへのポインタ37とからなっている。
【0024】
要素貼付け情報群のあとには、太さ変更処理判定情報が続いて記憶されている。この太さ変更処理判定情報は、文字の構成要素数と生成書体数を掛けた数だけ記憶されており、文字を太めにする際に構成要素の要素置き換え処理を行うのか否かを示す太め用の要素置き換え判定コード60と、文字を細めにする際に構成要素の要素置き換え処理を行うのか否かを示す細め用の要素置き換え判定コード61と、要素置き換え処理を行う場合の要素コードの変更に用いる太め用の代替要素コード62と、同じく要素置き換え処理を行う場合の要素コードの変更に用いる細め用の代替要素コード63とからなっている。
【0025】
太さ変更処理判定情報群のあとには、骨格点座標データが続いて記憶されている。この骨格点座標データは、一文字分の骨格点数38のあとに、各構成要素の骨格点座標データ39が記憶された形となっている。図4にキーボード10から入力された一文字分の字体骨格形状情報の幾何情報の例を示す。この例では、文字コード(ここでは、JIS区点コードに準ずる)として、1643番「伊」を指定している。
【0026】
図5は要素骨格形状情報の記憶内容の一例を示す説明図である。要素骨格形状情報としては、書体種を区別する書体コード40と、その書体に用意された要素の数41とが記憶され、その後に、例えば要素数をM個とすれば、1〜Mまでの各要素骨格情報が記憶されている。
【0027】
すなわち、要素骨格情報は、要素の数だけあり、要素コード42と、骨格を形成する骨格点数43と、骨格点座標データへのポインタ44とからなっている。要素骨格情報群のあとには、総骨格点数45と、各要素の骨格点座標データ46が記憶されている。
【0028】
ここで、各要素の骨格点は、その要素本来の形状が持つ各骨格点のX座標と、Y座標の値を、すべてY座標が0となるよう座標変換した上で記憶されている。要素本来の形状を示す骨格点と、座標変換後の骨格点の対応を図6を用いて説明する。この図において、点K0,K1,K2,K3,K4は、要素骨格形状情報内の一構成要素が持つ本来の骨格点を示すものであり、前述の図4(「伊」の字体骨格形状情報)において、「人偏」を構成する「はらい部」に対応する要素の骨格点である。
【0029】
骨格点K0,K1,K2,K3,K4を結ぶ線分を、それぞれK0−K1,K1−K2,K2−K3,K3−K4とし、それぞれの長さを、L0,L1,L2,L3とする。
【0030】
まず、骨格点K0が座標値(0,0)となるように移動させ、これをK0′とする。次に、K0′からX軸方向に距離L0だけ進んだ位置にK1′を置く。同様に、K1′からX軸方向に距離L1だけ進んだ位置にK2′を置き、K2′からX軸方向に距離L2だけ進んだ位置にK3′を置き、K3′からX軸方向に距離L3だけ進んだ位置にK4′を置く。このように座標変換を行った骨格点K0′,K2′,K3′,K4′を骨格点座標データとして、要素骨格形状情報内に記憶させる。
【0031】
図7は要素輪郭形状情報の記憶内容の一例を示す説明図である。要素輪郭形状情報としては、書体種を区別する書体コード50と、その書体に用意された要素の数51とが記憶され、その後に、例えば要素数をM個とすれば、1〜Mまでの各要素輪郭情報が記憶されている。
【0032】
すなわち、要素輪郭情報は、要素の数だけあり、要素コード52と、輪郭を形成する輪郭点数53と、輪郭点座標データへのポインタ54とからなっている。要素輪郭情報群のあとには、総輪郭点数55と、各要素の輪郭点座標データ56が記憶されている。
【0033】
要素の輪郭点座標データ56の中には、要素輪郭形状変更情報70と、太さ変更属性情報71が含まれている。要素輪郭形状変更情報70は、要素コードが等しい要素における、要素輪郭形状の輪郭点と、要素骨格形状の骨格点との対応を示すものであり、各輪郭点が所属する骨格点の番号として記憶されている。太さ変更属性情報71は、太さ変更処理の際、輪郭点の移動方式を示す移動方式判定コードとして記憶されている。
【0034】
1つの構成要素における要素輪郭形状変更情報、すなわち要素輪郭形状の輪郭点と要素骨格形状の骨格点との対応を図8を用いて説明する。この図において、点K0,K1,K2,K3,K4は、要素骨格形状情報内の一構成要素が持つ本来の骨格点を示すものであり、前述の図4(「伊」の字体骨格形状情報)において、「人偏」を構成する「はらい部」に対応する要素の骨格点である。また、点P0,P1,P2,P3,P4,P5,P6,P7,P8,P9は、要素輪郭形状情報内の一構成要素が持つ輪郭点を示すものであり、前述の図4(「伊」の字体骨格形状情報)において、「人偏」を構成する「はらい部」に対応する要素の輪郭点である。
【0035】
骨格点K0,K1,K2,K3,K4を結ぶ線分を、それぞれK0−K1,K1−K2,K2−K3,K3−K4とする。各輪郭点P0,P1,P2,P3,P4,P5,P6,P7,P8,P9から見て、最短距離で到達できる線分を求め、その線分の始点となる骨格点の番号を、輪郭点が所属する骨格点番号とする。このようにして求めた各骨格点番号を、要素輪郭形状変更情報として要素輪郭形状情報内に記憶させる。要素骨格形状の変形に付随して要素輪郭形状を変更する処理においては、1個の骨格点の座標値が変化した場合、その前後の骨格点により定義される2本の線分を求め、それぞれの始点となっている2個の骨格点の番号を求める。そして、2個の骨格点の番号と同じものを要素輪郭形状変更情報として持っている輪郭点すべてを、移動の対象とする。
【0036】
要素輪郭形状情報内の各要素は、それぞれに対応する要素骨格形状が、本来の形状が持つ骨格点のX座標と、Y座標の値を、すべてY座標が0となるよう座標変換されているのに付随して、輪郭点を移動させることにより形状を予め変更している。すなわち、前述の図8にて説明した、要素骨格形状情報における線分K0−K1,K1−K2,K2−K3,K3−K4の移動に合わせて、要素輪郭形状情報における輪郭点P0−P9を移動させている。
【0037】
輪郭点の移動を図9を用いて説明する。ここでは、説明を容易にするために線分K3−K4のみが移動している場合を示す。線分K3−K4が線分K3′−K4′に移動した場合、輪郭形状変更情報により、輪郭点P5,P6,P7が移動の対象となる(輪郭点P5,P6,P7の所属する骨格点の番号が(K3)であるため)。輪郭点P5,P7の移動時の条件は次のとおりである。
【0038】
(1)輪郭点P5とP7から線分K3−K4に降ろした垂線と、線分K3−K4との交点をCP1、CP2とし、点K3−CP1間の線分の長さをL1、点CP1−CP2間の長さをL2、点CP2−K4間の長さをL3とする。
【0039】
そして、長さL1対L2対L3の比率と等しくなるように、線分K3′−K4′上に点CP1′、CP2′を生成する(骨格点K3′は骨格点K3と同じ位置である)。ここで、線分K3′−CP1′の長さをL1′、線分CP1′−CP2′の長さをL2′、線分CP2′−K4′の長さをL3′としておく。
【0040】
(2)線分K3−K4から点P5、P7までの距離をD5、D7とし、(1)で求めた点CP1′、CP2′から線分K3′−K4′に対し垂直方向に距離D5、D7だけ離れたところに点P5とP7の移動後の点P5′、P7′を置く。
【0041】
すなわち、図9において、点P5、P7の移動条件とは、
(a)長さの比L1:L2:L3=L1′:L2′:L3′
(b)距離D5=D5′かつD7=D7′
である。
【0042】
輪郭点P6についても移動条件は同一であるが、図9においては、骨格点K4と同一の座標値を持っているため、輪郭点P6の移動後の輪郭点P6′もまた、骨格点K4の移動後の骨格点K4′と同じ位置に移る。
【0043】
上記(a)と(b)の条件を満たす輪郭点移動により、要素骨格形状の座標変換に即した、要素輪郭形状の変更が行える。このようにして変更を加えた輪郭点を輪郭点座標データとして、要素輪郭形状情報内に記憶させる。要素輪郭形状情報の一構成要素の本来の輪郭形状の例を図10(a)に、変更後の輪郭形状の例を図10(b)に、それぞれ示す。
【0044】
以上の如く構成された文字パターン生成装置の動作を、図11および図12に示すフローチャートに従い説明する。
【0045】
まず、キーボード10から生成すべき書体の文字コードと書体コードが入力される(ステップS1)。CPU12は、文字コードに従い、補助メモリ11から生成処理に用いられる一文字分の字体骨格形状情報と、書体コードに対応する要素骨格形状情報と要素輪郭形状情報を主メモリ13の入力バッファに読み込む(ステップS2)。
【0046】
次いで、CPU12は、太さ判定部において、ステップS1にて入力された書体コードから、生成すべき書体が、太さ変更を行うべき書体であるのか否かを判別する(ステップS3)。太さ変更を必要としない書体の場合、ステップS4へ進み、太さ変更を必要とする書体の場合、ステップS6へ進む。
【0047】
ステップS4では、ステップS2にて読み込んだ字体骨格形状情報の中か ら、一構成要素分の要素貼付け情報と、骨格点座標データを、入力バッファからCPU12内のワーク用メモリに取り込む。
【0048】
ステップS5において、CPU12は、入力バッファに読み込んだ要素骨格形状情報と要素輪郭形状情報から、要素コード35に対応する要素の骨格点座標データ39と、輪郭点座標データ56をCPU12内のワーク用メモリに取り込む。
【0049】
次にステップS15に進む。ここでCPU12は、要素骨格形状・要素輪郭形状変更部において、ステップS4にてCPU12内のワーク用メモリに取り込んだ字体骨格形状情報の中の構成要素の骨格点座標データに基づき、要素骨格形状情報の各骨格点の座標値を、拡大縮小回転等の手段を用いて、骨格点座標データの値に一致させる。
【0050】
そして、前述の図8にて説明した、要素骨格形状情報における線分K0−K1,K1−K2,K2−K3,K3−K4の移動条件に合わせて、要素輪郭形状情報における輪郭点P0〜P9を移動させる。輪郭点の移動条件については、図9において記述した内容と全く同一である。
【0051】
一構成要素の輪郭点全てについての移動処理が済んだ後、ステップS16で移動後の輪郭点P0′〜P9′を主メモリ13の出力バッファに出力する。
【0052】
上記ステップS3にて、生成すべき書体が、太さ変更を必要とすると判定された場合には、以下のような処理を行う。ステップS6において、ステップS2にて読み込んだ字体骨格形状情報の中から、一構成要素分の要素貼付け情報と、太さ変更処理判定情報と、骨格点座標データをCPU12内のワーク用メモリに取り込む。
【0053】
次にステップS7に進み、CPU12は、太さ変更処理判定部において、太さ変更処理判定情報内の要素置き換え判定コードを判別し、要素置き換えを行うか否かを判定する。書体コードにより指定された書体が、太め文字パターンならば、要素置き換え判定コード(太め用)60を用い、細め文字パターンならば、要素置き換え判定コード(細め用)61を用いる。要素置き換えを行う場合にはステップS14に進み、要素置き換えを行わず太さ変更処理を行う場合にはステップS8に進む。
【0054】
ステップS8では、CPU12は、入力バッファに読み込んだ要素骨格形状情報と要素輪郭形状情報から、要素コード35に対応する要素の骨格点座標データ46と、輪郭点座標データ56をCPU12内のワーク用メモリに取り込む。次にCPU12は、要素輪郭太さ変更部において、輪郭点座標データの中から1個の輪郭点と、それに対応する太さ変更属性情報を取り出す(ステップS9)。
【0055】
ステップS10において、CPU12は、太さ変更属性情報を判別し、太さ変更処理の際、輪郭点の座標値をX座標は固定のままでY座標のみ変更するのか、またはX座標、Y座標共に固定のままかを判定する。X座標は固定でY座標のみ変更する場合ステップS11に進む。X座標、Y座標共に固定のままの場合、輪郭点の移動は行わず、ステップS12に進む。
【0056】
太さ変更処理における輪郭点の移動を、図13を用いて説明する。この図において、点K0,K1,K2は、要素骨格形状情報内の一構成要素が持つ座標変換後の骨格点を示すものであり、前述の図4(「伊」の字体骨格形状情報)において、「人偏」を構成する「はらい部」に対応する要素の骨格点である。また、点P0,P1,P2,P3,P4は要素輪郭形状情報内の一構成要素が持つ座標変換後の輪郭点を示すものであり、前述の図4(「伊」の字体骨格形状情報)において、「人偏」を構成する「はらい部」に対応する要素の輪郭点である。ただし、図13では、説明を容易にするため、図8および図9と比べ、説明に直接関係のない骨格点と輪郭点を省略している。点P0とP3は輪郭形状にとって始点と終点であり、本実施例においては、X座標、Y座標共に固定とする。点P1,P2,P4の移動方式判定コードは、X座標は固定のままでY座標のみ変更することを示しているものとする。
【0057】
骨格点K0とK1を結ぶ線分をK0−K1とし、K1とK2を結ぶ線分をK1−K2とする。要素骨格形状情報の各骨格点は、すべてY座標が0となるよう座標変換しているので、これらの線分はX軸上に並んでいる。輪郭点P1,P2,P4から見て最も近い線分までの距離を、それぞれD1,D2,D4とする。要素輪郭形状情報の各輪郭点は、要素骨格形状情報の座標変換に合わせて変更されているので、距離D1,D2,D4の値は、すなわち各輪郭点のY座標値の絶対値に等しい。
【0058】
距離D1の値に対し、CPU12のプログラム用メモリ内にあらかじめ定義された太さ変更定数を掛けたものを距離D1′とする。そして、この距離D1′に正負の判定を加えた後に、移動後の輪郭点P1′のY座標とする(ステップS11)。
【0059】
次にCPU12は、輪郭点P1′を主メモリ13の記憶部に記憶する(ステップS12)。ここで太さ定数は、生成すべき書体毎に一つ決められた定数であり、太め文字パターンの場合は1より大きく、細め文字パターンの場合1未満となる。
【0060】
CPU12は、1個の輪郭点を移動させる毎に、一構成要素の輪郭点すべてについて太さ変更処理を施したかどうか判断する(ステップS13)。全輪郭点の処理が済んでいない場合はステップS9に戻り、次の輪郭点の処理に移る。
【0061】
図13では、点P1′と同様に点P2′とP4′が移動後の輪郭点となる。
【0062】
次に、ステップS15に進み、要素骨格形状・要素輪郭形状変更部において、CPU12内のワーク用メモリに取り込んだ字体骨格形状情報の中の構成要素の骨格点座標データに基づき、要素骨格形状情報の各骨格点の座標値を、拡大縮小回転等の手段を用いて、骨格点座標データの値に一致させる。そして、要素骨格形状の変形に付随して、主メモリ13の記憶部に記憶されている太さ変更後の輪郭点を移動させる。輪郭点の移動条件については、図9において記述した内容と全く同一である。
【0063】
一構成要素の太さ変更後の輪郭点全てについての移動処理が済んだ後、ステップS16で移動後の輪郭点を主メモリ13の出力バッファに出力する。
【0064】
上記ステップS7において、構成要素の要素置き換えを行うと判定された場合には、以下のような処理を行う。
【0065】
ステップS14において、CPU12は、字体骨格形状情報内の要素コード35に対応する代替要素コードを認識する。生成すべき書体が、太め文字パターンの場合、代替要素コード(太め用)62を認識し、細め文字パターンの場合、代替要素コード(細め用)63を認識する。そして、代替要素コードに対応する要素の骨格座標データ点46と、輪郭点座標データ56をCPU12内のワーク用メモリに取り込む。
【0066】
次に、ステップS15に進み、要素骨格形状・要素輪郭形状変更部において、CPU12内のワーク用メモリに取り込んだ字体骨格形状情報の中の構成要素の骨格点座標データに基づき、要素骨格形状情報の各骨格点の座標値を、拡大縮小回転等の手段を用いて、骨格点座標データの値に一致させる。そして、要素骨格形状の変形に付随して、要素輪郭形状情報における輪郭点を移動させる。輪郭点の移動条件については、図9において記述した内容と全く同一である。
【0067】
一構成要素の輪郭点全てについての移動処理が済んだ後、ステップS16で移動後の輪郭点を主メモリ13の出力バッファに出力する。
【0068】
図4で例示した字体骨格形状情報である「伊」の骨格形状に合わせた、要素輪郭形状情報の変更後の幾何情報を図14に示す。また、「伊」の骨格形状における要素の太さ変更および輪郭形状変更後の幾何情報を図15に示す。
【0069】
ステップS17にて、CPU12は、1文字分の全構成要素についての処理を行ったか否かの判断を行う。ここで、YESの場合、ステップS18に進み、主メモリ13の出力バッファ内のデータをビットマップメモリ14に転送して、この処理を終了する。NOの場合、ステップS3に戻り、書体コードの判別を行う。
【0070】
ビットマップメモリ14に転送された輪郭点データは、ビットマップデータに展開された後、レーザープリンタ、熱転写プリンタ等の出力装置15により印刷されて出力される。
【0071】
このようにして、文字の構成要素の太さ変更を行う場合には、計算によって構成要素の太さ変更を行うのか、構成要素を太いもの(あるいは細いもの)に置き換えるのかを判断し、それに応じて、計算あるいは代替により、字体骨格形状情報に合わせて要素骨格形状情報を変更するとともに要素輪郭形状を変更し、変更した輪郭形状を用いて文字パターンを生成する。
【0072】
これにより、すべての文字パターンをデザインする必要のある従来のフォント開発と比較した場合、構成要素の輪郭を表す要素輪郭形状をデザインするだけで文字パターンを生成できるので、より少ない工数で書体を開発することが可能となる。
【0073】
また、文字の輪郭を生成する手段が、各構成要素毎に骨格形状の変更と、構成要素に対応する輪郭形状を指示する要素コードを持つことを前提とする要素貼付けであるため、従来の、文字の骨格形状を表す骨格点の座標と、各骨格点における単一の線幅パラメータとして保存する方法と比較して、字形を設計する際に形状的な制約が発生することがなく、書体デザインの自由化を阻害しない。
【0074】
さらに、字体骨格形状情報の中に、太さ変更処理判定情報を持っているため、1つの構成要素に対して、太さ変更処理による形状変化か、または要素置き換えによる形状変化のどちらか最適な方式を選択させることが可能であり、非常に高品位な太め細め文字パターンを生成することができる。
【0075】
また、要素輪郭形状情報の中に太さ変更属性情報を持っているため、1つ1つの輪郭点に対して移動方式が選択可能であり、太さ変更処理の際、輪郭形状の微妙な調整をすることにより高品位な太め細め文字パターンを生成することができる。
【0076】
また、要素輪郭形状を変更する際に用いる輪郭形状変更情報を記憶し、輪郭形状を、歪みを発生させずに変形する手段を備えているため、要素輪郭形状の共通化を図ることができ、一書体の開発に必要な要素輪郭形状を削減することが可能となる。
【0077】
また、要素骨格形状と要素輪郭形状を、予めX軸方向に沿うよう座標変換した上で記憶しているため、要素骨格形状と要素輪郭形状の変更時および、太さ変更時に、角度計算等の高度な計算量を削減することができ、高速に文字パターンを生成することができる。
【0078】
そして、太さ変更処理の中では、Y座標の値を単純な乗算により調節することで、構成要素の太さを変更できるため、非常に高速に太め細め文字パターンを生成することができる。
【0079】
なお、この実施例においては、文字の太さ変更の判定については、指定された書体コードから文字の太さ変更を行うか否かを判定するようにしているが、文字の太さを任意に指定できるようにし、その指定に応じて文字の太さを変更するようにしてもよい。あるいは、太め文字、通常文字、細め文字等の3段階や、太め文字、やや太め文字、通常文字、やや細め文字、細め文字の5段階等にあかじめクラスを設定しておき、その中から使用者が任意のクラスを選択できるようにしてもよい。もちろん、その場合には、代替要素もそれなりのものを用意しておくようにする。
【0080】
また、どの構成要素であれば計算で太さを変更し、どの構成要素であれば代替要素による要素の置き換えを行うのかという判断については、例えば、文字の太さの変更を計算で行った場合に文字の品位が低下するような要素については、代替要素を用意してそれに置き換えるようにすれば、非常に高品位で均一な太め細め文字パターンを生成することができる。
【0081】
〔実施例2〕
図16は本発明による文字パターン生成装置の実施例2の概略構成を示すブロック図である。この図において、文字パターン生成装置は、キーボード等からなる入力装置10a、補助メモリ11a、CPU12a、主メモリ13a、ビットマップメモリ14a、及び、レーザープリンタ、熱転写プリンタ等からなる出力装置15aを備えている。
【0082】
入力装置10aは、生成する文字の文字コードと書体コードを入力するために用いられる。補助メモリ11aには、字体骨格形状情報と、要素骨格形状情報と、要素輪郭形状情報が記憶されている。
【0083】
CPU12aは、要素骨格形状を字体骨格形状に合わせて変更する機能を有する要素骨格形状変更部と、要素輪郭形状を変更する機能を有する要素輪郭形状変更部と、要素輪郭形状変更の際の変更方式を判定する機能を有する変更方式判定部と、文字パターンを生成する機能を有する生成部を備えている。
【0084】
また、CPU12aは、プログラム用のメモリとワーク用のメモリを有しており、補助メモリ11aと主メモリ13aとの各データにより文字パターンを生成するための制御を行う。この文字パターンは、ビットマップメモリ14a上でビットマップデータに展開され、レーザープリンタ、熱転写プリンタ等の出力装置15aにより印刷されて出力される。
【0085】
主メモリ13aは、補助メモリ11aから読み出された文字情報を一時格納するための入力用バッファと、形状の変更された要素輪郭形状データを一時格納するための出力用バッファと、形状の変更された要素骨格形状情報と輪郭形状変更情報をそれぞれ記憶する記憶部を有する。
【0086】
ここで、文字の輪郭形状を記憶する方法としては、(1)文字の輪郭線を直線近似で記憶する方法、(2)文字の輪郭線を直線と円弧で記憶する方法、(3)文字の輪郭線を直線と曲線で記憶する方法等をあげることができるが、文字品位、データ容量の効率等を考慮した場合、上記(3)の方法が最も文字パターンの生成に適している。従って、本実施例では上記(3)の方法によるデータが要素輪郭形状情報における輪郭点座標データとして補助メモリ11aに記憶されている。
【0087】
次に、補助メモリ11aの記憶内容を説明する。
【0088】
図17は字体骨格形状情報の記憶内容の一例を示す説明図である。字体骨格形状情報としては、字種を区別する文字コード30aと、一つの字体骨格形状情報から生成される書体種の数31aと、文字の字体を構成する要素の数32aとが記憶されている。また、文字コードと構成要素ごとに要素貼付け情報が記憶されている。
【0089】
この要素貼付け情報は、文字の構成要素数と生成書体数を掛けた数だけ記憶されており、構成要素に対応する要素輪郭形状を指示する要素コード35aと、構成要素を形成する骨格点数36aと、骨格点座標データへのポインタ37aからなっている。
【0090】
貼付け情報群のあとには骨格点座標データがつづいて記憶されている。この骨格点座標データは、一文字分の骨格点数38aのあとに、各構成要素の骨格点座標データ39aが記憶されている。図18に一文字分の字体骨格形状情報の幾何情報の例を示す。
【0091】
要素骨格形状情報については、ここでは説明を省略するが、実施例1で説明したものと同じ内容のものが記憶されている。
【0092】
図19は要素輪郭形状情報の記憶内容の一例を示す説明図である。要素輪郭形状情報としては、書体種を区別する書体コード50aと、その書体に用意された要素の数51aとが記憶され、その後に、例えば要素数をM個とすれば、1〜Mまでの各要素情報が記憶されている。
【0093】
すなわち、要素情報は、要素の数だけあり、要素コード52aと、輪郭を形成する輪郭点数53aと、輪郭点座標データへのポインタ54aからなっている。要素情報群のあとには、総輪郭点数55aと、各要素の輪郭点座標データ56aが記憶されている。
【0094】
各要素の輪郭点座標データ56aの中には、要素輪郭形状変更情報70aと、始点・終点判別コード72と、要素輪郭形状属性情報73が含まれている。要素輪郭形状変更情報70aは、要素コードが等しい要素における、要素輪郭形状の輪郭点と要素骨格形状の骨格点の対応を示すものであり、各輪郭点が所属する骨格点の番号として記憶されている。要素輪郭形状属性情報73は、要素の輪郭形状を変更する際の、輪郭点の移動条件を示す変形方式コードとして記憶されている。この変形方式コードには、通常属性、相対位置保存属性、絶対位置保存属性のものがある。各属性の具体的な変形方法については後述する。要素輪郭形状情報における一要素分の幾何情報の例を図20の(a)及び(b)に示す。
【0095】
以上の如く構成された文字パターン生成装置の動作を、図21に示すフローチャートに従い説明する。説明を具体化するために、ここでは、前述の図18で示した「旭」の字体骨格形状情報を適用して説明する。
【0096】
まず、入力装置10a(例えばキーボード)から生成すべき文字の文字コード(JISコードでは「旭」の文字コードは「1616」)と書体コード(例えば「01」)が入力される(ステップS1a)。CPU12aは、文字コードに従い、補助メモリ11aから生成処理に用いられる一文字分の字体骨格形状情報と、書体コードに対応する要素骨格形状情報と要素輪郭形状情報を主メモリ13aの入力バッファに読み込む(ステップS2a)。
【0097】
次いで、CPU12aは、ステップS2aにて読み込んだ字体骨格形状情報の中から、一構成要素分の要素貼付け情報と、構成要素の骨格点座標データを、入力バッファからCPU12a内のワーク用メモリに取り込む(ステップS3a)。
【0098】
ステップS4aにおいて、CPU12aは、入力バッファに読み込んだ要素骨格形状情報と要素輪郭形状情報から、要素コード35aに対応する要素の骨格点座標データ39aと、輪郭点座標データ56aをCPU12a内のワーク用メモリに取り込む。
【0099】
ステップS5aでは、CPU12aは、ワーク用メモリに取り込んだ字体骨格形状情報の中の構成要素の骨格点座標データに基づき、要素骨格形状情報の各骨格点の座標値を、拡大縮小回転等の手段を用いて、骨格点座標データの値に一致させる。
【0100】
一つの構成要素における要素輪郭形状変更情報、すなわち要素輪郭形状の輪郭点と、要素骨格形状の骨格点との対応を図22を用いて説明する。
【0101】
この図において、点K0,K1,K2,K3,K4は、要素骨格形状情報内の一構成要素が持つ骨格点を示すものであり、前述の図18(「旭」の字体骨格形状情報)において「丿(はらい)」の部分に対応する要素の骨格点である。次に、点P0,P1,P2,P3,P4,P5,P6,P7,P8,P9は要素輪郭形状情報内の一構成要素が持つ輪郭点を示すものであり、前述の図18(「旭」の字体骨格形状情報)において「丿(はらい)」の部分に対応する要素の輪郭点である。
【0102】
骨格点K0,K1,K2,K3,K4を結ぶ線分を、それぞれK0−K1,K1−K2,K2−K3,K3−K4とする。各輪郭点P0,P1,P2,P3,P4,P5,P6,P7,P8,P9から見て、最短距離で到達できる線分を求め、その線分の始点となる骨格点の番号を、輪郭点が所属する骨格点番号とする。
【0103】
このようにして求めた各骨格点番号を、要素輪郭形状変更情報として要素輪郭形状情報内に記憶させる。要素骨格形状の変形に付随して要素輪郭形状を変更する処理においては、1個の骨格点の座標値が変化した場合、その前後の骨格点により定義される2本の線分を求め、それぞれの始点となっている2個の骨格点の番号を求める。そして、2個の骨格点の番号と同じものを、要素輪郭形状変更情報として持っている輪郭点すべてを、移動の対象とする。
【0104】
ステップS6aにおいて、CPU12aは、輪郭点座標データの中から、ひとつの輪郭点とそれに対応する要素輪郭形状属性情報を取り出す。
【0105】
次に、ステップS7aにおいて、CPU12aは、要素輪郭形状属性情報を判別し、要素輪郭形状の変更における輪郭点の移動条件を設定する。この要素輪郭形状属性情報の判別においては、変形方式コードが、通常属性ならステップS8aへ、相対位置保存属性ならステップS9aへ、絶対位置保存属性ならステップS10aへ、それぞれ進み、各処理を行う。
【0106】
ステップS8aにおける輪郭点の移動を図23を用いて説明する。この図は、前述の図18(「旭」の字体骨格形状情報)において「丿(はらい)」の部分に対応する要素の骨格点と要素の輪郭点である。ここで、線分K3−K4が線分K3′−K4′に移動した場合、輪郭形状変更情報により、P5とP6とP7(輪郭点が属する骨格点の番号(K3))が移動の対象となる。P5とP7の移動時の条件は次のとおりである。
【0107】
(1)P5とP7から線分K3−K4に降ろした垂線と、線分K3−K4との交点をCP1、CP2とし、K3−CP1の長さをL1、CP1−CP2の長さをL2、CP2−K4の長さをL3とする。
【0108】
このとき、輪郭点P5とCP1とK3によって形成される角を角Aとする。同じく、輪郭点P7とCP2とK3によって形成される角を角Bとする。
【0109】
長さL1対L2対L3の比率と等しくなるように、線分K3′−K4′上に点CP1′、CP2′を生成する。(骨格点K3′は骨格点K3と同じ位置である)。なお、K3′−CP1′の長さをL1′、CP1′−CP2′の長さをL2′、CP2′−K4′の長さをL3′としておく。
【0110】
(2)線分K3−K4からP5、P7までの距離をD5、D7とし、(1)で求めた点CP1′、CP2′から線分K3′−K4′に対し垂直方向に距離D5、D7だけ離れたところにP5とP7の移動後の点P5′、P7′を置く。このとき、輪郭点P5′とCP1′とK3′によって形成される角を角A′とする。同じく、輪郭点P7′とCP2′とK3′によって形成される角を角B′とする。
【0111】
すなわち、図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)の条件を満たす輪郭点移動処理により、字体骨格形状情報に即した、要素輪郭形状の変更が行える。輪郭点P6においても移動条件は同一であるが、図23においては、骨格点K4と同一の座標値を持っているため、輪郭点P6の移動後の輪郭点P6′もまた、骨格点K4の移動後の骨格点K4′と同じ位置に移る。
【0112】
ステップS9aにおける輪郭点の移動を図24を用いて説明する。この図は、前述の図18(「旭」の字体骨格形状情報)において「乙偏」の屈曲部分に対応する要素の骨格点と要素の輪郭点である。ただし、図24では説明を容易にするため、図22及び図23と比べ、説明に直接関係のない骨格点と輪郭点を省略している。
【0113】
ここで、線分K1−K2が線分K1′−K2′に移動した場合、輪郭形状変更情報により、P1とP2(輪郭点が属する骨格点の番号(K1))が移動の対象となる。P1とP2の移動時の条件は次のとおりである。
【0114】
(1)P1とP2から線分K1−K2に降ろした垂線と、線分K1−K2との交点をCP1、CP2とし、K1−CP1の距離をdx1、P1−CP1の距離をdy1、CP2−K2の距離をdx2、P2−CP2の距離をdy2とする。
【0115】
このとき、輪郭点P1とCP1とK1によって形成される角を角Aとする。同じく、輪郭点P2とCP2とK2によって形成される角を角Bとする。
【0116】
(2)骨格点K1′、K2′から、dx1=dx1′となるようにCP1′を生成する。同じく、dx2=dx2′となるようにCP2′を生成する。CP1′、CP2′から線分K1′−K2′に対し垂直方向に距離dy1=dy1′、dy2=dy2′だけ離れたところにP1とP2の移動後の点P1′、P2′を置く。
【0117】
このとき、輪郭点P1′とCP1′とK1′によって形成される角を角A′とする。同じく、輪郭点P2′とCP2′とK2′によって形成される角を角B′とする。
【0118】
すなわち、図24において、P1、P2の移動条件とは、
(a)距離dx1=dx1′、dy1=dy1′
(b)距離dx2=dx2′、dy2=dy2′
(c)角A=角A′=90°、角B=角B′=90°
である。(a)と(b)と(c)の条件を満たす輪郭点移動処理により、字体骨格形状情報に即した、要素輪郭形状の変更が行える。
【0119】
ステップS10aにおける輪郭点の移動を図25を用いて説明する。この図は、前述の図18(「旭」の字体骨格形状情報)において「丿(はらい)」のうろこ部分に対応する要素の骨格点と要素の輪郭点である。ただし、図25では説明を容易にするため、図22及び図23と比べ、説明に直接関係の無い骨格点と輪郭点を省略している。
【0120】
ここで、線分K0−K1が線分K0′−K1′に移動した場合、輪郭形状変更情報により、P0とP1とP2(輪郭点が属する骨格点の番号(K0))が移動の対象となる。P0とP1とP2の移動時の条件は次のとおりである。
【0121】
(1)骨格点K0から輪郭点P1、P2のそれぞれの距離のX成分、Y成分をdx1、dy1、dx2、dy2とする。
【0122】
(2)骨格点K0′からdx1=dx1′となるようにCP1′を生成する。同じく、dx2=dx2′となるようにCP2′を生成する。
【0123】
すなわち、図25において、P1とP2の移動条件とは、
(a)距離dx1=dx1′、dy1=dy1′
(b)距離dx2=dx2′、dy2=dy2′
である。(a)と(b)の条件を満たす輪郭点移動処理により、字体骨格形状情報に即した、要素輪郭形状の変更が行える。輪郭点P0においても移動条件は同一であるが、図25においては、骨格点K0と同一の座標値を持っているため、輪郭点P0の移動後の輪郭点P0′もまた、骨格点K0の移動後の骨格点K0′と同じ位置に移る。
【0124】
そして、一構成要素の輪郭点全てについての移動処理が済めば(ステップS11a)、移動後の輪郭点を主メモリ13aの出力バッファに出力する(ステップS12a)。
【0125】
そして、ステップS13aにて、一文字中の全構成要素について、処理を行ったのか否かの判断を行う。Yesの場合、ステップS14aに進んで、主メモリ13aの出力バッファ内のデータをビットマップメモリ14aに転送して、この処理を終了する。Noの場合、ステップS3aに戻り、次の構成要素に関する要素貼付け情報と骨格点座標データを、入力バッファからCPU12a内のワーク用メモリに取り込む。
【0126】
ビットマップメモリ14aに転送された輪郭点データは、ビットマップデータに展開された後、レーザープリンタ、熱転写プリンタ等の出力装置15aにより印刷されて出力される。
【0127】
このようにして、変形方式コードが、通常属性であるのか、相対位置保存属性であるのか、絶対位置保存属性であるのかを判定し、それに応じて輪郭点を移動して、要素輪郭形状を変更し、変更した輪郭形状情報を用いて文字パターンを生成する。
【0128】
これにより、すべての文字パターンをデザインする必要のある従来のフォント開発と比較した場合、構成要素の輪郭を表す要素輪郭形状をデザインするだけで文字パターンを生成できるので、より少ない工数で書体を開発することが可能となる。さらに、要素輪郭形状を変更する手段を備えているため、要素輪郭形状の共通化を図ることができ、一書体の開発に必要な要素輪郭形状を削減させることが可能となる。
【0129】
また、要素輪郭部のストロークの厚みを変えずにストローク長を変更できるので、輪郭形状を変更した後の文字パターンにおいて、縦棒、横棒、はらい等を高品位に生成できる。
【0130】
また、骨格点に対する輪郭点の距離と角度を保存できるので、輪郭形状を変更した後の文字パターンにおいて、屈曲部等を高品位に生成できる。骨格線分に対する輪郭点の距離を保存できるので、輪郭形状を変更した後の文字パターンにおいて、うろこ等を高品位に生成できる。
【0131】
【発明の効果】
この発明によれば、字体骨格形状情報と要素骨格形状情報と要素輪郭形状情報とをあらかじめ記憶しておき、文字の太さを変更する場合には、太さの変更を計算で行うのか代替要素による要素置き換えで行うのかを判定し、それに応じて要素輪郭形状の太さを変更するようにした場合には、要素に応じた最適な方法で要素の形状を変更することができ、これにより、比較的少ない容量で、非常に高品位な太め細め文字パターンを生成することができる。
【0132】
また、字体骨格形状情報に合わせて要素骨格形状情報を変更した後、変更方式判定部により輪郭点の移動条件を判別し、その判定された移動条件に従って要素輪郭形状情報の各輪郭点を移動させるようにした場合には、構成要素の輪郭形状に応じた最適な移動方法で要素輪郭形状の各輪郭点を移動させることができるので、これにより高品位な文字パターンを生成することができる。
【図面の簡単な説明】
【図1】この発明の構成を示すブロック図である。
【図2】本発明による文字パターン生成装置の実施例1の概略構成を示すブロック図である。
【図3】実施例1における字体骨格形状情報の記憶内容の一例を示す説明図である。
【図4】実施例1における一文字分の字体骨格形状情報の幾何情報の一例を示す説明図である。
【図5】実施例1における要素骨格形状情報の記憶内容の一例を示す説明図である。
【図6】実施例1における要素骨格形状情報の座標変換による骨格点の移動を示す説明図である。
【図7】実施例1における要素輪郭形状情報の記憶内容の一例を示す説明図である。
【図8】実施例1における要素輪郭形状の輪郭点と要素骨格形状の骨格点との対応を示す説明図である。
【図9】実施例1における要素輪郭形状の変更時の輪郭点の移動を示す説明図である。
【図10】実施例1における要素輪郭形状情報における一要素の本来の輪郭形状の例と、座標変換後の輪郭形状の例とを示す説明図である。
【図11】実施例1の動作を示すフローチャートである。
【図12】実施例1の動作を示すフローチャートである。
【図13】実施例1における太さ変更処理時の輪郭点の移動を示す説明図である。
【図14】実施例1における要素輪郭形状情報の輪郭形状変更後の幾何情報の一例を示す説明図である。
【図15】実施例1における要素輪郭形状情報の太さ変更および輪郭形状変更後の幾何情報の一例を示す説明図である。
【図16】本発明による文字パターン生成装置の実施例2の概略構成を示すブロック図である。
【図17】実施例2における字体骨格形状情報の記憶内容の一例を示す説明図である。
【図18】実施例2における一文字分の字体骨格形状情報の幾何情報の一例を示す説明図である。
【図19】実施例2における要素輪郭形状情報の記憶内容の一例を示す説明図である。
【図20】実施例2における要素輪郭形状情報の一要素分の幾何情報の例を示す説明図である。
【図21】実施例2の動作を示すフローチャートである。
【図22】実施例2における要素輪郭形状の輪郭点と要素骨格形状の骨格点との対応を示す説明図である。
【図23】実施例2における通常属性の場合の輪郭点の移動を示す説明図である。
【図24】実施例2における相対位置保存属性の場合の輪郭点の移動を示す説明図である。
【図25】実施例2における絶対位置保存属性の場合の輪郭点の移動を示す説明図である。
【符号の説明】
10 キーボード
10a 入力装置
11,11a 補助メモリ
12,12a CPU
13,13a 主メモリ
14,14a ビットマップメモリ
15,15a 出力装置
30,30a 文字コード
31,31a 書体数
32,32a 構成要素数
35,35a 要素コード
36,36a 骨格点数
37,37a 骨格点座標データへのポインタ
38,38a 一文字分の骨格点数
39,39a 構成要素の骨格点座標データ
40 書体コード
41 要素数
42 要素コード
43 骨格点数
44 骨格点座標データへのポインタ
45 総骨格点数
46 要素の骨格点座標データ
50,50a 書体コード
51,51a 要素数
52,52a 要素コード
53,53a 輪郭点数
54,54a 輪郭点座標データへのポインタ
55,55a 総輪郭点数
56,56a 各要素の輪郭点座標データ
60 要素置き換え判定コード(太め用)
61 要素置き換え判定コード(細め用)
62 代替要素コード(太め用)
63 代替要素コード(細め用)
70,70a 要素輪郭形状変更情報
71 太さ変更属性情報
72 始点・終点判別コード
73 要素輪郭形状属性情報

Claims (4)

  1. 文字の骨格形状を骨格点とそれらを直線で結んだ骨格線として表した字体骨格形状情報と、文字を構成する構成要素の骨格形状を骨格点とそれらを直線で結んだ骨格線として書体ごとにまとめた要素骨格形状情報と、文字を構成する構成要素の輪郭形状の情報、構成要素における輪郭形状の輪郭点と骨格形状の骨格点の対応を示す情報、及び要素骨格形状が変更された場合にそれに合わせて要素輪郭形状を変更する際の輪郭点の移動条件を示す変形方式の情報を書体ごとにまとめた要素輪郭形状情報とをあらかじめ記憶した記憶部と、
    前記字体骨格形状情報に合わせて前記要素骨格形状情報を変更する要素骨格形状変更部と、
    構成要素の輪郭形状を変更する際の輪郭点の移動条件を前記変形方式の情報に基づいて判定する変更方式判定部と、
    前記変更方式判定部により判定された輪郭点の移動条件に従い、要素骨格形状の変更に合わせて要素輪郭形状情報の各輪郭点を移動させる要素輪郭形状変更部と、
    変更された輪郭形状情報を用いて文字パターンを生成する生成部と、を備えてなることを特徴とする文字パターン生成装置。
  2. 前記変形方式の情報が、所定の変形方式のうちの一つである場合、要素輪郭形状変更部は、要素骨格形状の変更に合わせて要素輪郭形状情報内の輪郭点を移動させる際の移動条件として
    移動対象となっている輪郭点から骨格線に向けて移動前と移動後に共に垂線をおろし
    そのおろした垂線と骨格線との交点どうしの距離及び交点から骨格点までの距離の比を移動前と移動後で等しくし
    移動対象となっている輪郭点とそれに対応する骨格線との距離を移動前と移動後で等しくするように輪郭点を移動させることを特徴とする請求項1記載の文字パターン生成装置。
  3. 前記変形方式の情報が、所定の変形方式のうちの別の一つである場合、要素輪郭形状変更部は、要素骨格形状の変更に合わせて要素輪郭形状情報内の輪郭点を移動させる際の移動条件として
    移動対象となっている輪郭点から骨格線に向けて移動前と移動後に共に垂線をおろし
    そのおろした垂線と骨格線との交点から骨格点までの距離を移動前と移動後で等しくし
    移動対象となっている輪郭点とそれに対応する骨格線との距離を移動前と移動後で等しくするように輪郭点を移動させることを特徴とする請求項1記載の文字パターン生成装置。
  4. 前記変形方式の情報が、所定の変形方式のうちのさらに別の一つである場合、要素輪郭形状変更部は、要素骨格形状の変更に合わせて要素輪郭形状情報内の輪郭点を移動させる際の移動条件として
    輪郭点と骨格点との距離のX軸成分及びY軸成分を移動前と移動後で等しくするように輪郭点を移動させることを特徴とする請求項1記載の文字パターン生成装置。
JP2002103159A 2002-04-05 2002-04-05 文字パターン生成装置 Expired - Fee Related JP3792171B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002103159A JP3792171B2 (ja) 2002-04-05 2002-04-05 文字パターン生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002103159A JP3792171B2 (ja) 2002-04-05 2002-04-05 文字パターン生成装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP22247396A Division JP3437037B2 (ja) 1996-08-23 1996-08-23 文字パターン生成装置

Publications (2)

Publication Number Publication Date
JP2003029735A JP2003029735A (ja) 2003-01-31
JP3792171B2 true JP3792171B2 (ja) 2006-07-05

Family

ID=19193717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002103159A Expired - Fee Related JP3792171B2 (ja) 2002-04-05 2002-04-05 文字パターン生成装置

Country Status (1)

Country Link
JP (1) JP3792171B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6031363B2 (ja) * 2013-01-23 2016-11-24 Kddi株式会社 端末装置及び表示プログラム

Also Published As

Publication number Publication date
JP2003029735A (ja) 2003-01-31

Similar Documents

Publication Publication Date Title
KR100216614B1 (ko) 문자 패턴 발생 장치
JP3437037B2 (ja) 文字パターン生成装置
JP3330277B2 (ja) 文字パターン生成装置
JP3792171B2 (ja) 文字パターン生成装置
JP3037854B2 (ja) 文字生成方法及びその装置
JP3207336B2 (ja) 文字パターン生成装置
JPH05232926A (ja) 文字記号発生装置
JP3196236B2 (ja) アウトラインデータ処理装置
JP3344538B2 (ja) 文字生成装置
JP3283762B2 (ja) 文字パターン生成装置
JP3315861B2 (ja) 文字生成装置
JP2697328B2 (ja) 輪郭線データ処理装置
JP3082236B2 (ja) キャラクタ描画装置
JPH08329266A (ja) 多角形図形整形装置
JP4080470B2 (ja) 文字パターン生成装置
JPH09185722A (ja) 曲線近似分割点設定方法および装置
JP3087511B2 (ja) データ変換装置
JPH04104296A (ja) 文字・図形描画装置
JP2801246B2 (ja) 文字処理装置及び方法
JP2861201B2 (ja) データ変換装置
JPH0511734A (ja) 文字パターン生成装置
JPS62175794A (ja) 文字発生装置
JPH02129692A (ja) 文字処理装置
JPH05173532A (ja) 輪郭線データ処理装置
JPH07104725A (ja) 文字の変形制御方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees