JPH04218094A - アウトラインフォント処理装置 - Google Patents

アウトラインフォント処理装置

Info

Publication number
JPH04218094A
JPH04218094A JP3074448A JP7444891A JPH04218094A JP H04218094 A JPH04218094 A JP H04218094A JP 3074448 A JP3074448 A JP 3074448A JP 7444891 A JP7444891 A JP 7444891A JP H04218094 A JPH04218094 A JP H04218094A
Authority
JP
Japan
Prior art keywords
normal vector
outline font
change
control points
control 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.)
Granted
Application number
JP3074448A
Other languages
English (en)
Other versions
JP2886702B2 (ja
Inventor
Hidetoshi Kuramoto
蔵本 秀俊
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP3074448A priority Critical patent/JP2886702B2/ja
Publication of JPH04218094A publication Critical patent/JPH04218094A/ja
Application granted granted Critical
Publication of JP2886702B2 publication Critical patent/JP2886702B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Dot-Matrix Printers And Others (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は文字パターンの表現に用
いられるアウトラインフォントの処理を行う文字パター
ン処理装置に係わり、例えばワークステーション等で作
成された文書をプリント出力する際にアウトラインフォ
ントのシックニング処理を行うアウトラインフォント処
理装置に関する。
【0002】
【従来の技術】文字パターンを表現するフォントの1つ
としてアウトラインフォントが用いられることが多い。 このアウトラインフォントは文字パターンの輪郭を表わ
す輪郭情報とその他の属性情報から構成されるが、通常
これらの情報は予め各文字ごとに作成されメモリに格納
される。実際の文字パターン出力は、この輪郭情報を基
にまず輪郭を描いてからその内部を塗り潰すことにより
行われる。従って、この方式によればビットマップデー
タ方式に比べてフォントデータを格納するメモリの容量
が少なくて済むと共に、出力に際しての拡大・縮小や回
転操作が容易になり、しかもこれらの操作により印字品
質が劣化することがないという長所がある。
【0003】図14は、アウトラインフォントの一例と
して“2”という文字パターンを表わしたものである。
【0004】この図に示すように、この文字パターンの
輪郭はn個の制御点P1 〜Pn と、これらを順次結
んだ線分により構成される。これらn個の制御点の座標
を示すデータは、予めP1 〜Pn の順(矢印M1 
〜M7 の方向)にシステム内のメモリやハードディス
ク等のフォントデータ格納部に格納されており、レーザ
プリンタ等への出力に際しこれらのデータを基に輪郭を
描いてからその内側を塗り潰すようになっている。この
フォントデータ格納部には、各制御点を順次結ぶ各線分
の法線ベクトルV12〜Vn1の方向を示す法線ベクト
ルデータも格納されている。この図に示すように、これ
らの法線ベクトルは各線分について塗り潰す側から外側
に向かうものとする。
【0005】ワークステーション等で作成された文書を
、このようなアウトラインフォントを用いて印字出力す
る場合には、印字出力装置の特性に応じていくつかの特
別なフォント処理をする必要がある。その1つとしてシ
ックニング処理が行われる。これは、例えば印字手段と
してレーザプリンタのように機種ごとに印字特性が変化
するプリンタを使用する場合に、それぞれの装置の印字
特性に応じてフォントを太めたり細めたりする処理とし
て行われるものであり、アウトラインフォントを用いた
印字の品質を維持するのに必要な処理である。
【0006】このようなアウトラインフォントに対する
シックニング処理は、従来次のようにして行われていた
。これを図14の4つの制御点Px 、Py 、Pl 
、Pm を例にとって説明する。
【0007】図15〜図22はそれぞれ制御点Px 、
Py 、Pl 、Pm の周辺を拡大して表わしたもの
である。 これらの図で、矢印45はフォントデータとして格納さ
れた制御点の処理順序方向を示し、矢印46は隣接する
法線ベクトルの変化方向を示す。
【0008】図15に示すように、文字パターンを太め
るときには、各制御点をその制御点を含む2つの線分の
法線ベクトルの方向にそれぞれ所定量だけ移動する処理
を行う。例えば制御点Px の場合、線分L(x−1)
xの法線ベクトルV(x−1)xの正方向と線分Lx(
x+1)の法線ベクトルVx(x+1)の正方向にそれ
ぞれ距離Dだけ移動することにより、2つの新たな制御
点Px ′、Px ″を得る。これにより、新たな輪郭
線41が得られる。
【0009】反対に文字パターンを細めるときには、図
16に示すように、各制御点をその制御点を含む2つの
線分の法線ベクトルの方向と反対の方向にそれぞれ所定
量だけ移動する処理が行われる。例えば制御点Px の
場合、法線ベクトルV(x−1)x、およびVx(x+
1)の負方向にそれぞれ距離Dだけ移動することにより
、2つの新たな制御点Px ′、Px ″を得る。これ
により、新たな輪郭線42が得られる。
【0010】同様に、図17に示すように、制御点Py
 に対して文字パターンを太める処理を行うときには制
御点Py を法線ベクトルV(y−1)y  、および
Vy(y+1)の正方向にそれぞれ距離Dだけ移動する
。これにより2つの新たな制御点Py ′、Py″を得
る。反対に文字パターンを細めるときは、図18に示す
ように、制御点Py を法線ベクトルV(y−1)y 
 、Vy(y+1)の負方向にそれぞれ距離Dだけ移動
する。これにより2つの新たな制御点Py ′、Py 
″を得る。
【0011】また、図19に示すように、制御点Pl 
に対して文字パターンを太める処理を行う場合には制御
点Pl を法線ベクトルV(l−1)l  、およびV
l(l+1)の正方向にそれぞれ距離Dだけ移動する。 これにより2つの新たな制御点Pl ′、Pl ″を得
る。反対に文字パターンを細めるときには、図20に示
すように、制御点Pl を法線ベクトルV(l−1)l
  、Vl(l+1)の負方向にそれぞれ距離Dだけ移
動する。これにより2つの新たな制御点はPl ′、P
l ″を得る。
【0012】さらに図21に示すように、制御点Pm 
に対して文字パターンを太める処理を行う場合は、制御
点Pm を法線ベクトルV(m−1)m  とVm(m
+1)の正方向にそれぞれ距離Dだけ移動する。これに
より2つの新たな制御点Pm ′、Pm ″を得る。反
対に文字パターンを細める場合は、図22に示すように
、制御点Pm を法線ベクトルベクトルV(m−1)m
  、Vm(m+1)の負方向にそれぞれ距離Dだけ移
動する。これにより、2つの新たな制御点Pm ′、P
m ″を得る。
【0013】
【発明が解決しようとする課題】このように、従来、ア
ウトラインフォントを用いた文字パターンにシックニン
グ処理を施して印字出力する場合、フォントを構成する
すべての制御点がその処理の対象となっていた。
【0014】ところで、図15および図19に示したよ
うに、制御点の処理順序方向45と法線ベクトルの変化
方向46が一致する制御点について文字パターンを太め
る処理を行う場合や、図18および図22に示したよう
に、制御点の処理順序方向45と法線ベクトルの変化方
向46が一致しない制御点について文字パターンを細め
るシックニング処理を行う場合には、新たな線分同士が
交差するという問題は生じない。
【0015】しかしながら、図16および図20に示し
たように、制御点の処理順序方向45と法線ベクトルの
変化方向46が一致する制御点について文字パターンを
細める処理を行う場合や、図17および図21に示した
ように、制御点の処理順序方向45と法線ベクトルの変
化方向46が一致しない制御点について文字パターンを
太める処理を行う場合には、新たに設定された制御点間
を結ぶ線分同士が交差する。例えば、図17では、新た
な制御点Py −1″とPy ′とを結ぶ線分と、新た
な制御点Py ″とPy+1′とを結ぶ線分は点Cy 
で交差する。 これにより、3つの点Cy 、Py ′、Py ″によ
り形成される微小な閉領域49が生じることとなる。
【0016】図23は、図17における微小な閉領域4
9を拡大して表わしたものである。この図に示すように
、通常、ドットを塗り潰すか否かの判定は主走査方向4
7に沿ってドット単位で行われ、輪郭線に行き当たるご
とにそれ以降のドットデータを“0”(白)から“1”
(黒)、または“1”から“0”へと反転するようにな
っている。そして、このような走査を副走査方向48に
繰り返し行うことにより塗り潰しが行われる。ところが
、前述したような微小な閉領域49が存在すると、この
内部のドットデータは本来の値“1”から“0”に変化
してしまい、本来塗り潰されるべき領域が塗り潰されず
に白のまま残存することとなる。
【0017】同様に、図21の場合も、2つの制御点P
m ′、Pm ″と点Cm により形成される微小領域
が白として残存することとなる。
【0018】反対に、図16における2つの制御点Px
 ′、Px″と点Cx により形成される微小領域や、
図20における2つの制御点Pl ′、Pl ″と点C
l により形成される微小領域は、本来塗り潰しの行わ
れない領域であるにも係わらず、黒く塗り潰されてしま
うこととなる。
【0019】このように、従来行われていたシックニン
グ処理はフォントを構成するすべての制御点を対象とし
ていたので、新たに設定された制御点間を結ぶ線分同士
が交差する部分が多数発生することとなる。従って、そ
のまま塗り潰しを行うと、処理前には存在しなかった微
小な黒または白の領域が多数生じ、印字品質の低下を招
くこととなる。これを防ぐためには、シックニング処理
により生じた微小な閉領域に対する塗り潰し処理を行う
か否かの判定を逐一行う必要がある。しかしながら、そ
のためのアルゴリズムは極めて複雑なものとなるため、
CPU(中央処理装置)への負担が増大すると共に処理
速度が低下するという欠点があった。
【0020】そこで、本発明の目的は、輪郭を構成する
制御点のうち必要なものに対してのみシックニング処理
を行うことのできるアウトラインフォント処理装置を提
供することにある。
【0021】
【課題を解決するための手段】請求項1記載の発明では
、(i) 文字パターンの輪郭を構成する複数の制御点
に関するデータをアウトラインフォントデータとして記
憶するアウトラインフォントデータ記憶手段と、(ii
)このアウトラインフォントデータ記憶手段に記憶され
たアウトラインフォントデータから、互いに隣接する制
御点同士を結ぶ線分の各々についての法線ベクトルの方
向角を順次抽出する方向角抽出手段と、(iii) こ
の方向角抽出手段により抽出された法線ベクトル方向角
を基に、互いに隣接する法線ベクトルの変化方向を順次
算出する変化方向算出手段と、(iv)この変化方向算
出手段により算出された法線ベクトルの変化方向をそれ
ぞれの制御点に対応付けて記憶する変化方向記憶手段と
、(v) この変化方向記憶手段に記憶された変化方向
を基に、制御点を既定の方向に所定量移動する処理とし
てのシックニング処理を実行するか否かの判定を各制御
点ごとに行う判定手段とをアウトラインフォント処理装
置に具備させる。
【0022】そして、請求項1記載の発明では、各制御
点ごとにその前後に位置する法線ベクトルの方向角変化
量を算出し、この情報に基づいて各制御点に対するシッ
クニング処理の実行の可否を判定することにして本発明
の目的を達成する。
【0023】請求項2記載の発明では、(i) 文字パ
ターンの輪郭を構成する複数の制御点に関するデータを
アウトラインフォントデータとして記憶するアウトライ
ンフォントデータ記憶手段と、(ii)このアウトライ
ンフォントデータ記憶手段に記憶されたアウトラインフ
ォントデータから、互いに隣接する制御点同士を結ぶ線
分の各々についての法線ベクトルの方向角を順次抽出す
る方向角抽出手段と、(iii) この方向角抽出手段
により抽出された法線ベクトル方向角を基に、互いに隣
接する法線ベクトルの変化方向を順次算出する変化方向
算出手段と、(iv)この変化方向算出手段により算出
された各制御点ごとの法線ベクトルの変化方向を、隣接
する制御点についての法線ベクトルの変化方向とそれぞ
れ対にして順次記憶する変化方向記憶手段と、(v) 
この変化方向記憶手段に各制御点ごとに記憶された2つ
の法線ベクトル変化方向を基に、制御点を既定の方向に
所定量移動する処理としてのシックニング処理を実行す
るか否かの判定を各制御点ごとに行う判定手段とをアウ
トラインフォント処理装置に具備させる。
【0024】そして、請求項2記載の発明では、ある制
御点についてシックニング処理を行うか否かの選択を行
うに際し、その制御点についての法線ベクトル方向角変
化量とこれに隣接する制御点についての法線ベクトル方
向角変化量の双方を参照することにして本発明の目的を
達成する。
【0025】請求項3記載の発明では、(i) 文字パ
ターンの輪郭を構成する複数の制御点に関するデータを
アウトラインフォントデータとして記憶するアウトライ
ンフォントデータ記憶手段と、(ii)このアウトライ
ンフォントデータ記憶手段に記憶されたアウトラインフ
ォントデータから、互いに隣接する制御点同士を結ぶ線
分の各々についての法線ベクトルの方向角を順次抽出す
る方向角抽出手段と、(iii) この方向角抽出手段
により抽出された法線ベクトル方向角を基に、互いに隣
接する法線ベクトルの変化方向を順次算出する変化方向
算出手段と、(iv)この変化方向算出手段により算出
された法線ベクトル変化方向を各線分の法線ベクトルに
それぞれ対応付けて記憶する変化方向記憶手段と、(v
) この変化方向記憶手段に記憶された変化方向を基に
、対応する線分から所定距離の位置に新たな線分を設け
るシックニング処理を実行するか否かの判定を各線分ご
とに行う判定手段とをアウトラインフォント処理装置に
具備させる。
【0026】そして、請求項3記載の発明では、各線分
の法線ベクトルごとにその前後に位置する法線ベクトル
との方向角変化量を算出し、この情報に基づいて各線分
に対するシックニング処理の実行の可否を判定すること
にして本発明の目的を達成する。
【0027】
【実施例】以下実施例につき本発明を詳細に説明する。
【0028】図1は本発明の一実施例におけるアウトラ
インフォント処理装置を表わしたものである。この装置
にはシステムバス11が設けられ、次のような各種の装
置回路が接続されている。
【0029】(i) CPU(中央処理装置)12:文
書や図形の作成・編集などの情報処理、および装置全体
の動作の制御を行う。
【0030】(ii)メインメモリ13:ランダム・ア
クセス・メモリ(RAM)からなり、ハードディスク2
2から読み出された制御プログラム、アウトラインフォ
ントテーブル、その他ユーザデータ等が格納される。
【0031】(iii) メモリマネジメントユニット
(MMU)14:メインメモリ13からデータを読み出
してシステムバス11に転送したり、反対にデータをメ
インメモリ13に格納する制御を行う。
【0032】(iv)DMA(直接メモリアクセス)1
5:CPU12を介さずに周辺装置とメインメモリ13
の間でデータを直接転送するための制御を行う。
【0033】(v) ビットマップディスプレイ16:
キーボード18から入力されたユーザデータやハードデ
ィスク22から読み出されたデータ、およびCPU12
からの各種のメッセージ等を表示する。
【0034】(vi)CRTコントローラ17:ビット
マップディスプレイ16の制御を行う。
【0035】(vii) キーボード18:入力用コミ
ュニケーションボード21を介して接続され、CPU1
2に対し各種の命令を実行するための指示やユーザデー
タを入力するのに用いられる。
【0036】(viii)マウス19:ビットマップデ
ィスプレイ16の画面上のグラフィックカーソルの移動
や、処理項目の選択等に用いられる。
【0037】(ix)ハードディスク22:この情報処
理装置の制御プログラムが格納されており、これがハー
ドディスクコントローラ23を介してメインメモリ13
のプログラム格納領域にロードされ、装置各部の制御が
行われる。また、このハードディスク22には、各文字
パターンごとに図3に示すようなアウトラインフォント
テーブル24が格納され、CPU12の指示によりメイ
ンメモリ13内の作業領域にロードされるようになって
いる。このテーブルには、制御点P1 〜Pn のそれ
ぞれに対応して座標データp1 〜pn と法線ベクト
ルデータv12〜vn1が格納されている。ここで、こ
れらの制御点P1 〜Pn は図14の制御点P1 〜
Pn に対応し、法線ベクトルデータv12〜vn1は
法線ベクトルV12〜Vn1の方向角を示すものとする
。このハードディスク22には、その他のユーザデータ
も格納されるようになっている。
【0038】(x) レーザプリンタ25:必要に応じ
てシックニング処理を施されたアウトラインフォントデ
ータから生成されたビットマップデータを基に文字パタ
ーンの出力印字を行う。その他の画情報の出力印字も行
う。
【0039】図2は図1の情報処理装置の外観を表わし
たものである。この図に示すように、ワークデスク26
上にはビットマップディスプレイ16、キーボード18
、およびレーザプリンタ25が載置され、それぞれ専用
ケーブル27、28、29により本体キャビネット31
に接続されている。このキーボード18にはマウス19
が接続されている。本体キャビネット31には、図1の
CPU12、メインメモリ13、ハードディスク22な
どの装置回路が収納されている。
【0040】以上のような構成のアウトラインフォント
処理装置の動作を説明する。ここでは、従来例(図14
)で説明した文字パターン“2”についてシックニング
処理を行う場合について説明する。
【0041】まず、CPU12がシステムバス11に対
し文字パターン“2”を要求すると、ハードディスクコ
ントローラ23はハードディスク22から該当するアウ
トラインフォントテーブル24(図3)を検索し、各制
御点ごとの座標データp1 〜pn と法線ベクトルデ
ータv12〜vn1をメインメモリ13の作業領域にロ
ードする。CPU12は法線ベクトルデータv12〜v
n1を参照して、互いに隣接する法線ベクトルの変化方
向を順次算出し、メインメモリ13内の他の作業領域に
図5に示すようなシックニング処理選択用テーブル34
を作成する。このテーブルには、各制御点に対応して2
つの法線ベクトル変化データAおよびBが格納される。
【0042】図4と共に、以上の動作を詳細に説明する
。まずCPU12(図1)は、変数iに制御点番号の初
期値として“1”をセットする(ステップS101)。
【0043】この変数iが“n−1”のときには(ステ
ップS102;Y)、変数j、kにそれぞれ“n”、“
1”をセットし(ステップS103)、変数iが“n”
のときには(ステップS104;Y)、変数j、kにそ
れぞれ“1”、“2”をセットする(ステップS105
)。ここで、nは制御点の総数を示す。
【0044】また、変数iが“n”、“n−1”以外の
ときには(ステップS102;N、ステップS104;
N)、変数j、kにそれぞれ“i+1”、“i+2”を
セットする(ステップS106)。
【0045】変数iが初期値“1”の場合は、“n−1
”および“n”のいずれの値にも該当しないので(ステ
ップS102;N、ステップS104;N)、変数j、
kにそれぞれ“2”、“3”をセットする(ステップS
106)。 これにより対象となる制御点はP1 、P2 、P3 
となる。
【0046】次に、CPU12はメインメモリのアウト
ラインフォントテーブル24(図3)から制御点Pi 
とPj を結ぶ線分の法線ベクトルVijのベクトルデ
ータvijを抽出し(ステップS107)、さらに、制
御点Pj とPk を結ぶ線分の法線ベクトルVjkの
ベクトルデータvjkを抽出する(ステップS108)
【0047】CPU12は、法線ベクトルVijからV
jkへの変化方向が正のとき、すなわち、vjkがvi
jより大きいとき(ステップS109;Y)、シックニ
ング処理選択用テーブル34(図5)の制御点Pj の
法線ベクトル変化データBj として“1”をセットす
ると共に(ステップS110)、制御点PK の法線ベ
クトル変化データAk として“1”をセットする(ス
テップS111)。ただし、法線ベクトルの変化方向は
時計回りを正とする。
【0048】反対に、法線ベクトルVijからVjkへ
の変化方向が負のとき、すなわち、vjkがvijより
小さいときには(ステップS109;N)、法線ベクト
ル変化データBj と法線ベクトル変化データAk と
して共に“0”をセットする(ステップS112、S1
13) 。
【0049】変数iが初期値“1”の場合は、法線ベク
トルV12からV23への変化方向は正なので(図14
)、制御点P2 の法線ベクトル変化データB2 と制
御点P3 の法線ベクトル変化データA3 は共に“1
”となる。
【0050】次に、CPU12は変数iをインクリメン
トし(ステップS114)、その値がnを越えるまで(
ステップS115;Y)、ステップS102〜S115
の処理を繰り返し行う。
【0051】このようにして、図5のようなシックニン
グ処理選択用テーブル34が作成される。
【0052】次に、このテーブルを参照してシックニン
グ処理を行う場合の動作の一例を説明する。ここでは、
次のような原理に基づいて処理を行うものとする。
【0053】まず、文字パターンを太める場合、法線ベ
クトル変化データA、Bが共に“1”である制御点につ
いては、前方および後方に隣接する2つの制御点との間
を結ぶ2つの線分の法線ベクトルの方向にそれぞれ移動
する処理を行い、法線ベクトル変化データA、Bがそれ
ぞれ“0”、“1”である制御点については、後方に隣
接する制御点との間を結ぶ線分の法線ベクトルの方向に
のみ移動する処理を行う。また、法線ベクトル変化デー
タBが“0”である制御点については移動を行わない。
【0054】一方、文字パターンを細める場合、法線ベ
クトル変化データA、Bが共に“0”である制御点につ
いては前方および後方に隣接する2つの制御点との間を
結ぶ2つの線分の法線ベクトルの反対方向にそれぞれ移
動する処理を行い、法線ベクトル変化データA、Bがそ
れぞれ“1”、“0”である制御点については、前方に
隣接する制御点との間を結ぶ線分の法線ベクトルの方向
にのみ移動する処理を行う。また、法線ベクトル変化デ
ータBが“1”である制御点については、移動を行わな
い。
【0055】このうち、文字パターンを太めるときのシ
ックニング処理を図6と共に説明する。
【0056】まずCPU12は、変数iに“1”をセッ
トしたのち(ステップS101)、メインメモリ13の
アウトラインフォントテーブル24(図3)から制御点
Pi の座標データpi を読み出し、レジスタにセッ
トする(ステップS102)。次に、メインメモリ13
のシックニング処理選択用テーブル34(図5)から制
御点Pi の法線ベクトル変化データAi 、Bi を
読み出し(ステップS103)、これらの値の判定を行
う(ステップS104〜S106)。
【0057】これらの値が共に“1”のとき(ステップ
S104;Y、ステップS105;Y)、CPU12は
まずレジスタの内容を法線ベクトルV(i−1)iの方
向に所定量Dだけ移動する演算を行う(ステップS10
8)。ただし制御点P1 については(ステップS10
7;Y)、法線ベクトルVn1の方向に移動する演算を
行う(ステップS109)ものとする。この演算結果は
、新たな制御点Pi ′の座標データpi ′としてメ
インメモリ13に書き込まれる(ステップS110)。
【0058】次に、CPU12はレジスタの内容を法線
ベクトルVijの方向に所定量Dだけ移動する演算を行
い(ステップS111)、その演算結果を新たな制御点
Pi ″の座標データpi ″として、メインメモリ1
3の次のアドレスに書き込む(ステップS112)。こ
ののち、変数iをインクリメントして(ステップS11
3)、これがn以下であれば(ステップS114;N)
、次の制御点に関する処理へと移行し、以下ステップS
102〜S114の処理を繰り返す。そして、変数iが
nを越えたときに(ステップS114;Y)処理を終了
する。
【0059】一方、法線ベクトル変化データAi 、B
i の値がそれぞれ“0”、“1”のときには(ステッ
プS104;N、ステップS106;Y)、レジスタの
内容を法線ベクトルV(i−1)iの方向に移動する演
算は行わず、法線ベクトルVijの方向に所定量Dだけ
移動する演算のみを行い(ステップS111)、その演
算結果を新たな制御点Pi ″の座標データpi ″と
してメインメモリ13の次のアドレスに書き込む(ステ
ップS112)。
【0060】さらに、法線ベクトル変化データAi 、
Bi の値が共に“0”(ステップS104;N、ステ
ップS106;N)、および“1”、“0”(ステップ
S104;Y、ステップS105;N)のときには、演
算を一切行わずにレジスタの内容をそのままメインメモ
リ13の次のアドレスに書き込み(ステップS115)
、次の制御点の処理へと移行する(ステップS113)
【0061】図7(B)は、以上説明したシックニング
処理によりメインメモリ13内に新たに作成されたアウ
トラインフォントテーブルを表わしたものである。また
、同図(A)はシックニング処理前のアウトラインフォ
ントテーブルを表わしたものである。
【0062】これらの図に示すように、制御点P1 や
Pm−1 のように法線ベクトル変化データA、Bが共
に“1”である制御点については(図5)、それぞれに
ついて2つの新たな制御点P1 ′、P1 ″やPm−
1 ′、Pm−1 ″が生成されるが、制御点Pm や
Pn−1 のように法線ベクトル変化データBが“0”
である制御点については(図5)、そのままの制御点が
新たなアウトラインフォントテーブルに格納される。
【0063】また、制御点Pm+1 やPn のように
法線ベクトル変化データA、Bがそれぞれ“0”、“1
”である制御点については(図5)、後方に隣接する制
御点との間を結ぶ線分の法線ベクトルの方向にのみ移動
した新たな制御点Pm+1 ″、Pn ″が生成され格
納される。
【0064】以上のような動作は文字パターンを細める
場合についても同様であるので、ここでは説明を省略す
る。
【0065】図8は、制御点Py について本実施例に
よるシックニング処理を行った後の状態を表わしたもの
である。これらの制御点Py−1 、Py 、Py+1
 についてはいずれも法線ベクトル変化データA、Bが
ともに“0”なので、移動処理はまったく行われず、従
来例(図17)のように線分同士が交差して微小閉領域
が発生することがない。
【0066】図9は、制御点Pm について本実施例に
よるシックニング処理を行った後の状態を表わしたもの
である。この図に示すように、制御点Pm については
法線ベクトル変化データA、Bがともに“0”なので、
移動処理はまったく行われず、従来例(図21)のよう
に線分同士が交差して微小閉領域が発生することがない
。なお、制御点Pm−1 やPm+1 についてはシッ
クニング処理が行われる。
【0067】このようにしてメインメモリ13内に新た
なアウトラインフォントテーブルが作成されることとな
るが、CPU12はこのテーブルの座標データを基に文
字パターン“2”の塗り潰しを行い、レーザプリンタ2
5に出力する。
【0068】なお、本実施例ではシックニング処理用選
択テーブルの法線ベクトル変化データA、Bの値に応じ
処理すべき内容を3つに分けることとしたが、これに限
らないのはもちろんである。すなわち、AとBの値の組
み合わせにより4つの場合を設定し、それぞれに応じて
施すべき処理を変えることにより、よりきめ細かい処理
を行うことができる。
【0069】反対に、A、Bの値により処理すべき内容
を2つに分けるようにしてもよい。例えば、文字パター
ンを太める場合において、法線ベクトル変化データBが
“1”である制御点については、前方および後方に隣接
する2つの制御点との間を結ぶ2つの線分の法線ベクト
ルの方向にそれぞれ移動する処理を行い、法線ベクトル
変化データBが“0”である制御点については一切移動
を行わないとすることにしてもよい。この場合には、処
理のためのアルゴリズムが一層簡単となる。
【0070】本実施例では、シックニング処理選択用テ
ーブルに、各制御点ごとに2つずつの法線ベクトル変化
データを格納することとしたが、以下のように各法線ベ
クトルごとに対応させるようにしてもよい。
【0071】図10は各法線ベクトルV12〜Vn1ご
とに法線ベクトル変化データを対応付けて作成したシッ
クニング処理選択用テーブルを表わしたものである。こ
の図に示すように、例えば法線ベクトルVijについて
は、法線ベクトル変化データとして2つのデータAij
  、Bijが対応付けられて格納されるが、このうち
データAijは前方に隣接する法線ベクトルV(i−1
)iから法線ベクトルVijへの変化方向を示し、デー
タBijは法線ベクトルVijから後方に隣接する法線
ベクトルVjkへの変化方向を示している。すなわち、
注目している線分の両端においてそれぞれ隣接する線分
との角度が外側に凸か凹かを示している。
【0072】次に、図11と共に、このようなシックニ
ング処理選択用テーブルを作成する際の動作を説明する
。この図で、ステップS101〜ステップS108まで
は図4と同じなので説明を省略し、ステップS109以
降について説明する。
【0073】法線ベクトルデータvijおよびvjkの
抽出が終了すると(ステップS107、ステップS10
8)、CPU12は、法線ベクトルVijからVjkへ
の変化方向を判定する(ステップS109)。
【0074】この結果、変化方向が正のとき、すなわち
vjkがvijより大きいとき(ステップS109;Y
)、シックニング処理選択用テーブル34(図10)の
法線ベクトルVijに対応した法線ベクトル変化データ
Bijとして“1”をセットすると共に(ステップS1
10)、法線ベクトルVjkに対応した法線ベクトル変
化データAjkとして“1”をセットする(ステップS
111)。
【0075】反対に変化方向が負のとき、すなわち、v
jkがvijより小さいときには(ステップS109;
N)、法線ベクトル変化データBijおよびAjkとし
て共に“0”をセットする(ステップS112、S11
3) 。
【0076】変数iが初期値“1”の場合、図8に示す
ように、法線ベクトルV12からV23への変化方向は
正なので、図10の法線ベクトルV12に対応する法線
ベクトル変化データB12と、法線ベクトルV23に対
応する法線ベクトル変化データA23は共に“1”とな
る。
【0077】次に、CPU12は変数iをインクリメン
トし(ステップS114)、その値がnを越えるまで(
ステップS115;Y)、ステップS102〜S115
の処理を繰り返し行う。
【0078】このようにして、図10のようなシックニ
ング処理選択用テーブル34が作成される。
【0079】次に、このテーブルを参照してシックニン
グ処理を行う場合の動作を説明する。ここでは、次のよ
うな原理に基づいて処理を行うものとする。
【0080】まず、文字パターンを太める場合、法線ベ
クトル変化データAijおよびBijが共に“1”であ
る法線ベクトルVijについてのみ、その法線ベクトル
の属する線分をベクトル方向に距離Dだけ平行移動する
。その他の場合には、一切移動を行わない。
【0081】一方、文字パターンを細める場合、法線ベ
クトル変化データ(Aij,Bij)が(0,0)、(
0,1)、および(1,0)である法線ベクトルVij
については、その法線ベクトルの属する線分を反ベクト
ル方向に距離Dだけ平行移動し、(1,1)の場合には
移動を行わない。
【0082】なお、ここで移動でなく複写するようにし
てもよい。この場合には元の線分を形成している制御点
も残ることとなる。
【0083】図12、図13は、図14の制御点Pm 
周辺の線分について、シックニング処理後の状態を表わ
したものである。このうち図12は線分を移動するよう
にした場合の状態を示し、図13は線分を複写するよう
にした場合の状態を示している。いずれにしても、従来
生じていた微小閉領域を生じないことが明らかである。
【0084】以上2つの実施例ではシックニング処理用
の各種アウトラインフォントテーブルを格納するメモリ
としてメインメモリ13を使用することとしたが、もち
ろん、これとは別個に専用の作業用メモリを設けるよう
にしてもよい。さらに、シックニング処理により作成さ
れた新たなアウトラインフォントテーブルをメインメモ
リ13だけでなくハードディスク22にも格納するよう
にすれば、同じタイプのレーザプリンタを使用する限り
既に作成したアウトラインフォントデータを使用できる
ので、その都度シックニング処理を行う必要がなくなり
、印字出力を一層高速化することができる。
【0085】
【発明の効果】以上説明したように、請求項1記載の発
明によれば、各制御点ごとにその前後における法線ベク
トルの変化方向を算出し、この情報に基づいて各制御点
に対するシックニング処理の実行の可否を判定すること
としたので、必要な制御点に対してのみシックニング処
理を行うことができる。このため、微小閉領域の発生が
なく、シックニング処理ののちそのまま塗り潰し処理を
行っても印字品質が低下することがない。従って、従来
CPU等への負担となっていた塗り潰しの判断が不要と
なると共に、処理速度が向上するという効果がある。
【0086】また、請求項2記載の発明によれば、ある
制御点についてシックニング処理を行うか否かの選択を
行うに際し、その制御点についての法線ベクトル変化方
向とこれに隣接する制御点についての法線ベクトル変化
方向の双方を参照することとしたので、シックニング処
理の内容をよりきめ細かく設定することができる。従っ
て、印字品質を一層向上させることができるという効果
がある。
【0087】また、請求項3記載の発明では、各線分の
法線ベクトルごとにその前後に位置する法線ベクトルと
の間の変化方向を算出し、この情報に基づいて各線分に
対するシックニング処理の実行の可否を判定することと
したので、処理後に法線ベクトルを再計算する必要がな
く単純化できるという効果がある。
【図面の簡単な説明】
【図1】アウトラインフォント処理装置とその周辺装置
を示すブロック図である。
【図2】アウトラインフォント処理装置とその周辺装置
の外観を示す外観図である。
【図3】図1のハードディスクに格納された処理前のア
ウトラインフォントテーブルを示す説明図である。
【図4】シックニング処理用選択テーブルを作成する動
作の第1の実施例を説明するための流れ図である。
【図5】第1の実施例におけるシックニング処理用選択
テーブルを示す説明図である。
【図6】図4のシックニング処理選択用テーブルを基に
文字パターンを太めるときのシックニング処理動作を説
明するための流れ図である。
【図7】第1の実施例におけるシックニング処理の前後
における制御点の変化を示す説明図である。
【図8】第1の実施例におけるシックニング処理後の制
御点の状態の一例を示す説明図である。
【図9】第1の実施例におけるシックニング処理後の制
御点の状態の他の例を示す説明図である。
【図10】第2の実施例におけるシックニング処理用選
択テーブルを示す説明図である。
【図11】図10のシックニング処理用選択テーブルを
作成する動作を説明するための流れ図である。
【図12】第2の実施例におけるシックニング処理後の
制御点の状態の一例を示す説明図である。
【図13】第2の実施例におけるシックニング処理後の
制御点の状態の他の例を示す説明図である。
【図14】シックニング処理前のアウトラインフォント
の一例としての文字パターン“2”を示す説明図である
【図15】従来の太めるシックニング処理の第1の例を
示す説明図である。
【図16】従来の細めるシックニング処理の第1の例を
示す説明図である。
【図17】従来の太めるシックニング処理の第2の例を
示す説明図である。
【図18】従来の細めるシックニング処理の第2の例を
示す説明図である。
【図19】従来の太めるシックニング処理の第3の例を
示す説明図である。
【図20】従来の細めるシックニング処理の第3の例を
示す説明図である。
【図21】従来の太めるシックニング処理の第4の例を
示す説明図である。
【図22】従来の細めるシックニング処理の第4の例を
示す説明図である。
【図23】図17に示した従来のシックニング処理後の
塗り潰し処理を説明するための説明図である。
【符号の説明】
11…システムバス、12…CPU、13…メインメモ
リ、22…ハードディスク、24…アウトラインフォン
トテーブル、25…レーザプリンタ、34…シックニン
グ処理用選択テーブル

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  文字パターンの輪郭を構成する複数の
    制御点に関するデータをアウトラインフォントデータと
    して記憶するアウトラインフォントデータ記憶手段と、
    このアウトラインフォントデータ記憶手段に記憶された
    アウトラインフォントデータから、互いに隣接する制御
    点同士を結ぶ線分の各々についての法線ベクトルの方向
    角を順次抽出する方向角抽出手段と、この方向角抽出手
    段により抽出された法線ベクトル方向角を基に、互いに
    隣接する法線ベクトルの変化方向を順次算出する変化方
    向算出手段と、この変化方向算出手段により算出された
    法線ベクトルの変化方向をそれぞれの制御点に対応付け
    て記憶する変化方向記憶手段と、この変化方向記憶手段
    に記憶された変化方向を基に、制御点を既定の方向に所
    定量移動する処理としてのシックニング処理を実行する
    か否かの判定を各制御点ごとに行う判定手段とを具備す
    ることを特徴とするアウトラインフォント処理装置。
  2. 【請求項2】  文字パターンの輪郭を構成する複数の
    制御点に関するデータをアウトラインフォントデータと
    して記憶するアウトラインフォントデータ記憶手段と、
    このアウトラインフォントデータ記憶手段に記憶された
    アウトラインフォントデータから、互いに隣接する制御
    点同士を結ぶ線分の各々についての法線ベクトルの方向
    角を順次抽出する方向角抽出手段と、この方向角抽出手
    段により抽出された法線ベクトル方向角を基に、互いに
    隣接する法線ベクトルの変化方向を順次算出する変化方
    向算出手段と、この変化方向算出手段により算出された
    各制御点ごとの法線ベクトルの変化方向を、隣接する制
    御点についての法線ベクトルの変化方向とそれぞれ対に
    して順次記憶する変化方向記憶手段と、この変化方向記
    憶手段に各制御点ごとに記憶された前記2つの法線ベク
    トル変化方向を基に、制御点を既定の方向に所定量移動
    する処理としてのシックニング処理を実行するか否かの
    判定を各制御点ごとに行う判定手段とを具備することを
    特徴とするアウトラインフォント処理装置。
  3. 【請求項3】  文字パターンの輪郭を構成する複数の
    制御点に関するデータをアウトラインフォントデータと
    して記憶するアウトラインフォントデータ記憶手段と、
    このアウトラインフォントデータ記憶手段に記憶された
    アウトラインフォントデータから、互いに隣接する制御
    点同士を結ぶ線分の各々についての法線ベクトルの方向
    角を順次抽出する方向角抽出手段と、この方向角抽出手
    段により抽出された法線ベクトル方向角を基に、互いに
    隣接する法線ベクトルの変化方向を順次算出する変化方
    向算出手段と、この変化方向算出手段により算出された
    法線ベクトル変化方向を各線分の法線ベクトルにそれぞ
    れ対応付けて記憶する変化方向記憶手段と、この変化方
    向記憶手段に記憶された変化方向を基に、対応する線分
    から所定距離の位置に新たな線分を設けるシックニング
    処理を実行するか否かの判定を各線分ごとに行う判定手
    段とを具備することを特徴とするアウトラインフォント
    処理装置。
JP3074448A 1990-07-06 1991-03-15 アウトラインフォント処理装置 Expired - Lifetime JP2886702B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3074448A JP2886702B2 (ja) 1990-07-06 1991-03-15 アウトラインフォント処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP17735490 1990-07-06
JP2-177354 1990-07-06
JP3074448A JP2886702B2 (ja) 1990-07-06 1991-03-15 アウトラインフォント処理装置

Publications (2)

Publication Number Publication Date
JPH04218094A true JPH04218094A (ja) 1992-08-07
JP2886702B2 JP2886702B2 (ja) 1999-04-26

Family

ID=26415604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3074448A Expired - Lifetime JP2886702B2 (ja) 1990-07-06 1991-03-15 アウトラインフォント処理装置

Country Status (1)

Country Link
JP (1) JP2886702B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
EP0605048A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
EP0605048A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
US5673371A (en) * 1992-12-28 1997-09-30 Oce-Nederland B.V. Method of modifying the fatness of characters to be output on a raster output device

Also Published As

Publication number Publication date
JP2886702B2 (ja) 1999-04-26

Similar Documents

Publication Publication Date Title
US5241653A (en) Apparatus and method for adjusting and displaying scaled, rasterized characters
KR0167618B1 (ko) 문자 발생 장치 및 방법
JPH0244482A (ja) ラスタ化方法
JPH0659665A (ja) 画像処理装置
US5237649A (en) Method and system for acquiring interpolation points from straight short vectors representing figure in curve fitting
US5920324A (en) Character pattern producing apparatus capable of producing character pattern having connected character elements
JPH04218094A (ja) アウトラインフォント処理装置
JP2774653B2 (ja) 文字処理装置
JPH02270019A (ja) 高品質文字パターン発生方式
US20100118323A1 (en) Image forming apparatus
JP3034140B2 (ja) 文字生成方法及びその装置
JPH04301887A (ja) アウトラインフォント処理装置
JP2806679B2 (ja) 文字発生装置
JP3039015B2 (ja) 文字処理装置
JP3280160B2 (ja) 文書処理装置および文書処理方法
JPH02266480A (ja) 高品質文字パターン発生方式
JP2985275B2 (ja) アウトラインフォントの文字発生方式
JPS642953B2 (ja)
JPH04373084A (ja) 文字図形変形処理装置
JP3692639B2 (ja) 描画処理装置
JP2835056B2 (ja) 高品質文字パターン発生方式
JP3395372B2 (ja) 表処理装置
JP2976671B2 (ja) データ展開方法
JPH0535912B2 (ja)
JP2000242802A (ja) 図形処理装置