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

文字パターン生成装置

Info

Publication number
JP3437037B2
JP3437037B2 JP22247396A JP22247396A JP3437037B2 JP 3437037 B2 JP3437037 B2 JP 3437037B2 JP 22247396 A JP22247396 A JP 22247396A JP 22247396 A JP22247396 A JP 22247396A JP 3437037 B2 JP3437037 B2 JP 3437037B2
Authority
JP
Japan
Prior art keywords
skeleton
contour
shape information
character
information
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
JP22247396A
Other languages
English (en)
Other versions
JPH1063249A (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 JP22247396A priority Critical patent/JP3437037B2/ja
Priority to TW086109754A priority patent/TW434506B/zh
Priority to US08/907,051 priority patent/US6130667A/en
Priority to CN97117832A priority patent/CN1093953C/zh
Priority to KR1019970040095A priority patent/KR100295261B1/ko
Publication of JPH1063249A publication Critical patent/JPH1063249A/ja
Application granted granted Critical
Publication of JP3437037B2 publication Critical patent/JP3437037B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • 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
    • 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/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se
    • 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/0048Converting skeleton to bitmap
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/246Generation of individual character patterns of ideographic or arabic-like characters
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Processing Or Creating Images (AREA)

Description

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

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 文字の骨格形状を表した字体骨格形状情
    報と、文字を構成する構成要素の骨格形状を書体ごとに
    まとめた要素骨格形状情報と、文字を構成する構成要素
    の輪郭形状を書体ごとにまとめた要素輪郭形状情報とを
    あらかじめ記憶した記憶部と、書体コードを指定する指定部と、 指定された書体コードから 標準の太さの文字に対して文
    字の太さを変更するのか否かを判定する太さ判定部と、 文字の太さを変更する場合、要素輪郭形状情報の太さ変
    更処理を計算で行うのか代替要素による要素置き換えで
    行うかの判定を1つの構成要素毎に行う太さ変更処理判
    定部と、 太さ変更処理判定部の判定に応じて要素輪郭形状情報の
    太さを変更する要素輪郭太さ変更部と、 字体骨格形状情報に合わせて要素骨格形状情報を変形す
    るとともに、それに付随して、変形された要素骨格形状
    情報に対応させて要素輪郭形状情報を変更する要素骨格
    形状・要素輪郭形状変更部と、 変更された輪郭形状情報を用いて文字パターンを生成す
    る生成部を備えてなる文字パターン生成装置。
  2. 【請求項2】 記憶部が、字体骨格形状情報と要素骨格
    形状情報と要素輪郭形状情報とをあらかじめ記憶するに
    際し、字体骨格形状情報の中に、構成要素に対応する要
    素輪郭形状情報を指示する要素貼付け情報と、構成要素
    の太さ変更処理の判定に必要な太さ変更処理判定情報と
    を記憶することを特徴とする請求項1記載の文字パター
    ン生成装置。
  3. 【請求項3】 記憶部が、字体骨格形状情報と要素骨格
    形状情報と要素輪郭形状情報とをあらかじめ記憶するに
    際し、一書体分の要素輪郭形状情報の中に、要素輪郭太
    さ変更処理に必要な太さ変更属性情報を記憶することを
    特徴とする請求項1記載の文字パターン生成装置。
  4. 【請求項4】 記憶部が、字体骨格形状情報と要素骨格
    形状情報と要素輪郭形状情報とをあらかじめ記憶するに
    際し、一書体分の要素輪郭形状情報の中に、要素輪郭形
    状の変更に必要な要素輪郭形状変更情報を記憶すること
    を特徴とする請求項1記載の文字パターン生成装置。
  5. 【請求項5】 記憶部が、字体骨格形状情報と要素骨格
    形状情報と要素輪郭形状情報とをあらかじめ記憶するに
    際し、要素骨格形状情報の各骨格点を、Y座標が0とな
    るよう座標変換を行い、それに付随して、要素輪郭形状
    情報を変更した上で記憶することを特徴とする前記請求
    項1記載の文字パターン生成装置。
  6. 【請求項6】 要素輪郭太さ変更部が、要素輪郭形状の
    太さを変更するに際し、太さ変更属性情報に従い、要素
    輪郭形状情報内の各輪郭点を、X座標を固定してY座標
    のみを移動させるか、またはX座標とY座標共に固定す
    るかの判別を行うことを特徴とする請求項1記載の文字
    パターン生成装置。
JP22247396A 1996-08-23 1996-08-23 文字パターン生成装置 Expired - Fee Related JP3437037B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP22247396A JP3437037B2 (ja) 1996-08-23 1996-08-23 文字パターン生成装置
TW086109754A TW434506B (en) 1996-08-23 1997-07-10 Character pattern generating apparatus
US08/907,051 US6130667A (en) 1996-08-23 1997-08-06 Character pattern generating apparatus
CN97117832A CN1093953C (zh) 1996-08-23 1997-08-22 字符图形发生装置
KR1019970040095A KR100295261B1 (ko) 1996-08-23 1997-08-22 문자패턴생성장치

Applications Claiming Priority (1)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH1063249A JPH1063249A (ja) 1998-03-06
JP3437037B2 true JP3437037B2 (ja) 2003-08-18

Family

ID=16782973

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US6130667A (ja)
JP (1) JP3437037B2 (ja)
KR (1) KR100295261B1 (ja)
CN (1) CN1093953C (ja)
TW (1) TW434506B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6329936B1 (en) * 1998-10-30 2001-12-11 Agilent Technologies Inc. Statistical adjustment of A/D non-linearities to correct intensity ARI
EP1026659A3 (en) 1999-02-01 2002-01-30 Sharp Kabushiki Kaisha Character display apparatus, character display method, and recording medium
US6930686B1 (en) * 1999-06-17 2005-08-16 International Business Machines Corporation Method and apparatus for drawing thick graphic primitives
JP3578689B2 (ja) 1999-12-24 2004-10-20 シャープ株式会社 文字表示装置、文字表示方法および記録媒体
JP3413383B2 (ja) * 2000-02-17 2003-06-03 株式会社ナムコ ゲームシステム及び情報記憶媒体
JP2004117714A (ja) * 2002-09-25 2004-04-15 Riso Kagaku Corp フォント生成装置及びフォント生成プログラム
US8121338B2 (en) * 2004-07-07 2012-02-21 Directsmile Gmbh Process for generating images with realistic text insertion
US9305235B1 (en) * 2007-12-21 2016-04-05 Cognex Corporation System and method for identifying and locating instances of a shape under large variations in linear degrees of freedom and/or stroke widths
JP5492911B2 (ja) * 2010-01-28 2014-05-14 モリサワ文研株式会社 文字作成方法、および文字作成装置
US20140354652A1 (en) 2012-04-27 2014-12-04 Mitsubishi Electric Corporation Character drawing device and character drawing method
CN105513006B (zh) * 2014-10-16 2018-10-19 北京汉仪科印信息技术有限公司 一种TrueType字体轮廓粗细调整方法及装置
KR101777521B1 (ko) * 2016-08-11 2017-09-11 숭실대학교산학협력단 스타일 변경이 가능한 폰트 생성 방법 및 장치
CN108305209B (zh) * 2017-01-12 2021-06-04 富士通株式会社 字符变形方法和字符变形设备
CN110570494A (zh) * 2018-06-05 2019-12-13 艾司科软件有限公司 用于各向异性地修改文本属性以符合分辨率极限的方法和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6165290A (ja) * 1984-09-07 1986-04-03 株式会社日立製作所 ベクトル文字フオントの作成装置
US5398311A (en) * 1987-02-25 1995-03-14 Canon Kabushiki Kaisha Character processing apparatus and method for processing character data as an array of coordinate points of contour lines
US4897638A (en) * 1987-02-27 1990-01-30 Hitachi, Ltd. Method for generating character patterns with controlled size and thickness
JPS63271290A (ja) * 1987-04-30 1988-11-09 株式会社日立製作所 文字パタ−ン生成方式
JP3145509B2 (ja) * 1992-11-09 2001-03-12 富士通株式会社 文字生成方法及びその装置
JP3238580B2 (ja) * 1994-09-14 2001-12-17 シャープ株式会社 太め細め文字生成装置
JP3113175B2 (ja) * 1995-06-29 2000-11-27 シャープ株式会社 文字・記号パターン発生装置
JP3207336B2 (ja) * 1995-07-31 2001-09-10 シャープ株式会社 文字パターン生成装置
JP3330277B2 (ja) * 1996-03-25 2002-09-30 シャープ株式会社 文字パターン生成装置

Also Published As

Publication number Publication date
KR100295261B1 (ko) 2001-08-07
CN1093953C (zh) 2002-11-06
JPH1063249A (ja) 1998-03-06
CN1175749A (zh) 1998-03-11
TW434506B (en) 2001-05-16
US6130667A (en) 2000-10-10
KR19980018890A (ko) 1998-06-05

Similar Documents

Publication Publication Date Title
JP3437037B2 (ja) 文字パターン生成装置
JP3474037B2 (ja) 文字パターン生成装置
JP3330277B2 (ja) 文字パターン生成装置
JP3344188B2 (ja) 文字生成装置
JP3207336B2 (ja) 文字パターン生成装置
JP3792171B2 (ja) 文字パターン生成装置
JP3344538B2 (ja) 文字生成装置
JP3055187B2 (ja) 輪郭線データ処理装置
JP3283762B2 (ja) 文字パターン生成装置
JP3315861B2 (ja) 文字生成装置
JP3196236B2 (ja) アウトラインデータ処理装置
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
JP3039015B2 (ja) 文字処理装置
JP3082236B2 (ja) キャラクタ描画装置
JP2908194B2 (ja) 文字の変形制御方式
JP3008555B2 (ja) ベクトルフォント出力装置
JPH09185722A (ja) 曲線近似分割点設定方法および装置
JPH08305887A (ja) パラメトリック編集機能付cadシステム
JPH01262149A (ja) ドツト文字フオント生成機能をもつ文書出力装置
JP3082173B2 (ja) 輪郭線データの処理装置
JP2002351451A (ja) アウトラインフォント情報に基づく文字処理方法及びその方法をコンピュータシステムに実行させるためのコンピュータソフトウエアプログラム製品
JPH04104296A (ja) 文字・図形描画装置
JP4080470B2 (ja) 文字パターン生成装置
JP3055306B2 (ja) データ出力装置
JPH08101675A (ja) フォント展開装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees