JPH0816144A - アウトラインフォント展開方法およびアウトラインフォント展開装置 - Google Patents
アウトラインフォント展開方法およびアウトラインフォント展開装置Info
- Publication number
- JPH0816144A JPH0816144A JP6148253A JP14825394A JPH0816144A JP H0816144 A JPH0816144 A JP H0816144A JP 6148253 A JP6148253 A JP 6148253A JP 14825394 A JP14825394 A JP 14825394A JP H0816144 A JPH0816144 A JP H0816144A
- Authority
- JP
- Japan
- Prior art keywords
- outline font
- dot
- filling
- scanning direction
- outline
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control 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/24—Generation of individual character patterns
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/40—Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control 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/24—Generation of individual character patterns
- G09G5/26—Generation of individual character patterns for modifying the character dimensions, e.g. double width, double height
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【目的】 本発明は、ベクトルデータに基づいて描画さ
れたアウトラインフォントの内部を塗り潰して文字,記
号,図形等のドットパターンを作成する方法および装置
に関し、本来のアウトラインフォントの線幅を忠実に再
現できるようにして、ドットパターンの品質の向上をは
かることを目的とする。 【構成】 ベクトルデータの座標系をドットとドットと
の間の境界上に定義し、アウトラインフォントを境界上
に作成し、アウトラインフォントについて副走査方向へ
1ドットだけ移動した際の主走査方向への移動ドット数
を単位変化量として算出し、アウトラインフォントの主
走査方向の座標に前記単位変化量を2で除算した値を加
算しておいてから、前記境界上の主走査方向のスキャン
ラインを副走査方向へ移動させながら、各ドット位置で
スキャンラインとアウトラインフォントとの交点を求
め、塗り潰し範囲を求めるように構成する。
れたアウトラインフォントの内部を塗り潰して文字,記
号,図形等のドットパターンを作成する方法および装置
に関し、本来のアウトラインフォントの線幅を忠実に再
現できるようにして、ドットパターンの品質の向上をは
かることを目的とする。 【構成】 ベクトルデータの座標系をドットとドットと
の間の境界上に定義し、アウトラインフォントを境界上
に作成し、アウトラインフォントについて副走査方向へ
1ドットだけ移動した際の主走査方向への移動ドット数
を単位変化量として算出し、アウトラインフォントの主
走査方向の座標に前記単位変化量を2で除算した値を加
算しておいてから、前記境界上の主走査方向のスキャン
ラインを副走査方向へ移動させながら、各ドット位置で
スキャンラインとアウトラインフォントとの交点を求
め、塗り潰し範囲を求めるように構成する。
Description
【0001】(目次)産業上の利用分野 従来の技術(図42〜図54) 発明が解決しようとする課題(図55〜図57) 課題を解決するための手段(図1,図2) 作用(図1,図2) 実施例 (a)第1実施例の説明(図3〜図32) (b)第2実施例の説明(図33〜図41) 発明の効果
【0002】
【産業上の利用分野】本発明は、ベクトルデータに基づ
いて描画されたアウトラインフォントの内部を塗り潰し
て文字,記号,図形等のドットパターンを作成するアウ
トラインフォント展開方法およびアウトラインフォント
展開装置に関する。
いて描画されたアウトラインフォントの内部を塗り潰し
て文字,記号,図形等のドットパターンを作成するアウ
トラインフォント展開方法およびアウトラインフォント
展開装置に関する。
【0003】
【従来の技術】一般に、アウトラインフォント展開で
は、まず、文字,記号,図形等を示すベクトルデータに
基づいて、文字,記号,図形等を作成するための所定領
域を有するメモリ内に、輪郭線(アウトライン)を順番
に描画してアウトラインフォントを描画する。
は、まず、文字,記号,図形等を示すベクトルデータに
基づいて、文字,記号,図形等を作成するための所定領
域を有するメモリ内に、輪郭線(アウトライン)を順番
に描画してアウトラインフォントを描画する。
【0004】その後、前記メモリを各ラスタライン毎に
走査して輪郭線をサーチし、そのサーチした輪郭線の内
部を塗り潰していく。そして、この塗り潰し処理を各ラ
スタライン毎に繰り返し、塗り潰し処理が終了すると、
その塗り潰して得られたドットパターン(点の集合)
は、プリンタに印字するためのメモリや、ディスプレイ
に表示するためのメモリに転送され順次蓄えられる。
走査して輪郭線をサーチし、そのサーチした輪郭線の内
部を塗り潰していく。そして、この塗り潰し処理を各ラ
スタライン毎に繰り返し、塗り潰し処理が終了すると、
その塗り潰して得られたドットパターン(点の集合)
は、プリンタに印字するためのメモリや、ディスプレイ
に表示するためのメモリに転送され順次蓄えられる。
【0005】以下に、従来のアウトラインフォント展開
におけるアウトラインフォント内の塗り潰し手順を、図
42に示すフローチャート(ステップS1〜S9)に従
って図43〜図53を参照しながら説明する。 (1)展開対象の文字,記号,図形等を拡大もしくは縮
小するか否かを判断し(ステップS1)、拡大/縮小を
行なう必要がある場合(YES判定の場合)には、展開
対象のアウトラインデータ(ベクトルデータ)を、目的
とする出力ドットサイズに拡大もしくは縮小する(ステ
ップS2)。
におけるアウトラインフォント内の塗り潰し手順を、図
42に示すフローチャート(ステップS1〜S9)に従
って図43〜図53を参照しながら説明する。 (1)展開対象の文字,記号,図形等を拡大もしくは縮
小するか否かを判断し(ステップS1)、拡大/縮小を
行なう必要がある場合(YES判定の場合)には、展開
対象のアウトラインデータ(ベクトルデータ)を、目的
とする出力ドットサイズに拡大もしくは縮小する(ステ
ップS2)。
【0006】拡大/縮小を行なう必要がない場合(ステ
ップS1でNO判定の場合)、もしくは、ステップS2
により拡大/縮小を行なった後、以下のようにして、展
開対象の文字,記号,図形等についての塗り潰しテーブ
ルを作成する(ステップS3)。ここでは、例えば図4
3に示すようなアウトラインフォント(英字の“T”)
に対して塗り潰し処理を行なう場合について説明する。
ップS1でNO判定の場合)、もしくは、ステップS2
により拡大/縮小を行なった後、以下のようにして、展
開対象の文字,記号,図形等についての塗り潰しテーブ
ルを作成する(ステップS3)。ここでは、例えば図4
3に示すようなアウトラインフォント(英字の“T”)
に対して塗り潰し処理を行なう場合について説明する。
【0007】なお、図43中、右方向をX軸正方向、下
方向をY軸正方向とし、点線で区画された各四角形がド
ットを示している。また、図43中の左上隅のドットを
X−Y座標系の原点(0,0)とし、アウトラインフォ
ントの座標を、各ドット上に定義する。さらに、図43
に示すアウトラインフォントのベクトルデータは、図4
4に示すようなベクトルテーブルとして与えられる。
方向をY軸正方向とし、点線で区画された各四角形がド
ットを示している。また、図43中の左上隅のドットを
X−Y座標系の原点(0,0)とし、アウトラインフォ
ントの座標を、各ドット上に定義する。さらに、図43
に示すアウトラインフォントのベクトルデータは、図4
4に示すようなベクトルテーブルとして与えられる。
【0008】図44に示すベクトルテーブルでは、図4
3に示すアウトラインフォントの12個の頂点A〜Lの
X座標,Y座標が設定されている。このとき、各頂点A
〜Lには、オフセット“0”〜“12”が設定されてい
る。始点(終点)となる頂点としては原点に最も近い頂
点Aを選択し、頂点Aからアウトライン上に沿って順に
各頂点に対するオフセットが設定される。オフセット
“12”はオフセット“0”と同じ頂点Aつまり終点
で、始点と終点とが一致することにより、アウトライン
フォントの塗り潰し範囲が、一つの閉じた領域になって
いる。
3に示すアウトラインフォントの12個の頂点A〜Lの
X座標,Y座標が設定されている。このとき、各頂点A
〜Lには、オフセット“0”〜“12”が設定されてい
る。始点(終点)となる頂点としては原点に最も近い頂
点Aを選択し、頂点Aからアウトライン上に沿って順に
各頂点に対するオフセットが設定される。オフセット
“12”はオフセット“0”と同じ頂点Aつまり終点
で、始点と終点とが一致することにより、アウトライン
フォントの塗り潰し範囲が、一つの閉じた領域になって
いる。
【0009】(2)塗り潰しテーブルの作成に際して
は、まず、展開対象の全てのベクトルデータを検索し、
例えば図44に示すような展開対象のアウトラインフォ
ントのベクトルテーブルを得てから、このベクトルテー
ブルに基づいて、アウトラインを形成するベクトルを、
連続する上向き(Y軸負方向)のベクトル列と、連続す
る下向き(Y軸正方向)のベクトル列とに分割し、その
方向性を、図45に示すような塗り潰しテーブルに設定
する(図45中の“上”/“下”参照)。このとき、水
平な方向(X軸方向)のベクトルは無視するものとす
る。
は、まず、展開対象の全てのベクトルデータを検索し、
例えば図44に示すような展開対象のアウトラインフォ
ントのベクトルテーブルを得てから、このベクトルテー
ブルに基づいて、アウトラインを形成するベクトルを、
連続する上向き(Y軸負方向)のベクトル列と、連続す
る下向き(Y軸正方向)のベクトル列とに分割し、その
方向性を、図45に示すような塗り潰しテーブルに設定
する(図45中の“上”/“下”参照)。このとき、水
平な方向(X軸方向)のベクトルは無視するものとす
る。
【0010】具体的には、図43に示す例では、点Bか
ら点Cへの下向きのベクトル列Iと、点Cから点Dへの
上向きのベクトル列IIと、点Eから点Fを経由して点G
に到る下向きのベクトル列III と、点Hから点Iを経由
して点Jに到る上向きのベクトル列IVと、点Kから点L
への下向きのベクトル列Vと、点Lから点Aへの上向き
のベクトル列VIとの6つに分割され、図45に示す塗り
潰しテーブルでは、各ベクトル列I〜VIがそれぞれ番号
“0”〜“5”に対応している。
ら点Cへの下向きのベクトル列Iと、点Cから点Dへの
上向きのベクトル列IIと、点Eから点Fを経由して点G
に到る下向きのベクトル列III と、点Hから点Iを経由
して点Jに到る上向きのベクトル列IVと、点Kから点L
への下向きのベクトル列Vと、点Lから点Aへの上向き
のベクトル列VIとの6つに分割され、図45に示す塗り
潰しテーブルでは、各ベクトル列I〜VIがそれぞれ番号
“0”〜“5”に対応している。
【0011】(3)各ベクトル列をなすベクトルのうち
最小Y座標をもつものについてのオフセットを、ベクト
ルテーブルから検索し、開始ベクトルとして塗り潰しテ
ーブルに設定する。同様に、各ベクトル列をなすベクト
ルのうち最大Y座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
塗り潰しテーブルに設定する。また、各ベクトル列につ
いて、上述のように設定された開始ベクトルのX座標
を、ベクトルテーブルから検索し、現交点(X)の初期
値として塗り潰しテーブルに設定する。
最小Y座標をもつものについてのオフセットを、ベクト
ルテーブルから検索し、開始ベクトルとして塗り潰しテ
ーブルに設定する。同様に、各ベクトル列をなすベクト
ルのうち最大Y座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
塗り潰しテーブルに設定する。また、各ベクトル列につ
いて、上述のように設定された開始ベクトルのX座標
を、ベクトルテーブルから検索し、現交点(X)の初期
値として塗り潰しテーブルに設定する。
【0012】(4)塗り潰しテーブルに設定したベクト
ル列毎に、各ベクトル列の開始ベクトルについて、Y軸
正方向へ1ドットだけ移動した際のX軸方向への変化量
(ドット数)を、ベクトルテーブルのデータに基づいて
算出し、単位変化量として塗り潰しテーブルに設定す
る。例えば、図43に示すように、ベクトル列I,III,I
V,VI の開始ベクトルはY軸に平行でX軸方向の変化を
生じないため、単位変化量は0であり、ベクトル列IIの
開始ベクトルは、Y軸正方向へ1ドットだけ移動すると
X軸正方向へ1ドットだけ変化するので、単位変化量は
+1であり、ベクトル列Vの開始ベクトルは、Y軸正方
向へ1ドットだけ移動するとX軸負方向へ1ドットだけ
変化するので、単位変化量は−1である。
ル列毎に、各ベクトル列の開始ベクトルについて、Y軸
正方向へ1ドットだけ移動した際のX軸方向への変化量
(ドット数)を、ベクトルテーブルのデータに基づいて
算出し、単位変化量として塗り潰しテーブルに設定す
る。例えば、図43に示すように、ベクトル列I,III,I
V,VI の開始ベクトルはY軸に平行でX軸方向の変化を
生じないため、単位変化量は0であり、ベクトル列IIの
開始ベクトルは、Y軸正方向へ1ドットだけ移動すると
X軸正方向へ1ドットだけ変化するので、単位変化量は
+1であり、ベクトル列Vの開始ベクトルは、Y軸正方
向へ1ドットだけ移動するとX軸負方向へ1ドットだけ
変化するので、単位変化量は−1である。
【0013】(5)以上の(2)〜(4)の処理によ
り、図45に示すように各種値を設定された塗り潰しテ
ーブルが作成され、この塗り潰しテーブルをもとに、主
走査方向をX軸正方向、副走査方向を下軸正方向とする
Yスキャンを行なって、各ベクトル列とYスキャンライ
ンとの交点を算出する。以下、目的とする出力Y座標サ
イズ(縦方向サイズ)分だけ、つまりステップS4にお
いて全てのYスキャンラインについて処理を終了したと
判断されるまで、下記(6)〜(8)と同様の処理を繰
り返し行なう。
り、図45に示すように各種値を設定された塗り潰しテ
ーブルが作成され、この塗り潰しテーブルをもとに、主
走査方向をX軸正方向、副走査方向を下軸正方向とする
Yスキャンを行なって、各ベクトル列とYスキャンライ
ンとの交点を算出する。以下、目的とする出力Y座標サ
イズ(縦方向サイズ)分だけ、つまりステップS4にお
いて全てのYスキャンラインについて処理を終了したと
判断されるまで、下記(6)〜(8)と同様の処理を繰
り返し行なう。
【0014】(6)即ち、全てのYスキャンラインにつ
いて処理を終了したか否かを判断しながら(ステップS
4)、図46,図48に示すようにYスキャンラインを
Y座標0の位置からY軸正方向へ1ドットずつ移動し、
各位置で、塗り潰しテーブルのデータに基づいて現Yス
キャンラインとアウトラインフォントとの全ての交点を
算出し、塗り潰しテーブルの更新を行なう(ステップS
5)。ここで算出される交点は、塗り潰しテーブルの現
交点そのものである。
いて処理を終了したか否かを判断しながら(ステップS
4)、図46,図48に示すようにYスキャンラインを
Y座標0の位置からY軸正方向へ1ドットずつ移動し、
各位置で、塗り潰しテーブルのデータに基づいて現Yス
キャンラインとアウトラインフォントとの全ての交点を
算出し、塗り潰しテーブルの更新を行なう(ステップS
5)。ここで算出される交点は、塗り潰しテーブルの現
交点そのものである。
【0015】このとき、Yスキャンラインが交わってい
るベクトル列については、Yスキャンラインが1ドット
だけ移動する毎に単位変化量を現交点(X)に1回加算
することにより、塗り潰しテーブルの更新を行なう。こ
れにより、塗り潰しテーブルにおいて、Yスキャンライ
ンの交わるベクトル列についての現交点(X)を参照す
るだけで、Yスキャンラインとアウトラインフォントと
の交点を得ることができる。
るベクトル列については、Yスキャンラインが1ドット
だけ移動する毎に単位変化量を現交点(X)に1回加算
することにより、塗り潰しテーブルの更新を行なう。こ
れにより、塗り潰しテーブルにおいて、Yスキャンライ
ンの交わるベクトル列についての現交点(X)を参照す
るだけで、Yスキャンラインとアウトラインフォントと
の交点を得ることができる。
【0016】例えば、Yスキャンラインを図46に示す
Y座標0の位置から図48に示すY座標1の位置へ移動
させると、Yスキャンラインはベクトル列IおよびVIと
交わることになり、塗り潰しテーブルから、その時の交
点のX座標として“10”および“0”が得られる〔図
47中の網掛け部分および図49参照〕。 (7)ステップS5で得られた全ての交点のソートを行
なってから(ステップS6)、ソートされた交点間を交
互に塗り潰し、現Y座標のドットメモリに転送する(ス
テップS7)。例えば、図48に示す位置で図49に示
すように算出された交点を、図50に示すように塗り潰
す。なお、図48,図49に示す状態では、交点が2つ
であるので、これらの交点間を塗り潰すだけでよいが、
より多くの交点が得られた場合(例えばY座標3の位置
がYスキャンラインとなると4つの交点が得られる)、
どの交点間を塗り潰すべきかを判断するために、ステッ
プS6によるソート処理が必要になる。
Y座標0の位置から図48に示すY座標1の位置へ移動
させると、Yスキャンラインはベクトル列IおよびVIと
交わることになり、塗り潰しテーブルから、その時の交
点のX座標として“10”および“0”が得られる〔図
47中の網掛け部分および図49参照〕。 (7)ステップS5で得られた全ての交点のソートを行
なってから(ステップS6)、ソートされた交点間を交
互に塗り潰し、現Y座標のドットメモリに転送する(ス
テップS7)。例えば、図48に示す位置で図49に示
すように算出された交点を、図50に示すように塗り潰
す。なお、図48,図49に示す状態では、交点が2つ
であるので、これらの交点間を塗り潰すだけでよいが、
より多くの交点が得られた場合(例えばY座標3の位置
がYスキャンラインとなると4つの交点が得られる)、
どの交点間を塗り潰すべきかを判断するために、ステッ
プS6によるソート処理が必要になる。
【0017】(8)現Yスキャンラインと交差したベク
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差するかを調査し、交差しない場合
(ベクトルオフセットを更新する場合つまりステップS
8でYES判定の場合)には、現ベクトル列の開始ベク
トルのオフセットを次のベクトルに変更し、変更したベ
クトルのX軸方向の単位変化量を算出して塗り潰しテー
ブルに設定するとともに、更新した開始ベクトルのX座
標を現交点に設定して更新してから(ステップS9)、
ステップS4へ移行する。
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差するかを調査し、交差しない場合
(ベクトルオフセットを更新する場合つまりステップS
8でYES判定の場合)には、現ベクトル列の開始ベク
トルのオフセットを次のベクトルに変更し、変更したベ
クトルのX軸方向の単位変化量を算出して塗り潰しテー
ブルに設定するとともに、更新した開始ベクトルのX座
標を現交点に設定して更新してから(ステップS9)、
ステップS4へ移行する。
【0018】なお、図45に示すように、ステップS3
による塗り潰しテーブル作成時に、全ベクトル列につい
ての単位変化量,現交点を塗り潰しテーブルに設定して
おけば、ステップS9においては、前述のような更新処
理を行なう必要はなく、塗り潰しテーブル上で現交点を
参照すべきベクトル列を、次のベクトル列に切り換える
ような更新処理を行なうだけでよい。
による塗り潰しテーブル作成時に、全ベクトル列につい
ての単位変化量,現交点を塗り潰しテーブルに設定して
おけば、ステップS9においては、前述のような更新処
理を行なう必要はなく、塗り潰しテーブル上で現交点を
参照すべきベクトル列を、次のベクトル列に切り換える
ような更新処理を行なうだけでよい。
【0019】一方、現Yスキャンラインと交差したベク
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS8でNO判定の場合)
には、そのままステップS4に移行する。なお、図52
に示すように、YスキャンラインがY座標4に位置する
場合には、塗り潰しテーブルは、図51に示すように更
新されている。
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS8でNO判定の場合)
には、そのままステップS4に移行する。なお、図52
に示すように、YスキャンラインがY座標4に位置する
場合には、塗り潰しテーブルは、図51に示すように更
新されている。
【0020】以上のような塗り潰し処理を行なうことに
より、例えば、図43に示すようなアウトラインフォン
トについて、図53に示すようなドットパターンを得る
ことができる。
より、例えば、図43に示すようなアウトラインフォン
トについて、図53に示すようなドットパターンを得る
ことができる。
【0021】
【発明が解決しようとする課題】しかしながら、上述し
た従来のアウトラインフォント展開手段では、アウトラ
インフォントの座標を各ドット上に定義するために、例
えば、図54に示すように、実際のアウトラインフォン
トでは点A,B間の線幅DY1が2ドットであるもの
が、塗り潰し処理を行なうと、図55に示すように、線
幅(DY2)が1ドット分増加して3ドット分となり、
アウトラインフォント本来の線幅を忠実に再現すること
ができない。
た従来のアウトラインフォント展開手段では、アウトラ
インフォントの座標を各ドット上に定義するために、例
えば、図54に示すように、実際のアウトラインフォン
トでは点A,B間の線幅DY1が2ドットであるもの
が、塗り潰し処理を行なうと、図55に示すように、線
幅(DY2)が1ドット分増加して3ドット分となり、
アウトラインフォント本来の線幅を忠実に再現すること
ができない。
【0022】特に、図56に示すように、中央部に幅1
ドット分の空白部分のあるアウトラインフォントを従来
の手段により塗り潰した場合、図57に示すように、そ
の空白部分まで塗り潰されてしまう。このような現象
は、特に、低解像度用のドットパターンの品質を著しく
低下させる要因となっている。
ドット分の空白部分のあるアウトラインフォントを従来
の手段により塗り潰した場合、図57に示すように、そ
の空白部分まで塗り潰されてしまう。このような現象
は、特に、低解像度用のドットパターンの品質を著しく
低下させる要因となっている。
【0023】本発明は、このような課題に鑑み創案され
たもので、本来のアウトラインフォントの線幅を忠実に
再現できるようにして、ドットパターンの品質の向上を
はかった、アウトラインフォント展開方法およびアウト
ラインフォント展開装置を提供することを目的とする。
たもので、本来のアウトラインフォントの線幅を忠実に
再現できるようにして、ドットパターンの品質の向上を
はかった、アウトラインフォント展開方法およびアウト
ラインフォント展開装置を提供することを目的とする。
【0024】
【課題を解決するための手段】このため、本発明のアウ
トラインフォント展開方法は、ベクトルデータに基づい
て輪郭線を順番に描画してアウトラインフォントを作成
し、アウトラインフォントの内部を塗り潰してドットパ
ターンを作成するものにおいて、ベクトルデータの座
標系をドットとドットとの間の境界上に定義して、アウ
トラインフォントをドット境界上に作成し、アウトラ
インフォントについて、副走査方向へ1ドットだけ移動
した際の主走査方向への移動ドット数を単位変化量とし
て算出し、アウトラインフォントの主走査方向の座標
に、単位変化量を2で除算した値を加算しておいてか
ら、主走査方向のスキャンラインを副走査方向へ1ド
ットずつ移動させながら、各位置でスキャンラインとア
ウトラインフォントとの交点を求めることにより、スキ
ャンライン上の主走査方向の塗り潰し範囲を求めること
を特徴としている(請求項1)。
トラインフォント展開方法は、ベクトルデータに基づい
て輪郭線を順番に描画してアウトラインフォントを作成
し、アウトラインフォントの内部を塗り潰してドットパ
ターンを作成するものにおいて、ベクトルデータの座
標系をドットとドットとの間の境界上に定義して、アウ
トラインフォントをドット境界上に作成し、アウトラ
インフォントについて、副走査方向へ1ドットだけ移動
した際の主走査方向への移動ドット数を単位変化量とし
て算出し、アウトラインフォントの主走査方向の座標
に、単位変化量を2で除算した値を加算しておいてか
ら、主走査方向のスキャンラインを副走査方向へ1ド
ットずつ移動させながら、各位置でスキャンラインとア
ウトラインフォントとの交点を求めることにより、スキ
ャンライン上の主走査方向の塗り潰し範囲を求めること
を特徴としている(請求項1)。
【0025】このようにしてスキャンラインを副走査方
向に移動させて副走査方向の全ての位置でアウトライン
フォントの塗り潰し範囲を求めた後、主走査方向と副
走査方向とを入れ替え、アウトラインフォントについ
て、副走査方向へ1ドットだけ移動した際の主走査方向
への移動ドット数を単位変化量として算出し、アウト
ラインフォントの主走査方向の座標に、単位変化量を2
で除算した値を加算しておいてから、主走査方向のス
キャンラインを副走査方向へ1ドットずつ移動させなが
ら、各位置でスキャンラインとアウトラインフォントと
の交点を求めることにより、塗り潰し範囲では欠落して
いた塗り潰し対象部分を求めて補足し、塗り潰し範囲を
補正するようにしてもよい(請求項2)。
向に移動させて副走査方向の全ての位置でアウトライン
フォントの塗り潰し範囲を求めた後、主走査方向と副
走査方向とを入れ替え、アウトラインフォントについ
て、副走査方向へ1ドットだけ移動した際の主走査方向
への移動ドット数を単位変化量として算出し、アウト
ラインフォントの主走査方向の座標に、単位変化量を2
で除算した値を加算しておいてから、主走査方向のス
キャンラインを副走査方向へ1ドットずつ移動させなが
ら、各位置でスキャンラインとアウトラインフォントと
の交点を求めることにより、塗り潰し範囲では欠落して
いた塗り潰し対象部分を求めて補足し、塗り潰し範囲を
補正するようにしてもよい(請求項2)。
【0026】図1は本発明の原理ブロック図で、上述し
たアウトラインフォント展開方法を実現するための装置
を示しており、この装置は、ベクトルデータに基づいて
輪郭線を順番に描画してアウトラインフォントを作成
し、アウトラインフォントの内部を塗り潰してドットパ
ターンを作成するものである。この図1において、1は
ベクトルデータの座標系をドットとドットとの間の境界
上に定義することによりドット境界上に作成されるアウ
トラインフォントのベクトルデータを格納するアウトラ
インデータ格納部、2はアウトラインフォント内の塗り
潰し範囲を求めるための塗り潰しテーブルを格納する塗
り潰しテーブル格納部である。
たアウトラインフォント展開方法を実現するための装置
を示しており、この装置は、ベクトルデータに基づいて
輪郭線を順番に描画してアウトラインフォントを作成
し、アウトラインフォントの内部を塗り潰してドットパ
ターンを作成するものである。この図1において、1は
ベクトルデータの座標系をドットとドットとの間の境界
上に定義することによりドット境界上に作成されるアウ
トラインフォントのベクトルデータを格納するアウトラ
インデータ格納部、2はアウトラインフォント内の塗り
潰し範囲を求めるための塗り潰しテーブルを格納する塗
り潰しテーブル格納部である。
【0027】また、3は塗り潰しテーブル作成部で、こ
の塗り潰しテーブル作成部3は、アウトラインデータ格
納部1のアウトラインフォントのベクトルデータに基づ
いて、アウトラインフォントを副走査方向に連続するベ
クトル列に分割し、ベクトル列毎に、副走査方向の順序
に従う走査開始位置情報および走査終了位置情報を塗り
潰しテーブルに設定し、また、ベクトル列毎に、走査開
始位置情報についての主走査方向の座標をスキャンライ
ンとの現交点情報の初期値として塗り潰しテーブルに設
定し、さらに、ベクトル列毎に、副走査方向へ1ドット
だけ移動した際の主走査方向への移動ドット数を単位変
化量として算出して塗り潰しテーブルに設定するととも
に、ベクトル列毎に、現交点情報の初期値に単位変化量
を2で除算した値を加算して、塗り潰しテーブルを作成
するものである。
の塗り潰しテーブル作成部3は、アウトラインデータ格
納部1のアウトラインフォントのベクトルデータに基づ
いて、アウトラインフォントを副走査方向に連続するベ
クトル列に分割し、ベクトル列毎に、副走査方向の順序
に従う走査開始位置情報および走査終了位置情報を塗り
潰しテーブルに設定し、また、ベクトル列毎に、走査開
始位置情報についての主走査方向の座標をスキャンライ
ンとの現交点情報の初期値として塗り潰しテーブルに設
定し、さらに、ベクトル列毎に、副走査方向へ1ドット
だけ移動した際の主走査方向への移動ドット数を単位変
化量として算出して塗り潰しテーブルに設定するととも
に、ベクトル列毎に、現交点情報の初期値に単位変化量
を2で除算した値を加算して、塗り潰しテーブルを作成
するものである。
【0028】4は塗り潰し処理部で、この塗り潰し処理
部4は、塗り潰しテーブル格納部2の塗り潰しテーブル
を参照することにより、副走査方向へ1ドットずつ移動
する主走査方向のスキャンラインと交差するベクトル列
の現交点情報を、スキャンラインとアウトラインフォン
トとの交点として求め、スキャンライン上の主走査方向
の塗り潰し範囲を求めて、その塗り潰し範囲に対する塗
り潰し処理を行なうとともに、スキャンラインと交差す
るベクトル列についての現交点情報に単位変化量を加算
して塗り潰しテーブルを更新し、スキャンラインを副走
査方向へ1ドットずつ移動させるものである。
部4は、塗り潰しテーブル格納部2の塗り潰しテーブル
を参照することにより、副走査方向へ1ドットずつ移動
する主走査方向のスキャンラインと交差するベクトル列
の現交点情報を、スキャンラインとアウトラインフォン
トとの交点として求め、スキャンライン上の主走査方向
の塗り潰し範囲を求めて、その塗り潰し範囲に対する塗
り潰し処理を行なうとともに、スキャンラインと交差す
るベクトル列についての現交点情報に単位変化量を加算
して塗り潰しテーブルを更新し、スキャンラインを副走
査方向へ1ドットずつ移動させるものである。
【0029】5は塗り潰し処理部4によりアウトライン
フォントを一スキャンライン毎に塗り潰して作成された
ドットパターンを格納するドットデータ格納部である
(請求項3)。さらに、補正テーブル格納部6,補正テ
ーブル作成部7および補正部8をそなえてもよい。
フォントを一スキャンライン毎に塗り潰して作成された
ドットパターンを格納するドットデータ格納部である
(請求項3)。さらに、補正テーブル格納部6,補正テ
ーブル作成部7および補正部8をそなえてもよい。
【0030】ここで、補正テーブル格納部6は、塗り潰
し処理部4による塗り潰し処理終了後に、アウトライン
フォント内の塗り潰し範囲を補正するための補正テーブ
ルを格納するものである。補正テーブル作成部7は、主
走査方向と副走査方向とを入れ替え、アウトラインデー
タ格納部1のアウトラインフォントのベクトルデータに
基づいて、アウトラインフォントを副走査方向に連続す
るベクトル列に分割し、ベクトル列毎に、副走査方向の
順序に従う走査開始位置情報および走査終了位置情報を
補正テーブルに設定し、また、ベクトル列毎に、走査開
始位置情報についての主走査方向の座標をスキャンライ
ンとの現交点情報の初期値として補正テーブルに設定
し、さらに、ベクトル列毎に、副走査方向へ1ドットだ
け移動した際の主走査方向への移動ドット数を単位変化
量として算出して補正テーブルに設定するとともに、ベ
クトル列毎に、現交点情報の初期値に単位変化量を2で
除算した値を加算して、補正テーブルを作成するもので
ある。
し処理部4による塗り潰し処理終了後に、アウトライン
フォント内の塗り潰し範囲を補正するための補正テーブ
ルを格納するものである。補正テーブル作成部7は、主
走査方向と副走査方向とを入れ替え、アウトラインデー
タ格納部1のアウトラインフォントのベクトルデータに
基づいて、アウトラインフォントを副走査方向に連続す
るベクトル列に分割し、ベクトル列毎に、副走査方向の
順序に従う走査開始位置情報および走査終了位置情報を
補正テーブルに設定し、また、ベクトル列毎に、走査開
始位置情報についての主走査方向の座標をスキャンライ
ンとの現交点情報の初期値として補正テーブルに設定
し、さらに、ベクトル列毎に、副走査方向へ1ドットだ
け移動した際の主走査方向への移動ドット数を単位変化
量として算出して補正テーブルに設定するとともに、ベ
クトル列毎に、現交点情報の初期値に単位変化量を2で
除算した値を加算して、補正テーブルを作成するもので
ある。
【0031】補正部8は、補正テーブル格納部6の補正
テーブルを参照することにより、副走査方向へ1ドット
ずつ移動する主走査方向のスキャンラインと交差するベ
クトル列の現交点情報を、スキャンラインとアウトライ
ンフォントとの交点として求め、スキャンライン上の主
走査方向の塗り潰し範囲を求めて、その塗り潰し範囲が
1ドット以下である場合にその塗り潰し範囲に対する塗
り潰し処理を行ないドットデータ格納部のドットパター
ンに対する補足・書込を行なうとともに、スキャンライ
ンと交差するベクトル列についての現交点情報に単位変
化量を加算して補正テーブルを更新し、スキャンライン
を副走査方向へ1ドットずつ移動させるものである(請
求項4)。
テーブルを参照することにより、副走査方向へ1ドット
ずつ移動する主走査方向のスキャンラインと交差するベ
クトル列の現交点情報を、スキャンラインとアウトライ
ンフォントとの交点として求め、スキャンライン上の主
走査方向の塗り潰し範囲を求めて、その塗り潰し範囲が
1ドット以下である場合にその塗り潰し範囲に対する塗
り潰し処理を行ないドットデータ格納部のドットパター
ンに対する補足・書込を行なうとともに、スキャンライ
ンと交差するベクトル列についての現交点情報に単位変
化量を加算して補正テーブルを更新し、スキャンライン
を副走査方向へ1ドットずつ移動させるものである(請
求項4)。
【0032】図2は本発明の原理ブロック図で、この図
2に示すアウトラインフォント展開装置は、ベクトルデ
ータに基づいて輪郭線を順番に描画してアウトラインフ
ォントを作成し、アウトラインフォントの内部を塗り潰
してドットパターンを作成するものであり、図2におい
て、11は第1の展開処理部、12は第2の展開処理
部、13は切換部である。
2に示すアウトラインフォント展開装置は、ベクトルデ
ータに基づいて輪郭線を順番に描画してアウトラインフ
ォントを作成し、アウトラインフォントの内部を塗り潰
してドットパターンを作成するものであり、図2におい
て、11は第1の展開処理部、12は第2の展開処理
部、13は切換部である。
【0033】ここで、第1の展開処理部11は、ベクト
ルデータの座標系をドット上に定義し、ドット上に作成
したアウトラインフォントに対して塗り潰し処理を行な
うものであり、第2の展開処理部12は、ベクトルデー
タの座標系をドットとドットとの間の境界上に定義し、
ドット境界上に作成したアウトラインフォントに対して
塗り潰し処理を行なうものであり、切換部13は、塗り
潰し処理対象のアウトラインフォントについての情報に
応じて、第1の展開処理部11または第2の展開処理部
12のいずれか一方に選択的に切り換えて、アウトライ
ンフォントに対する塗り潰し処理を行なわせるものであ
る(請求項5,14)。
ルデータの座標系をドット上に定義し、ドット上に作成
したアウトラインフォントに対して塗り潰し処理を行な
うものであり、第2の展開処理部12は、ベクトルデー
タの座標系をドットとドットとの間の境界上に定義し、
ドット境界上に作成したアウトラインフォントに対して
塗り潰し処理を行なうものであり、切換部13は、塗り
潰し処理対象のアウトラインフォントについての情報に
応じて、第1の展開処理部11または第2の展開処理部
12のいずれか一方に選択的に切り換えて、アウトライ
ンフォントに対する塗り潰し処理を行なわせるものであ
る(請求項5,14)。
【0034】このとき、塗り潰し処理対象のアウトライ
ンフォントについての情報を、作成すべきドットパター
ンのドットサイズとし、切換部13が、そのドットサイ
ズが予め設定された閾値以上または閾値よりも大きい場
合には、第1の展開処理部11に切り換える一方、その
ドットサイズが閾値未満または閾値以下である場合に
は、第2の展開処理部12に切り換えるように構成して
もよい(請求項6,15)。
ンフォントについての情報を、作成すべきドットパター
ンのドットサイズとし、切換部13が、そのドットサイ
ズが予め設定された閾値以上または閾値よりも大きい場
合には、第1の展開処理部11に切り換える一方、その
ドットサイズが閾値未満または閾値以下である場合に
は、第2の展開処理部12に切り換えるように構成して
もよい(請求項6,15)。
【0035】また、塗り潰し処理対象のアウトラインフ
ォントについての情報を、そのアウトラインフォントの
書体とし、切換部13が、そのアウトラインフォントの
書体に応じて、第1の展開処理部11と第2の展開処理
部12との切換を行なうように構成してもよい(請求項
7,16)。この場合、ドットサイズの閾値と第1の展
開処理部11または第2の展開処理部12のいずれか一
方を指定する指定情報とを書体に応じて予め設定してお
き、切換部13が、作成すべきドットパターンのドット
サイズが閾値以上または閾値よりも大きい場合には、第
1の展開処理部11に切り換える一方、そのドットサイ
ズが閾値未満または閾値以下である場合には、前記指定
情報に応じて第1の展開処理部11と第2の展開処理部
12との切換を行なうように構成することもできる(請
求項8,17)。
ォントについての情報を、そのアウトラインフォントの
書体とし、切換部13が、そのアウトラインフォントの
書体に応じて、第1の展開処理部11と第2の展開処理
部12との切換を行なうように構成してもよい(請求項
7,16)。この場合、ドットサイズの閾値と第1の展
開処理部11または第2の展開処理部12のいずれか一
方を指定する指定情報とを書体に応じて予め設定してお
き、切換部13が、作成すべきドットパターンのドット
サイズが閾値以上または閾値よりも大きい場合には、第
1の展開処理部11に切り換える一方、そのドットサイ
ズが閾値未満または閾値以下である場合には、前記指定
情報に応じて第1の展開処理部11と第2の展開処理部
12との切換を行なうように構成することもできる(請
求項8,17)。
【0036】さらに、塗り潰し処理対象のアウトライン
フォントについての情報を、そのアウトラインフォント
のコード範囲とし、切換部13が、そのアウトラインフ
ォントのコード範囲に応じて、第1の展開処理部11と
第2の展開処理部12との切換を行なうように構成して
もよい(請求項9,18)。この場合、ドットサイズの
閾値と第1の展開処理部11または第2の展開処理部1
2のいずれか一方を指定する指定情報とをコード範囲に
応じて予め設定しておき、切換部13が、作成すべきド
ットパターンのドットサイズが閾値以上または閾値より
も大きい場合には、第1の展開処理部11に切り換える
一方、そのドットサイズが閾値未満または閾値以下であ
る場合には、前記指定情報に応じて第1の展開処理部1
1と第2の展開処理部12との切換を行なうように構成
することもできる(請求項10,19)。
フォントについての情報を、そのアウトラインフォント
のコード範囲とし、切換部13が、そのアウトラインフ
ォントのコード範囲に応じて、第1の展開処理部11と
第2の展開処理部12との切換を行なうように構成して
もよい(請求項9,18)。この場合、ドットサイズの
閾値と第1の展開処理部11または第2の展開処理部1
2のいずれか一方を指定する指定情報とをコード範囲に
応じて予め設定しておき、切換部13が、作成すべきド
ットパターンのドットサイズが閾値以上または閾値より
も大きい場合には、第1の展開処理部11に切り換える
一方、そのドットサイズが閾値未満または閾値以下であ
る場合には、前記指定情報に応じて第1の展開処理部1
1と第2の展開処理部12との切換を行なうように構成
することもできる(請求項10,19)。
【0037】またさらに、塗り潰し処理対象のアウトラ
インフォントについての情報を、そのアウトラインフォ
ント自体とし、切換部13が、そのアウトラインフォン
ト毎に、第1の展開処理部11と第2の展開処理部12
との切換を行なうように構成してもよい(請求項11,
20)。この場合、ドットサイズの閾値と第1の展開処
理部11または第2の展開処理部12のいずれか一方を
指定する指定情報とを各文字毎に予め設定しておき、切
換部13が、作成すべきドットパターンのドットサイズ
が閾値以上または閾値よりも大きい場合には、第1の展
開処理部11に切り換える一方、そのドットサイズが閾
値未満または閾値以下である場合には、前記指定情報に
応じて第1の展開処理部11と第2の展開処理部12と
の切換を行なうように構成することもできる(請求項1
2,21)。
インフォントについての情報を、そのアウトラインフォ
ント自体とし、切換部13が、そのアウトラインフォン
ト毎に、第1の展開処理部11と第2の展開処理部12
との切換を行なうように構成してもよい(請求項11,
20)。この場合、ドットサイズの閾値と第1の展開処
理部11または第2の展開処理部12のいずれか一方を
指定する指定情報とを各文字毎に予め設定しておき、切
換部13が、作成すべきドットパターンのドットサイズ
が閾値以上または閾値よりも大きい場合には、第1の展
開処理部11に切り換える一方、そのドットサイズが閾
値未満または閾値以下である場合には、前記指定情報に
応じて第1の展開処理部11と第2の展開処理部12と
の切換を行なうように構成することもできる(請求項1
2,21)。
【0038】さらにまた、塗り潰し処理対象のアウトラ
インフォントについての情報を、そのアウトラインフォ
ントの展開結果を出力する出力装置とし、切換部13
が、出力装置に応じて第1の展開処理部11と第2の展
開処理部12との切換を行なうように構成してもよい
(請求項13,22)。
インフォントについての情報を、そのアウトラインフォ
ントの展開結果を出力する出力装置とし、切換部13
が、出力装置に応じて第1の展開処理部11と第2の展
開処理部12との切換を行なうように構成してもよい
(請求項13,22)。
【0039】
【作用】上述した本発明のアウトラインフォント展開方
法および装置では、アウトラインデータ格納部1に、ベ
クトルデータの座標系をドットとドットとの間の境界上
に定義することによりドット境界上に作成されるアウト
ラインフォントのベクトルデータが格納されている。
法および装置では、アウトラインデータ格納部1に、ベ
クトルデータの座標系をドットとドットとの間の境界上
に定義することによりドット境界上に作成されるアウト
ラインフォントのベクトルデータが格納されている。
【0040】そして、塗り潰しテーブル作成部3におい
て、まず、アウトラインデータ格納部1のアウトライン
フォントのベクトルデータに基づき、アウトラインフォ
ントが副走査方向に連続するベクトル列に分割される。
また、ベクトル列毎に、副走査方向の順序に従う走査開
始位置情報および走査終了位置情報と、走査開始位置情
報についての主走査方向の座標(スキャンラインとの現
交点情報の初期値)と、副走査方向へ1ドットだけ移動
した際の主走査方向への移動ドット数(単位変化量)と
が塗り潰しテーブル格納部2の塗り潰しテーブルに設定
される。さらに、ベクトル列毎に、現交点情報の初期値
に単位変化量を2で除算した値を加算しておく。以上の
処理により、塗り潰しテーブル格納部2に塗り潰しテー
ブルが作成される。この後、塗り潰し処理部4におい
て、塗り潰しテーブル格納部3の塗り潰しテーブルを参
照することにより、副走査方向へ1ドットずつ移動する
主走査方向のスキャンラインと交差するベクトル列の現
交点情報が、スキャンラインとアウトラインフォントと
の交点として求められ、スキャンライン上の主走査方向
の塗り潰し範囲が求められて、その塗り潰し範囲に対す
る塗り潰し処理が行なわれ、その処理結果がドットデー
タ格納部5に格納される。そして、スキャンラインと交
差するベクトル列についての現交点情報に単位変化量が
加算されて塗り潰しテーブルが更新され、スキャンライ
ンが副走査方向へ1ドットずつ移動する。
て、まず、アウトラインデータ格納部1のアウトライン
フォントのベクトルデータに基づき、アウトラインフォ
ントが副走査方向に連続するベクトル列に分割される。
また、ベクトル列毎に、副走査方向の順序に従う走査開
始位置情報および走査終了位置情報と、走査開始位置情
報についての主走査方向の座標(スキャンラインとの現
交点情報の初期値)と、副走査方向へ1ドットだけ移動
した際の主走査方向への移動ドット数(単位変化量)と
が塗り潰しテーブル格納部2の塗り潰しテーブルに設定
される。さらに、ベクトル列毎に、現交点情報の初期値
に単位変化量を2で除算した値を加算しておく。以上の
処理により、塗り潰しテーブル格納部2に塗り潰しテー
ブルが作成される。この後、塗り潰し処理部4におい
て、塗り潰しテーブル格納部3の塗り潰しテーブルを参
照することにより、副走査方向へ1ドットずつ移動する
主走査方向のスキャンラインと交差するベクトル列の現
交点情報が、スキャンラインとアウトラインフォントと
の交点として求められ、スキャンライン上の主走査方向
の塗り潰し範囲が求められて、その塗り潰し範囲に対す
る塗り潰し処理が行なわれ、その処理結果がドットデー
タ格納部5に格納される。そして、スキャンラインと交
差するベクトル列についての現交点情報に単位変化量が
加算されて塗り潰しテーブルが更新され、スキャンライ
ンが副走査方向へ1ドットずつ移動する。
【0041】このように、本発明では、ベクトルデータ
の座標系をドットとドットとの間の境界上に定義して、
アウトラインフォントをドット境界上に作成し、このよ
うなアウトラインフォントの内部を塗り潰している。こ
の際に、アウトラインフォントの主走査方向の座標に、
単位変化量を2で除算した値を予め加算しておくことに
より、スキャンラインを座標と座標との間つまりドット
上に配置しているのと同様の状態になり、ドット境界上
のアウトラインフォントの内部を塗り潰すことができ、
アウトラインフォント本来の線幅が忠実に再現される
(請求項1,3)。
の座標系をドットとドットとの間の境界上に定義して、
アウトラインフォントをドット境界上に作成し、このよ
うなアウトラインフォントの内部を塗り潰している。こ
の際に、アウトラインフォントの主走査方向の座標に、
単位変化量を2で除算した値を予め加算しておくことに
より、スキャンラインを座標と座標との間つまりドット
上に配置しているのと同様の状態になり、ドット境界上
のアウトラインフォントの内部を塗り潰すことができ、
アウトラインフォント本来の線幅が忠実に再現される
(請求項1,3)。
【0042】また、塗り潰し処理部4による塗り潰し処
理終了後に、補正テーブル作成部7において、主走査方
向と副走査方向とを入れ替え、アウトラインデータ格納
部1のアウトラインフォントのベクトルデータに基づ
き、アウトラインフォントが新たな副走査方向に連続す
るベクトル列に分割される。また、ベクトル列毎に、副
走査方向の順序に従う走査開始位置情報および走査終了
位置情報と、走査開始位置情報についての主走査方向の
座標(スキャンラインとの現交点情報の初期値)と、副
走査方向へ1ドットだけ移動した際の主走査方向への移
動ドット数(単位変化量)とが補正テーブル格納部6の
補正テーブルに設定される。さらに、ベクトル列毎に、
現交点情報の初期値に単位変化量を2で除算した値を加
算しておく。以上の処理により、補正テーブルが作成さ
れる。
理終了後に、補正テーブル作成部7において、主走査方
向と副走査方向とを入れ替え、アウトラインデータ格納
部1のアウトラインフォントのベクトルデータに基づ
き、アウトラインフォントが新たな副走査方向に連続す
るベクトル列に分割される。また、ベクトル列毎に、副
走査方向の順序に従う走査開始位置情報および走査終了
位置情報と、走査開始位置情報についての主走査方向の
座標(スキャンラインとの現交点情報の初期値)と、副
走査方向へ1ドットだけ移動した際の主走査方向への移
動ドット数(単位変化量)とが補正テーブル格納部6の
補正テーブルに設定される。さらに、ベクトル列毎に、
現交点情報の初期値に単位変化量を2で除算した値を加
算しておく。以上の処理により、補正テーブルが作成さ
れる。
【0043】この後、補正部8において、補正テーブル
格納部6の補正テーブルを参照することにより、副走査
方向へ1ドットずつ移動する主走査方向のスキャンライ
ンと交差するベクトル列の現交点情報が、スキャンライ
ンとアウトラインフォントとの交点として求められ、ス
キャンライン上の主走査方向の塗り潰し範囲が求められ
る。そして、その塗り潰し範囲が1ドット以下である場
合にその塗り潰し範囲に対する塗り潰し処理を行ないド
ットデータ格納部5のドットパターンに対する補足・書
込を行なうとともに、スキャンラインと交差するベクト
ル列についての現交点情報に単位変化量が加算されて補
正テーブルが更新され、スキャンラインが副走査方向へ
1ドットずつ移動する。
格納部6の補正テーブルを参照することにより、副走査
方向へ1ドットずつ移動する主走査方向のスキャンライ
ンと交差するベクトル列の現交点情報が、スキャンライ
ンとアウトラインフォントとの交点として求められ、ス
キャンライン上の主走査方向の塗り潰し範囲が求められ
る。そして、その塗り潰し範囲が1ドット以下である場
合にその塗り潰し範囲に対する塗り潰し処理を行ないド
ットデータ格納部5のドットパターンに対する補足・書
込を行なうとともに、スキャンラインと交差するベクト
ル列についての現交点情報に単位変化量が加算されて補
正テーブルが更新され、スキャンラインが副走査方向へ
1ドットずつ移動する。
【0044】このように、塗り潰し範囲を求めた後、主
走査方向と副走査方向とを入れ替え、塗り潰し処理部4
とほぼ同様の動作で、補正部8により補正テーブルに基
づいてドットデータ格納部5のドットパターンに対する
補足・書込が行なわれる。これにより、塗り潰し処理部
4により求められた塗り潰し範囲では欠落していた塗り
潰し対象部分(ドロップアウト部分)が補足されて塗り
潰し範囲が補正され、アウトラインフォント本来の線幅
を忠実に再現しながら、ドロップアウトの発生をも防止
することができる(請求項2,4)。
走査方向と副走査方向とを入れ替え、塗り潰し処理部4
とほぼ同様の動作で、補正部8により補正テーブルに基
づいてドットデータ格納部5のドットパターンに対する
補足・書込が行なわれる。これにより、塗り潰し処理部
4により求められた塗り潰し範囲では欠落していた塗り
潰し対象部分(ドロップアウト部分)が補足されて塗り
潰し範囲が補正され、アウトラインフォント本来の線幅
を忠実に再現しながら、ドロップアウトの発生をも防止
することができる(請求項2,4)。
【0045】また、上述した本発明のアウトラインフォ
ント展開方法および装置では、アウトラインフォントに
ついての情報に応じ、切換部13によって、第1の展開
処理部11による第1の展開処理(座標系をドット上に
定義)と、第2の展開処理部12による第2の展開処理
(座標系をドットとドットとの間の境界上に定義)とを
選択的に切り換えてアウトラインフォントに対する塗り
潰し処理を行なうことで、アウトラインフォントに応じ
た最適な展開処理(塗り潰し処理)を実行することがで
きる(請求項5,14)。
ント展開方法および装置では、アウトラインフォントに
ついての情報に応じ、切換部13によって、第1の展開
処理部11による第1の展開処理(座標系をドット上に
定義)と、第2の展開処理部12による第2の展開処理
(座標系をドットとドットとの間の境界上に定義)とを
選択的に切り換えてアウトラインフォントに対する塗り
潰し処理を行なうことで、アウトラインフォントに応じ
た最適な展開処理(塗り潰し処理)を実行することがで
きる(請求項5,14)。
【0046】このとき、作成すべきドットパターンのド
ットサイズに応じて切換部13による切換を行なうこと
で、低ドットサイズの場合には、第1の展開処理による
1ドット分の線幅増加の影響が大きいので、アウトライ
ンフォント本来の線幅の忠実な再現が可能な第2の展開
処理が選択され、高ドットサイズの場合には、1ドット
分の線幅増加の影響が小さくなるので、第2の展開処理
よりも処理速度の速い第1の展開処理が選択される(請
求項6,15)。
ットサイズに応じて切換部13による切換を行なうこと
で、低ドットサイズの場合には、第1の展開処理による
1ドット分の線幅増加の影響が大きいので、アウトライ
ンフォント本来の線幅の忠実な再現が可能な第2の展開
処理が選択され、高ドットサイズの場合には、1ドット
分の線幅増加の影響が小さくなるので、第2の展開処理
よりも処理速度の速い第1の展開処理が選択される(請
求項6,15)。
【0047】また、アウトラインフォントの書体に応
じ、切換部13によって、第1の展開処理部11による
第1の展開処理と、第2の展開処理部12による第2の
展開処理とを選択的に切り換えることで、その書体に応
じた最適な展開処理を実行することができる(請求項
7,16)。さらに、アウトラインフォントのコード範
囲に応じ、切換部13によって、第1の展開処理部11
による第1の展開処理と、第2の展開処理部12による
第2の展開処理とを選択的に切り換えることで、そのコ
ード範囲に応じた最適な展開処理を実行することができ
る(請求項9,18)。
じ、切換部13によって、第1の展開処理部11による
第1の展開処理と、第2の展開処理部12による第2の
展開処理とを選択的に切り換えることで、その書体に応
じた最適な展開処理を実行することができる(請求項
7,16)。さらに、アウトラインフォントのコード範
囲に応じ、切換部13によって、第1の展開処理部11
による第1の展開処理と、第2の展開処理部12による
第2の展開処理とを選択的に切り換えることで、そのコ
ード範囲に応じた最適な展開処理を実行することができ
る(請求項9,18)。
【0048】またさらに、アウトラインフォント自体
(文字)に応じ、切換部13によって、第1の展開処理
部11による第1の展開処理と、第2の展開処理部12
による第2の展開処理とを選択的に切り換えることで、
アウトラインフォント(文字)毎に最適な展開処理を実
行することができる(請求項11,20)。このとき、
上述のごとくアウトラインフォントの書体,コード範
囲,文字に応じて切換部13による切換を行なう際、高
ドットサイズの場合には、第1の展開処理による1ドッ
ト分の線幅増加の影響が小さくなるので、第2の展開処
理よりも処理速度の速い第1の展開処理が選択される一
方、低ドットサイズの場合には、予め設定された指定情
報により指定された展開処理部11または12を選択し
て展開処理を実行する(請求項8,10,12,17,
19,21)。
(文字)に応じ、切換部13によって、第1の展開処理
部11による第1の展開処理と、第2の展開処理部12
による第2の展開処理とを選択的に切り換えることで、
アウトラインフォント(文字)毎に最適な展開処理を実
行することができる(請求項11,20)。このとき、
上述のごとくアウトラインフォントの書体,コード範
囲,文字に応じて切換部13による切換を行なう際、高
ドットサイズの場合には、第1の展開処理による1ドッ
ト分の線幅増加の影響が小さくなるので、第2の展開処
理よりも処理速度の速い第1の展開処理が選択される一
方、低ドットサイズの場合には、予め設定された指定情
報により指定された展開処理部11または12を選択し
て展開処理を実行する(請求項8,10,12,17,
19,21)。
【0049】また、アウトラインフォントの展開結果を
出力する出力装置に応じ、切換部13によって、第1の
展開処理部11による第1の展開処理と、第2の展開処
理部12による第2の展開処理とを選択的に切り換える
ことで、その出力装置に応じた最適な展開処理を実行す
ることができる(請求項13,22)。
出力する出力装置に応じ、切換部13によって、第1の
展開処理部11による第1の展開処理と、第2の展開処
理部12による第2の展開処理とを選択的に切り換える
ことで、その出力装置に応じた最適な展開処理を実行す
ることができる(請求項13,22)。
【0050】
【実施例】以下、図面を参照して本発明の実施例を説明
する。 (a)第1実施例の説明 図3は本発明の第1実施例としてのアウトラインフォン
ト展開装置を示すブロック図であり、この図3に示す第
1実施例のアウトラインフォント展開装置も、基本的に
は、ベクトルデータに基づいて輪郭線(アウトライン)
を順番に描画してアウトラインフォントを作成し、アウ
トラインフォントの内部を塗り潰してドットパターンを
作成するものである。
する。 (a)第1実施例の説明 図3は本発明の第1実施例としてのアウトラインフォン
ト展開装置を示すブロック図であり、この図3に示す第
1実施例のアウトラインフォント展開装置も、基本的に
は、ベクトルデータに基づいて輪郭線(アウトライン)
を順番に描画してアウトラインフォントを作成し、アウ
トラインフォントの内部を塗り潰してドットパターンを
作成するものである。
【0051】図3において、20は本実施例の装置全体
を管理するCPU、21はアウトラインデータメモリ
(アウトラインデータ格納部)で、本実施例では、この
アウトラインデータメモリ21には、ベクトルデータの
座標系をドットとドットとの間の境界上に定義すること
によりドット境界上に作成されるアウトラインフォント
のベクトルデータが格納されるようになっている。
を管理するCPU、21はアウトラインデータメモリ
(アウトラインデータ格納部)で、本実施例では、この
アウトラインデータメモリ21には、ベクトルデータの
座標系をドットとドットとの間の境界上に定義すること
によりドット境界上に作成されるアウトラインフォント
のベクトルデータが格納されるようになっている。
【0052】22はアウトラインフォント内の塗り潰し
範囲を求めるための塗り潰しテーブル(後述の塗り潰し
テーブル作成回路にて設定・作成)を格納する塗り潰し
テーブルメモリ(塗り潰しテーブル格納部)である。2
3は塗り潰しテーブル22内に塗り潰しテーブルを設定
・作成するための塗り潰しテーブル作成回路(塗り潰し
テーブル作成部)である。
範囲を求めるための塗り潰しテーブル(後述の塗り潰し
テーブル作成回路にて設定・作成)を格納する塗り潰し
テーブルメモリ(塗り潰しテーブル格納部)である。2
3は塗り潰しテーブル22内に塗り潰しテーブルを設定
・作成するための塗り潰しテーブル作成回路(塗り潰し
テーブル作成部)である。
【0053】この塗り潰しテーブル作成回路23は、後
で詳述するごとく、アウトラインデータメモリ21のア
ウトラインフォントのベクトルデータに基づいて、アウ
トラインフォントをY軸方向(副走査方向)に連続する
ベクトル列に分割し、ベクトル列毎に、Y軸方向の順序
に従う開始ベクトルオフセット(走査開始位置情報)お
よび終了ベクトルオフセット(走査終了位置情報)を塗
り潰しテーブルに設定し、また、ベクトル列毎に、開始
ベクトルオフセットについてのX座標をスキャンライン
との現交点(X)の初期値として塗り潰しテーブルに設
定し、さらに、ベクトル列毎に、Y軸方向へ1ドットだ
け移動した際のX軸方向への移動ドット数を単位変化量
として算出して塗り潰しテーブルに設定するとともに、
ベクトル列毎に、現交点(X)の初期値に単位変化量を
2で除算した値を加算して、塗り潰しテーブルを作成す
るものである。
で詳述するごとく、アウトラインデータメモリ21のア
ウトラインフォントのベクトルデータに基づいて、アウ
トラインフォントをY軸方向(副走査方向)に連続する
ベクトル列に分割し、ベクトル列毎に、Y軸方向の順序
に従う開始ベクトルオフセット(走査開始位置情報)お
よび終了ベクトルオフセット(走査終了位置情報)を塗
り潰しテーブルに設定し、また、ベクトル列毎に、開始
ベクトルオフセットについてのX座標をスキャンライン
との現交点(X)の初期値として塗り潰しテーブルに設
定し、さらに、ベクトル列毎に、Y軸方向へ1ドットだ
け移動した際のX軸方向への移動ドット数を単位変化量
として算出して塗り潰しテーブルに設定するとともに、
ベクトル列毎に、現交点(X)の初期値に単位変化量を
2で除算した値を加算して、塗り潰しテーブルを作成す
るものである。
【0054】また、24はアウトラインフォント内を塗
り潰しテーブルメモリ22の塗り潰しテーブルを参照・
更新しながら塗り潰し範囲に対する塗り潰し処理を行な
う塗り潰し処理回路(塗り潰し処理部)である。この塗
り潰し処理回路24は、後で詳述するごとく、塗り潰し
テーブルメモリ22の塗り潰しテーブルを参照すること
により、Y軸方向へ1ドットずつ移動するYスキャンラ
インと交差するベクトル列の現交点(X)を、Yスキャ
ンラインとアウトラインフォントとの交点として求め、
Yスキャンライン上のX軸方向の塗り潰し範囲を求め
て、その塗り潰し範囲に対する塗り潰し処理を行なうと
ともに、Yスキャンラインと交差するベクトル列につい
ての現交点(X)に単位変化量を加算して塗り潰しテー
ブルを更新し、YスキャンラインをY軸方向へ1ドット
ずつ移動させるものである。
り潰しテーブルメモリ22の塗り潰しテーブルを参照・
更新しながら塗り潰し範囲に対する塗り潰し処理を行な
う塗り潰し処理回路(塗り潰し処理部)である。この塗
り潰し処理回路24は、後で詳述するごとく、塗り潰し
テーブルメモリ22の塗り潰しテーブルを参照すること
により、Y軸方向へ1ドットずつ移動するYスキャンラ
インと交差するベクトル列の現交点(X)を、Yスキャ
ンラインとアウトラインフォントとの交点として求め、
Yスキャンライン上のX軸方向の塗り潰し範囲を求め
て、その塗り潰し範囲に対する塗り潰し処理を行なうと
ともに、Yスキャンラインと交差するベクトル列につい
ての現交点(X)に単位変化量を加算して塗り潰しテー
ブルを更新し、YスキャンラインをY軸方向へ1ドット
ずつ移動させるものである。
【0055】そして、25は塗り潰し処理回路24によ
りアウトラインフォントを一スキャンライン毎に塗り潰
して作成されたドットパターンを格納するドットデータ
メモリ(ドットデータ格納部)、26は塗り潰し処理回
路24による塗り潰し処理終了後にアウトラインフォン
ト内の塗り潰し範囲を補正するための補正テーブル(後
述の補正テーブル作成回路にて設定・作成)を格納する
ドロップアウト補正テーブルメモリ(補正テーブル格納
部)である。
りアウトラインフォントを一スキャンライン毎に塗り潰
して作成されたドットパターンを格納するドットデータ
メモリ(ドットデータ格納部)、26は塗り潰し処理回
路24による塗り潰し処理終了後にアウトラインフォン
ト内の塗り潰し範囲を補正するための補正テーブル(後
述の補正テーブル作成回路にて設定・作成)を格納する
ドロップアウト補正テーブルメモリ(補正テーブル格納
部)である。
【0056】さらに、27はドロップアウト補正テーブ
ル26内にドロップアウト補正テーブルを設定・作成す
るためのドロップアウト補正テーブル作成回路(補正テ
ーブル作成部)である。このドロップアウト補正テーブ
ル作成回路27は、後で詳述するごとく、主走査方向と
副走査方向とを入れ替え、アウトラインデータメモリ1
1のアウトラインフォントのベクトルデータに基づい
て、アウトラインフォントをX軸方向(副走査方向)に
連続するベクトル列に分割し、ベクトル列毎に、X軸方
向の順序に従う開始ベクトルオフセット(走査開始位置
情報)および終了ベクトルオフセット(走査終了位置情
報)をドロップアウト補正テーブルに設定し、また、ベ
クトル列毎に、開始ベクトルオフセットについてのY座
標をXスキャンラインとの現交点情報の初期値としてド
ロップアウト補正テーブルに設定し、さらに、ベクトル
列毎に、X軸方向へ1ドットだけ移動した際のY軸方向
への移動ドット数を単位変化量として算出してドロップ
アウト補正テーブルに設定するとともに、ベクトル列毎
に、現交点(Y)の初期値に単位変化量を2で除算した
値を加算して、ドロップアウト補正テーブルを作成する
ものである。
ル26内にドロップアウト補正テーブルを設定・作成す
るためのドロップアウト補正テーブル作成回路(補正テ
ーブル作成部)である。このドロップアウト補正テーブ
ル作成回路27は、後で詳述するごとく、主走査方向と
副走査方向とを入れ替え、アウトラインデータメモリ1
1のアウトラインフォントのベクトルデータに基づい
て、アウトラインフォントをX軸方向(副走査方向)に
連続するベクトル列に分割し、ベクトル列毎に、X軸方
向の順序に従う開始ベクトルオフセット(走査開始位置
情報)および終了ベクトルオフセット(走査終了位置情
報)をドロップアウト補正テーブルに設定し、また、ベ
クトル列毎に、開始ベクトルオフセットについてのY座
標をXスキャンラインとの現交点情報の初期値としてド
ロップアウト補正テーブルに設定し、さらに、ベクトル
列毎に、X軸方向へ1ドットだけ移動した際のY軸方向
への移動ドット数を単位変化量として算出してドロップ
アウト補正テーブルに設定するとともに、ベクトル列毎
に、現交点(Y)の初期値に単位変化量を2で除算した
値を加算して、ドロップアウト補正テーブルを作成する
ものである。
【0057】また、28はドロップアウト補正テーブル
メモリ26のドロップアウト補正テーブルを参照・更新
しながらドロップアウト部分の補正処理を行なうドロッ
プアウト補正回路(補正部)である。このドロップアウ
ト補正回路28は、後で詳述するごとく、ドロップアウ
ト補正テーブルメモリ26のドロップアウト補正テーブ
ルを参照することにより、X軸方向へ1ドットずつ移動
するXスキャンラインと交差するベクトル列の現交点
(Y)を、Xスキャンラインとアウトラインフォントと
の交点として求め、Xスキャンライン上のY軸方向の塗
り潰し範囲を求めて、その塗り潰し範囲が1ドット以下
である場合にその塗り潰し範囲に対する塗り潰し処理を
行ないドットデータメモリ25のドットパターンに対す
る補足・書込を行なうとともに、Xスキャンラインと交
差するベクトル列についての現交点(Y)に単位変化量
を加算してドロップアウト補正テーブルを更新し、Xス
キャンラインをX軸方向へ1ドットずつ移動させるもの
である。
メモリ26のドロップアウト補正テーブルを参照・更新
しながらドロップアウト部分の補正処理を行なうドロッ
プアウト補正回路(補正部)である。このドロップアウ
ト補正回路28は、後で詳述するごとく、ドロップアウ
ト補正テーブルメモリ26のドロップアウト補正テーブ
ルを参照することにより、X軸方向へ1ドットずつ移動
するXスキャンラインと交差するベクトル列の現交点
(Y)を、Xスキャンラインとアウトラインフォントと
の交点として求め、Xスキャンライン上のY軸方向の塗
り潰し範囲を求めて、その塗り潰し範囲が1ドット以下
である場合にその塗り潰し範囲に対する塗り潰し処理を
行ないドットデータメモリ25のドットパターンに対す
る補足・書込を行なうとともに、Xスキャンラインと交
差するベクトル列についての現交点(Y)に単位変化量
を加算してドロップアウト補正テーブルを更新し、Xス
キャンラインをX軸方向へ1ドットずつ移動させるもの
である。
【0058】上述のごとく構成された第1実施例のアウ
トラインフォント展開装置による、アウトラインフォン
ト内の塗り潰し手順およびドロップアウト補正手順を、
図4に示すフローチャート(ステップS11〜S27)
に従って図5〜図30を参照しながら説明する。 (1)展開対象の文字,記号,図形等を拡大もしくは縮
小するか否かを判断し(ステップS11)、拡大/縮小
を行なう必要がある場合(YES判定の場合)には、ア
ウトラインデータメモリ21に格納されている展開対象
のアウトラインデータ(ベクトルデータ)を、目的とす
る出力ドットサイズに拡大もしくは縮小する(ステップ
S12)。なお、実際には目的とする出力ドットサイズ
がD×Dである場合、本実施例では、座標系がドットと
ドットとの間の境界上に定義されるため、(D+1)×
(D+1)のサイズに拡大/縮小する。
トラインフォント展開装置による、アウトラインフォン
ト内の塗り潰し手順およびドロップアウト補正手順を、
図4に示すフローチャート(ステップS11〜S27)
に従って図5〜図30を参照しながら説明する。 (1)展開対象の文字,記号,図形等を拡大もしくは縮
小するか否かを判断し(ステップS11)、拡大/縮小
を行なう必要がある場合(YES判定の場合)には、ア
ウトラインデータメモリ21に格納されている展開対象
のアウトラインデータ(ベクトルデータ)を、目的とす
る出力ドットサイズに拡大もしくは縮小する(ステップ
S12)。なお、実際には目的とする出力ドットサイズ
がD×Dである場合、本実施例では、座標系がドットと
ドットとの間の境界上に定義されるため、(D+1)×
(D+1)のサイズに拡大/縮小する。
【0059】拡大/縮小を行なう必要がない場合(ステ
ップS11でNO判定の場合)、もしくは、ステップS
12により拡大/縮小を行なった後、以下のようにし
て、塗り潰しテーブル作成回路23により、展開対象の
文字,記号,図形等についての塗り潰しテーブルを、塗
り潰しテーブルメモリ22上に作成する(ステップS1
3)。
ップS11でNO判定の場合)、もしくは、ステップS
12により拡大/縮小を行なった後、以下のようにし
て、塗り潰しテーブル作成回路23により、展開対象の
文字,記号,図形等についての塗り潰しテーブルを、塗
り潰しテーブルメモリ22上に作成する(ステップS1
3)。
【0060】ここでは、例えば図5に示すようなアウト
ラインフォント(英字の“T”)に対して塗り潰し処理
を行なう場合について説明する。この第1実施例では、
図5中、右方向をX軸正方向、下方向をY軸正方向と
し、点線で区画された各四角形がドットを示している。
また、図5中の左上隅頂点をX−Y座標系の原点(0,
0)とし、アウトラインフォントの座標を、各ドットと
ドットとの間の境界上に定義する。さらに、図5に示す
アウトラインフォントのベクトルデータは、図6に示す
ようなベクトルテーブルとして与えられる。
ラインフォント(英字の“T”)に対して塗り潰し処理
を行なう場合について説明する。この第1実施例では、
図5中、右方向をX軸正方向、下方向をY軸正方向と
し、点線で区画された各四角形がドットを示している。
また、図5中の左上隅頂点をX−Y座標系の原点(0,
0)とし、アウトラインフォントの座標を、各ドットと
ドットとの間の境界上に定義する。さらに、図5に示す
アウトラインフォントのベクトルデータは、図6に示す
ようなベクトルテーブルとして与えられる。
【0061】図6に示すベクトルテーブルでは、図5に
示すアウトラインフォントの12個の頂点A〜LのX座
標,Y座標が設定されている。このとき、従来と同様
に、各頂点A〜Lには、オフセット“0”〜“12”が
設定されている。始点(終点)となる頂点としては原点
に最も近い頂点Aを選択し、頂点Aからアウトライン上
に沿って順に各頂点に対するオフセットが設定される。
オフセット“12”はオフセット“0”と同じ頂点Aつ
まり終点で、始点と終点とが一致することにより、アウ
トラインフォントの塗り潰し範囲が、一つの閉じた領域
になっている。
示すアウトラインフォントの12個の頂点A〜LのX座
標,Y座標が設定されている。このとき、従来と同様
に、各頂点A〜Lには、オフセット“0”〜“12”が
設定されている。始点(終点)となる頂点としては原点
に最も近い頂点Aを選択し、頂点Aからアウトライン上
に沿って順に各頂点に対するオフセットが設定される。
オフセット“12”はオフセット“0”と同じ頂点Aつ
まり終点で、始点と終点とが一致することにより、アウ
トラインフォントの塗り潰し範囲が、一つの閉じた領域
になっている。
【0062】(2)塗り潰しテーブル作成回路23によ
る塗り潰しテーブルの作成に際しては、まず、展開対象
の全てのベクトルデータを検索し、例えば図6に示すよ
うな展開対象のアウトラインフォントのベクトルテーブ
ルを得てから、このベクトルテーブルに基づいて、アウ
トラインを形成するベクトルを、連続する上向き(Y軸
負方向)のベクトル列と、連続する下向き(Y軸正方
向)のベクトル列とに分割し、その方向性を、図7に示
すような塗り潰しテーブルに設定する(図7中の“上”
/“下”参照)。このとき、水平な方向(X軸方向)の
ベクトルは無視するものとする。
る塗り潰しテーブルの作成に際しては、まず、展開対象
の全てのベクトルデータを検索し、例えば図6に示すよ
うな展開対象のアウトラインフォントのベクトルテーブ
ルを得てから、このベクトルテーブルに基づいて、アウ
トラインを形成するベクトルを、連続する上向き(Y軸
負方向)のベクトル列と、連続する下向き(Y軸正方
向)のベクトル列とに分割し、その方向性を、図7に示
すような塗り潰しテーブルに設定する(図7中の“上”
/“下”参照)。このとき、水平な方向(X軸方向)の
ベクトルは無視するものとする。
【0063】具体的には、図5に示す例では、点Bから
点Cへの下向きのベクトル列Iと、点Cから点Dへの上
向きのベクトル列IIと、点Eから点Fを経由し点Gに到
る下向きのベクトル列III と、点Hから点Iを経由して
点Jに到る上向きのベクトル列IVと、点Kから点Lの下
向きのベクトル列Vと、点Lから点Aへの上向きのベク
トル列VIとの6つに分割され、図7に示す塗り潰しテー
ブルでは、各ベクトル列I〜VIがそれぞれ番号“0”〜
“5”に対応している。
点Cへの下向きのベクトル列Iと、点Cから点Dへの上
向きのベクトル列IIと、点Eから点Fを経由し点Gに到
る下向きのベクトル列III と、点Hから点Iを経由して
点Jに到る上向きのベクトル列IVと、点Kから点Lの下
向きのベクトル列Vと、点Lから点Aへの上向きのベク
トル列VIとの6つに分割され、図7に示す塗り潰しテー
ブルでは、各ベクトル列I〜VIがそれぞれ番号“0”〜
“5”に対応している。
【0064】(3)各ベクトル列をなすベクトルのうち
最小Y座標をもつものについてのオフセットを、ベクト
ルテーブルから検索し、開始ベクトルとして塗り潰しテ
ーブルに設定する。同様に、各ベクトル列をなすベクト
ルのうち最大Y座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
塗り潰しテーブルに設定する。
最小Y座標をもつものについてのオフセットを、ベクト
ルテーブルから検索し、開始ベクトルとして塗り潰しテ
ーブルに設定する。同様に、各ベクトル列をなすベクト
ルのうち最大Y座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
塗り潰しテーブルに設定する。
【0065】(4)次に、塗り潰しテーブルに設定した
ベクトル列毎に、各ベクトル列の開始ベクトルについ
て、Y軸正方向へ1ドットだけ移動した際のX軸方向へ
の変化量(ドット数)を、ベクトルテーブルのデータに
基づいて算出し、単位変化量として塗り潰しテーブルに
設定する。例えば、図5,図7に示すように、ベクトル
列I,III,IV,VI の開始ベクトルはY軸に平行でX軸方向
の変化を生じないため、単位変化量は0であり、ベクト
ル列IIの開始ベクトルは、Y軸正方向へ1ドットだけ移
動するとX軸正方向へ1ドットだけ変化するので、単位
変化量は+1であり、ベクトル列Vの開始ベクトルは、
Y軸正方向へ1ドットだけ移動するとX軸負方向へ1ド
ットだけ変化するので、単位変化量は−1である。
ベクトル列毎に、各ベクトル列の開始ベクトルについ
て、Y軸正方向へ1ドットだけ移動した際のX軸方向へ
の変化量(ドット数)を、ベクトルテーブルのデータに
基づいて算出し、単位変化量として塗り潰しテーブルに
設定する。例えば、図5,図7に示すように、ベクトル
列I,III,IV,VI の開始ベクトルはY軸に平行でX軸方向
の変化を生じないため、単位変化量は0であり、ベクト
ル列IIの開始ベクトルは、Y軸正方向へ1ドットだけ移
動するとX軸正方向へ1ドットだけ変化するので、単位
変化量は+1であり、ベクトル列Vの開始ベクトルは、
Y軸正方向へ1ドットだけ移動するとX軸負方向へ1ド
ットだけ変化するので、単位変化量は−1である。
【0066】(5)そして、本実施例では、各ベクトル
列について、上述のように設定された開始ベクトルのX
座標を、ベクトルテーブルから検索し、アウトラインフ
ォントが従来と同様のドット上の座標系に配置されたよ
うに見せ掛けるために、図7に示すように、開始ベクト
ルのX座標に、予めX方向の単位変化量÷2を加算した
ものを、現交点(X)の初期値として塗り潰しテーブル
に設定する。
列について、上述のように設定された開始ベクトルのX
座標を、ベクトルテーブルから検索し、アウトラインフ
ォントが従来と同様のドット上の座標系に配置されたよ
うに見せ掛けるために、図7に示すように、開始ベクト
ルのX座標に、予めX方向の単位変化量÷2を加算した
ものを、現交点(X)の初期値として塗り潰しテーブル
に設定する。
【0067】(6)以上の(2)〜(5)の処理によ
り、図7に示すように各種値を設定された塗り潰しテー
ブルが作成され、この塗り潰しテーブルをもとに、塗り
潰し処理回路24により、主走査方向をX軸正方向、副
走査方向をY軸正方向とするYスキャンが行なわれ、各
ベクトル列とYスキャンラインとの交点が算出されて、
アウトラインフォントに対する塗り潰し処理が行なわれ
る。以下、目的とする出力Y座標サイズ(縦方向サイ
ズ)分だけ、つまりステップS14において全てのYス
キャンラインについて処理を終了したと判断されるま
で、下記(7)〜(9)と同様の処理を繰り返し行な
う。
り、図7に示すように各種値を設定された塗り潰しテー
ブルが作成され、この塗り潰しテーブルをもとに、塗り
潰し処理回路24により、主走査方向をX軸正方向、副
走査方向をY軸正方向とするYスキャンが行なわれ、各
ベクトル列とYスキャンラインとの交点が算出されて、
アウトラインフォントに対する塗り潰し処理が行なわれ
る。以下、目的とする出力Y座標サイズ(縦方向サイ
ズ)分だけ、つまりステップS14において全てのYス
キャンラインについて処理を終了したと判断されるま
で、下記(7)〜(9)と同様の処理を繰り返し行な
う。
【0068】(7)即ち、全てのYスキャンラインにつ
いて処理を終了したか否かを判断しながら(ステップS
14)、図8,図10に示すように、Yスキャンライン
を、見掛け上、Y座標0.5の位置からY軸正方向へ1
ドットずつドット上で移動し、各位置で、塗り潰しテー
ブルのデータに基づいて現Yスキャンラインとアウトラ
インフォントとの全ての交点を算出し、塗り潰しテーブ
ルの更新を行なう(ステップS15)。ここで算出され
る交点は、塗り潰しテーブルの現交点そのものである。
いて処理を終了したか否かを判断しながら(ステップS
14)、図8,図10に示すように、Yスキャンライン
を、見掛け上、Y座標0.5の位置からY軸正方向へ1
ドットずつドット上で移動し、各位置で、塗り潰しテー
ブルのデータに基づいて現Yスキャンラインとアウトラ
インフォントとの全ての交点を算出し、塗り潰しテーブ
ルの更新を行なう(ステップS15)。ここで算出され
る交点は、塗り潰しテーブルの現交点そのものである。
【0069】このとき、Yスキャンラインが交わってい
るベクトル列については、Yスキャンラインが1ドット
だけ移動する毎に単位変化量を現交点(X)に1回加算
することにより、塗り潰しテーブルの更新を行なう。こ
れにより、塗り潰しテーブルにおいて、Yスキャンライ
ンの交わるベクトル列についての現交点(X)を参照す
るだけで、見掛け上、ドット上に配置されるYスキャン
ラインと、ドット境界上に配置されるアウトラインフォ
ントとの交点(見方を変えれば、ドット境界上に配置さ
れるYスキャンラインと、見掛け上、ドット上に配置さ
れるアウトラインフォントとの交点)を得ることができ
る。
るベクトル列については、Yスキャンラインが1ドット
だけ移動する毎に単位変化量を現交点(X)に1回加算
することにより、塗り潰しテーブルの更新を行なう。こ
れにより、塗り潰しテーブルにおいて、Yスキャンライ
ンの交わるベクトル列についての現交点(X)を参照す
るだけで、見掛け上、ドット上に配置されるYスキャン
ラインと、ドット境界上に配置されるアウトラインフォ
ントとの交点(見方を変えれば、ドット境界上に配置さ
れるYスキャンラインと、見掛け上、ドット上に配置さ
れるアウトラインフォントとの交点)を得ることができ
る。
【0070】例えば、Yスキャンラインを図8に示すY
座標0.5の位置から図10に示すY座標1.5の位置
へ移動させると、Yスキャンラインはベクトル列Iおよ
びVIと交わることになり、塗り潰しテーブルから、その
時の交点のX座標として“10”および“0”が得られ
る〔図9中の網掛け部分参照〕。 (8)ステップS15で得られた全ての交点のソートを
行なってから(ステップS16)、ソートされた交点間
を交互に塗り潰し、現Y座標のドットメモリに転送する
(ステップS17)。なお、交点が2つであるので、こ
れらの交点間を塗り潰すだけでよいが、より多くの交点
が得られた場合(例えばY座標2.5の位置がYスキャ
ンラインとなると6つの交点が得られる)、どの交点間
を塗り潰すべきかを判断するために、ステップS16に
よるソート処理が必要になる。
座標0.5の位置から図10に示すY座標1.5の位置
へ移動させると、Yスキャンラインはベクトル列Iおよ
びVIと交わることになり、塗り潰しテーブルから、その
時の交点のX座標として“10”および“0”が得られ
る〔図9中の網掛け部分参照〕。 (8)ステップS15で得られた全ての交点のソートを
行なってから(ステップS16)、ソートされた交点間
を交互に塗り潰し、現Y座標のドットメモリに転送する
(ステップS17)。なお、交点が2つであるので、こ
れらの交点間を塗り潰すだけでよいが、より多くの交点
が得られた場合(例えばY座標2.5の位置がYスキャ
ンラインとなると6つの交点が得られる)、どの交点間
を塗り潰すべきかを判断するために、ステップS16に
よるソート処理が必要になる。
【0071】(9)現Yスキャンラインと交差したベク
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差するかを調査し、交差しない場合
(ベクトルオフセットを更新する場合つまりステップS
18でYES判定の場合)には、現ベクトル列の開始ベ
クトルのオフセットを次のベクトルに変更し、変更した
ベクトルのX軸方向の単位変化量を算出して塗り潰しテ
ーブルに設定するとともに、更新した開始ベクトルのX
座標に単位変化量÷2を加算したものを、初期値として
現交点に設定して更新してから(ステップS19)、ス
テップS14へ移行する。
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差するかを調査し、交差しない場合
(ベクトルオフセットを更新する場合つまりステップS
18でYES判定の場合)には、現ベクトル列の開始ベ
クトルのオフセットを次のベクトルに変更し、変更した
ベクトルのX軸方向の単位変化量を算出して塗り潰しテ
ーブルに設定するとともに、更新した開始ベクトルのX
座標に単位変化量÷2を加算したものを、初期値として
現交点に設定して更新してから(ステップS19)、ス
テップS14へ移行する。
【0072】なお、図7に示すように、ステップS13
による塗り潰しテーブル作成時に、全ベクトル列につい
ての単位変化量,現交点を塗り潰しテーブルに設定して
おけば、ステップS19においては、前述のような更新
処理を行なう必要はなく、塗り潰しテーブル上で現交点
を参照すべきベクトル列を、次のベクトル列に切り換え
るような更新処理を行なうだけでよい。
による塗り潰しテーブル作成時に、全ベクトル列につい
ての単位変化量,現交点を塗り潰しテーブルに設定して
おけば、ステップS19においては、前述のような更新
処理を行なう必要はなく、塗り潰しテーブル上で現交点
を参照すべきベクトル列を、次のベクトル列に切り換え
るような更新処理を行なうだけでよい。
【0073】一方、現Yスキャンラインと交差したベク
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS18でNO判定の場
合)には、そのままステップS14に移行する。なお、
図12に示すように、YスキャンラインがY座標3.5
に位置する場合には、塗り潰しテーブルは、図11に示
すように更新されている。
トルが、1ドットだけY軸正方向へ移動した次回のYス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS18でNO判定の場
合)には、そのままステップS14に移行する。なお、
図12に示すように、YスキャンラインがY座標3.5
に位置する場合には、塗り潰しテーブルは、図11に示
すように更新されている。
【0074】以上のような塗り潰し処理を行なうことに
より、例えば、図5に示すようなアウトラインフォント
について、図15に示すようなドットパターンを得るこ
とができ、そのドットパターンがドットデータメモリ2
5に格納される。ところで、上述した本実施例の塗り潰
しテーブル作成回路23および塗り潰し処理回路24に
よる処理を施した場合には、アウトラインフォントでは
本来つながっている部分などが欠けてしまう(ドロップ
アウトしてしまう)場合がある。
より、例えば、図5に示すようなアウトラインフォント
について、図15に示すようなドットパターンを得るこ
とができ、そのドットパターンがドットデータメモリ2
5に格納される。ところで、上述した本実施例の塗り潰
しテーブル作成回路23および塗り潰し処理回路24に
よる処理を施した場合には、アウトラインフォントでは
本来つながっている部分などが欠けてしまう(ドロップ
アウトしてしまう)場合がある。
【0075】例えば図16に示すように、線幅が1ドッ
ト未満の部分A1〜A4を有するアウトラインフォント
に対し、上述した塗り潰し処理(ドット展開処理)を行
なった場合、その部分A1〜A4が、1ドット分の重み
をもたずドットに表現されないために、図17に示すよ
うな欠落(ドロップアウト)が生じてしまう。上述した
図5に示すアウトラインフォントに対して塗り潰し処理
を行なう場合にも同様の現象が生じる。即ち、図14に
示すように、YスキャンラインがY座標9.5に位置す
る場合には、塗り潰しテーブルは、図13に示すように
更新されており、現交点としてX座標“3”,“7”が
得られ、図15に示すように、これらの座標間の4つの
ドットが塗り潰されることになる。しかし、実際には、
X座標“2”と“3”との間、および、X座標“7”と
“8”との間にも1ドット未満の部分が存在しており、
図15に示す2つのドットB1,B2が、塗り潰されず
欠落したドロップアウト部分になっている。
ト未満の部分A1〜A4を有するアウトラインフォント
に対し、上述した塗り潰し処理(ドット展開処理)を行
なった場合、その部分A1〜A4が、1ドット分の重み
をもたずドットに表現されないために、図17に示すよ
うな欠落(ドロップアウト)が生じてしまう。上述した
図5に示すアウトラインフォントに対して塗り潰し処理
を行なう場合にも同様の現象が生じる。即ち、図14に
示すように、YスキャンラインがY座標9.5に位置す
る場合には、塗り潰しテーブルは、図13に示すように
更新されており、現交点としてX座標“3”,“7”が
得られ、図15に示すように、これらの座標間の4つの
ドットが塗り潰されることになる。しかし、実際には、
X座標“2”と“3”との間、および、X座標“7”と
“8”との間にも1ドット未満の部分が存在しており、
図15に示す2つのドットB1,B2が、塗り潰されず
欠落したドロップアウト部分になっている。
【0076】そこで、本実施例では、下記の(10)〜
(17)の処理に従って、ドロップアウト補正テーブル
作成回路27およびドロップアウト補正回路28によ
り、上述のようなドロップアウト部分を求めて補足し、
ドットデータメモリ25に格納されているドットパター
ンを補正している。 (10)ドロップアウト補正テーブル作成回路27によ
るドロップアウト補正テーブルの作成(ステップS2
0)に際しては、まず、図6に示すベクトルテーブルに
基づいて、アウトラインを形成するベクトルを、連続す
る右向き(X軸正方向)のベクトル列と、連続する左向
き(X軸負方向)のベクトル列とに分割して、その方向
性を、図19に示すようなドロップアウト補正テーブル
に設定する(図19中の“右”/“左”参照)。このと
き、縦方向(Y軸方向)のベクトルは無視するものとす
る。
(17)の処理に従って、ドロップアウト補正テーブル
作成回路27およびドロップアウト補正回路28によ
り、上述のようなドロップアウト部分を求めて補足し、
ドットデータメモリ25に格納されているドットパター
ンを補正している。 (10)ドロップアウト補正テーブル作成回路27によ
るドロップアウト補正テーブルの作成(ステップS2
0)に際しては、まず、図6に示すベクトルテーブルに
基づいて、アウトラインを形成するベクトルを、連続す
る右向き(X軸正方向)のベクトル列と、連続する左向
き(X軸負方向)のベクトル列とに分割して、その方向
性を、図19に示すようなドロップアウト補正テーブル
に設定する(図19中の“右”/“左”参照)。このと
き、縦方向(Y軸方向)のベクトルは無視するものとす
る。
【0077】つまり、塗り潰しテーブルでは、横から検
索したが、ドロップアウト補正テーブルでは、主走査方
向と副走査方向とを入れ替え、縦から検索する。ここで
いうドロップアウト補正テーブルと、前述した塗り潰し
テーブルとは方向性が異なるだけで同様のものである。
具体的には、図5に示すアウトラインフォントについて
は、図18に示すように、点Aから点Bへの右向きのベ
クトル列Iと、点Cから点Dを経由して点Eに到る左向
きのベクトル列IIと、点Fから点Gへの右向きのベクト
ル列III と、点Gから点Hへの左向きのベクトル列IV
と、点Hから点Iへの右向きのベクトル列Vと、点Jか
ら点Kを経由して点Lに到る左向きのベクトル列VIとの
6つに分割され、図19に示すドロップアウト補正テー
ブルでは、各ベクトル列I〜VIがそれぞれ番号“0”〜
“5”に対応している。
索したが、ドロップアウト補正テーブルでは、主走査方
向と副走査方向とを入れ替え、縦から検索する。ここで
いうドロップアウト補正テーブルと、前述した塗り潰し
テーブルとは方向性が異なるだけで同様のものである。
具体的には、図5に示すアウトラインフォントについて
は、図18に示すように、点Aから点Bへの右向きのベ
クトル列Iと、点Cから点Dを経由して点Eに到る左向
きのベクトル列IIと、点Fから点Gへの右向きのベクト
ル列III と、点Gから点Hへの左向きのベクトル列IV
と、点Hから点Iへの右向きのベクトル列Vと、点Jか
ら点Kを経由して点Lに到る左向きのベクトル列VIとの
6つに分割され、図19に示すドロップアウト補正テー
ブルでは、各ベクトル列I〜VIがそれぞれ番号“0”〜
“5”に対応している。
【0078】(11)各ベクトル列をなすベクトルのう
ち最小X座標をもつものについてのオフセットを、ベク
トルテーブルから検索し、開始ベクトルとして塗り潰し
テーブルに設定する。同様に、各ベクトル列をなすベク
トルのうち最大X座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
ドロップアウト補正テーブルに設定する。
ち最小X座標をもつものについてのオフセットを、ベク
トルテーブルから検索し、開始ベクトルとして塗り潰し
テーブルに設定する。同様に、各ベクトル列をなすベク
トルのうち最大X座標をもつものについてのオフセット
を、ベクトルテーブルから検索し、終了ベクトルとして
ドロップアウト補正テーブルに設定する。
【0079】(12)次に、ドロップアウト補正テーブ
ルに設定したベクトル列毎に、各ベクトル列の開始ベク
トルについて、X軸正方向へ1ドットだけ移動した際の
Y軸方向への変化量(ドット数)を、ベクトルテーブル
のデータに基づいて算出し、単位変化量としてドロップ
アウト補正テーブルに設定する。例えば、図18,図1
9に示すように、ベクトル列I,II,IV の開始ベクトルは
X軸に平行でY軸方向の変化を生じないため、単位変化
量は0であり、ベクトル列III の開始ベクトルは、X軸
正方向へ1ドットだけ移動するとY軸正方向へ0.5ド
ットだけ変化するので、単位変化量は+0.5であり、
ベクトル列Vの開始ベクトルは、X軸正方向へ1ドット
だけ移動するとY軸負方向へ0.5ドットだけ変化する
ので、単位変化量は−0.5であり、ベクトル列VIの開
始ベクトルは、X軸正方向へ1ドットだけ移動するとY
軸負方向へ1ドットだけ変化するので、単位変化量は−
1である。
ルに設定したベクトル列毎に、各ベクトル列の開始ベク
トルについて、X軸正方向へ1ドットだけ移動した際の
Y軸方向への変化量(ドット数)を、ベクトルテーブル
のデータに基づいて算出し、単位変化量としてドロップ
アウト補正テーブルに設定する。例えば、図18,図1
9に示すように、ベクトル列I,II,IV の開始ベクトルは
X軸に平行でY軸方向の変化を生じないため、単位変化
量は0であり、ベクトル列III の開始ベクトルは、X軸
正方向へ1ドットだけ移動するとY軸正方向へ0.5ド
ットだけ変化するので、単位変化量は+0.5であり、
ベクトル列Vの開始ベクトルは、X軸正方向へ1ドット
だけ移動するとY軸負方向へ0.5ドットだけ変化する
ので、単位変化量は−0.5であり、ベクトル列VIの開
始ベクトルは、X軸正方向へ1ドットだけ移動するとY
軸負方向へ1ドットだけ変化するので、単位変化量は−
1である。
【0080】(13)そして、各ベクトル列の現交点
(Y)の初期値を算出する。ここでも、各ベクトル列に
ついて、上述のように設定された開始ベクトルのY座標
を、ベクトルテーブルから検索し、アウトラインフォン
トが従来と同様のドット上の座標系に配置されたように
見せ掛けるために、図19に示すように、開始ベクトル
のY座標に、予めY方向の単位変化量÷2を加算したも
のを、現交点(Y)の初期値としてドロップアウト補正
テーブルに設定する。
(Y)の初期値を算出する。ここでも、各ベクトル列に
ついて、上述のように設定された開始ベクトルのY座標
を、ベクトルテーブルから検索し、アウトラインフォン
トが従来と同様のドット上の座標系に配置されたように
見せ掛けるために、図19に示すように、開始ベクトル
のY座標に、予めY方向の単位変化量÷2を加算したも
のを、現交点(Y)の初期値としてドロップアウト補正
テーブルに設定する。
【0081】(14)以上の(10)〜(13)の処理
により、図19に示すように各種値を設定されたドロッ
プアウト補正テーブルが作成され、このドロップアウト
補正テーブルをもとに、ドロップアウト補正回路28に
より、主走査方向をY軸正方向、副走査方向をX軸正方
向とするXスキャンが行なわれ、各ベクトル列とXスキ
ャンラインとの交点が算出されて、ドットパターンに対
するドロップアウト補正処理が行なわれる。以下、目的
とする出力X座標サイズ(横方向サイズ)分だけ、つま
りステップS21において全てのXスキャンラインにつ
いて処理を終了したと判断されるまで、下記(15)〜
(17)と同様の処理を繰り返し行なう。
により、図19に示すように各種値を設定されたドロッ
プアウト補正テーブルが作成され、このドロップアウト
補正テーブルをもとに、ドロップアウト補正回路28に
より、主走査方向をY軸正方向、副走査方向をX軸正方
向とするXスキャンが行なわれ、各ベクトル列とXスキ
ャンラインとの交点が算出されて、ドットパターンに対
するドロップアウト補正処理が行なわれる。以下、目的
とする出力X座標サイズ(横方向サイズ)分だけ、つま
りステップS21において全てのXスキャンラインにつ
いて処理を終了したと判断されるまで、下記(15)〜
(17)と同様の処理を繰り返し行なう。
【0082】(15)即ち、全てのXスキャンラインに
ついて処理を終了したか否かを判断しながら(ステップ
S21)、図20,図22に示すように、Xスキャンラ
インを、見掛け上、X座標0.5の位置からX軸正方向
へ1ドットずつドット上で移動し、各位置で、ドロップ
アウト補正テーブルのデータに基づいて現Xスキャンラ
インとアウトラインフォントとの全ての交点を算出し、
ドロップアウト補正テーブルの現交点(Y)の更新を行
なう(ステップS22)。ここで算出される交点は、ド
ロップアウト補正テーブルの現交点そのものである。
ついて処理を終了したか否かを判断しながら(ステップ
S21)、図20,図22に示すように、Xスキャンラ
インを、見掛け上、X座標0.5の位置からX軸正方向
へ1ドットずつドット上で移動し、各位置で、ドロップ
アウト補正テーブルのデータに基づいて現Xスキャンラ
インとアウトラインフォントとの全ての交点を算出し、
ドロップアウト補正テーブルの現交点(Y)の更新を行
なう(ステップS22)。ここで算出される交点は、ド
ロップアウト補正テーブルの現交点そのものである。
【0083】このとき、前述した塗り潰しテーブルの場
合と同様に、Xスキャンラインが交わっているベクトル
列については、Xスキャンラインが1ドットだけ移動す
る毎に単位変化量を現交点(Y)に1回加算することに
より、ドロップアウト補正テーブルの更新を行なう。こ
れにより、ドロップアウト補正テーブルにおいて、Xス
キャンラインの交わるベクトル列についての現交点
(Y)を参照するだけで、見掛け上、ドット上に配置さ
れるYスキャンラインと、ドット境界上に配置されるア
ウトラインフォントとの交点(見方を変えれば、ドット
境界上に配置されるYスキャンラインと、見掛け上、ド
ット上に配置されるアウトラインフォントとの交点)を
得ることができる。
合と同様に、Xスキャンラインが交わっているベクトル
列については、Xスキャンラインが1ドットだけ移動す
る毎に単位変化量を現交点(Y)に1回加算することに
より、ドロップアウト補正テーブルの更新を行なう。こ
れにより、ドロップアウト補正テーブルにおいて、Xス
キャンラインの交わるベクトル列についての現交点
(Y)を参照するだけで、見掛け上、ドット上に配置さ
れるYスキャンラインと、ドット境界上に配置されるア
ウトラインフォントとの交点(見方を変えれば、ドット
境界上に配置されるYスキャンラインと、見掛け上、ド
ット上に配置されるアウトラインフォントとの交点)を
得ることができる。
【0084】例えば、Xスキャンラインを図20に示す
X座標0.5の位置では、Xスキャンラインはベクトル
列IおよびVIと交わることになり、図19に示すドロッ
プアウト補正テーブルから、その時の交点のX座標とし
て“1”および“2.5”が得られる。 (16)ステップS22で得られた全ての交点のソート
を行なってから(ステップS23)、ソートした交点間
を交互に検索し、各交点間の距離が1ドット以下である
か否かを判断し(ステップS24)、1ドット以下の場
合(YES判定の場合)、ドットデータメモリ25にお
けるそのドットを塗り潰すことにより(ステップS2
5)、ドットデータメモリ25のドットパターンに対す
るドロップアウト部分の補足・書込が行なわれる。
X座標0.5の位置では、Xスキャンラインはベクトル
列IおよびVIと交わることになり、図19に示すドロッ
プアウト補正テーブルから、その時の交点のX座標とし
て“1”および“2.5”が得られる。 (16)ステップS22で得られた全ての交点のソート
を行なってから(ステップS23)、ソートした交点間
を交互に検索し、各交点間の距離が1ドット以下である
か否かを判断し(ステップS24)、1ドット以下の場
合(YES判定の場合)、ドットデータメモリ25にお
けるそのドットを塗り潰すことにより(ステップS2
5)、ドットデータメモリ25のドットパターンに対す
るドロップアウト部分の補足・書込が行なわれる。
【0085】例えば、図22に示すように、Xスキャン
ラインがX座標2.5に位置する時には、Xスキャンラ
インはベクトル列I,IV,V,VI と交わることになり、こ
の時点で図21に示すように更新されているドロップア
ウト補正テーブルの現交点(Y)から、Xスキャンライ
ンとアウトラインフォントとの交点のY座標として
“1”,“2”,“9.75”,“10”の4つが得ら
れる(図24参照)。なお、このとき、X座標2.5の
Xスキャンライン上で、塗り潰し処理回路24により塗
り潰されているドットは、図23に示すように、Y座標
“1”と“2”との間のドットのみである。
ラインがX座標2.5に位置する時には、Xスキャンラ
インはベクトル列I,IV,V,VI と交わることになり、こ
の時点で図21に示すように更新されているドロップア
ウト補正テーブルの現交点(Y)から、Xスキャンライ
ンとアウトラインフォントとの交点のY座標として
“1”,“2”,“9.75”,“10”の4つが得ら
れる(図24参照)。なお、このとき、X座標2.5の
Xスキャンライン上で、塗り潰し処理回路24により塗
り潰されているドットは、図23に示すように、Y座標
“1”と“2”との間のドットのみである。
【0086】上述のように得られた4つの交点をソート
することにより、塗り潰すべき範囲は、図24に示すよ
うに、Y座標“1”と“2”との間、および、Y座標
“9.75”と“10”との間であることが分かり、こ
れらの交点間の各距離DY3,DY4は1ドットおよび
0.25ドットであっていずれも1ドット以下であるの
で、塗り潰し処理つまりドロップアウト補正処理が行な
われる。
することにより、塗り潰すべき範囲は、図24に示すよ
うに、Y座標“1”と“2”との間、および、Y座標
“9.75”と“10”との間であることが分かり、こ
れらの交点間の各距離DY3,DY4は1ドットおよび
0.25ドットであっていずれも1ドット以下であるの
で、塗り潰し処理つまりドロップアウト補正処理が行な
われる。
【0087】これによって、図25に示すように、塗り
潰し処理回路24による塗り潰し処理時点では欠落して
いた部分が補足されることになり、最終的には、図26
に示すように、図15に示した状態では欠落していたド
ットB1,B2について、塗り潰し補正されたドットパ
ターンを得ることができる。 (17)各交点間の距離が1ドットよりも大きい場合
(ステップS24でNO判定の場合)、もしくは、ステ
ップS25による塗り潰し処理を行なった後、現Xスキ
ャンラインと交差したベクトルが、1ドットだけX軸正
方向へ移動した次回のXスキャンラインとも交差するか
を調査し、交差しない場合(ベクトルオフセットを更新
する場合つまりステップS26でYES判定の場合)に
は、現ベクトル列の開始ベクトルのオフセットを次のベ
クトルに変更し、変更したベクトルのY軸方向の単位変
化量を算出してドロップアウト補正テーブルに設定する
とともに、更新した開始ベクトルのY座標に単位変化量
÷2を加算したものを、初期値として現交点に設定して
更新してから(ステップS27)、ステップS21へ移
行する。
潰し処理回路24による塗り潰し処理時点では欠落して
いた部分が補足されることになり、最終的には、図26
に示すように、図15に示した状態では欠落していたド
ットB1,B2について、塗り潰し補正されたドットパ
ターンを得ることができる。 (17)各交点間の距離が1ドットよりも大きい場合
(ステップS24でNO判定の場合)、もしくは、ステ
ップS25による塗り潰し処理を行なった後、現Xスキ
ャンラインと交差したベクトルが、1ドットだけX軸正
方向へ移動した次回のXスキャンラインとも交差するか
を調査し、交差しない場合(ベクトルオフセットを更新
する場合つまりステップS26でYES判定の場合)に
は、現ベクトル列の開始ベクトルのオフセットを次のベ
クトルに変更し、変更したベクトルのY軸方向の単位変
化量を算出してドロップアウト補正テーブルに設定する
とともに、更新した開始ベクトルのY座標に単位変化量
÷2を加算したものを、初期値として現交点に設定して
更新してから(ステップS27)、ステップS21へ移
行する。
【0088】なお、図19に示すように、ステップS2
0によるドロップアウト補正テーブル作成時に、全ベク
トル列についての単位変化量,現交点をドロップアウト
補正テーブルに設定しておけば、ステップS27におい
ては、前述のような更新処理を行なう必要はなく、ドロ
ップアウト補正テーブル上で現交点を参照すべきベクト
ル列を、次のベクトル列に切り換えるような更新処理を
行なうだけでよい。
0によるドロップアウト補正テーブル作成時に、全ベク
トル列についての単位変化量,現交点をドロップアウト
補正テーブルに設定しておけば、ステップS27におい
ては、前述のような更新処理を行なう必要はなく、ドロ
ップアウト補正テーブル上で現交点を参照すべきベクト
ル列を、次のベクトル列に切り換えるような更新処理を
行なうだけでよい。
【0089】一方、現Xスキャンラインと交差したベク
トルが、1ドットだけX軸正方向へ移動した次回のXス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS26でNO判定の場
合)には、そのままステップS21に移行する。このよ
うに、本発明の第1実施例によれば、ベクトルデータの
座標系をドットとドットとの間の境界上に定義してアウ
トラインフォントをドット境界上に作成した場合に、ア
ウトラインフォントの主走査方向の座標に、単位変化量
を2で除算した値を予め加算しておくことにより、見掛
け上、スキャンラインをドット上に配置しているのと同
一の状態になるため、アウトラインフォントの内部を塗
り潰すことができ、アウトラインフォント本来の線幅を
忠実に再現することができ、ドットパターンの品質、特
に低解像度用のドット(低ドットサイズ)の品質が大幅
に向上するのである。
トルが、1ドットだけX軸正方向へ移動した次回のXス
キャンラインとも交差する場合(ベクトルオフセットを
更新しない場合つまりステップS26でNO判定の場
合)には、そのままステップS21に移行する。このよ
うに、本発明の第1実施例によれば、ベクトルデータの
座標系をドットとドットとの間の境界上に定義してアウ
トラインフォントをドット境界上に作成した場合に、ア
ウトラインフォントの主走査方向の座標に、単位変化量
を2で除算した値を予め加算しておくことにより、見掛
け上、スキャンラインをドット上に配置しているのと同
一の状態になるため、アウトラインフォントの内部を塗
り潰すことができ、アウトラインフォント本来の線幅を
忠実に再現することができ、ドットパターンの品質、特
に低解像度用のドット(低ドットサイズ)の品質が大幅
に向上するのである。
【0090】つまり、例えば、図27に示すように、線
幅DY5が2ドットのアウトラインフォントに対して本
実施例の塗り潰し処理を施すことにより、図28に示す
ように、線幅DY6として本来の線幅2ドットを忠実に
再現したドットパターンを得ることができる。また、図
29に示すように、中央部に幅1ドット分の空白部分の
あるアウトラインフォントに対して本実施例の塗り潰し
処理を施すことにより、従来技術では図57に示すよう
に空白部分まで塗り潰されていたのが、図30に示すよ
うに、その空白部分を、ドットパターンにおいて忠実に
再現することができる。
幅DY5が2ドットのアウトラインフォントに対して本
実施例の塗り潰し処理を施すことにより、図28に示す
ように、線幅DY6として本来の線幅2ドットを忠実に
再現したドットパターンを得ることができる。また、図
29に示すように、中央部に幅1ドット分の空白部分の
あるアウトラインフォントに対して本実施例の塗り潰し
処理を施すことにより、従来技術では図57に示すよう
に空白部分まで塗り潰されていたのが、図30に示すよ
うに、その空白部分を、ドットパターンにおいて忠実に
再現することができる。
【0091】さらに、本発明の第1実施例によれば、ド
ットデータメモリ25に一旦ドットパターンを作成した
後、主走査方向と副走査方向とを入れ替え、ドロップア
ウト補正テーブル作成回路27により作成したドロップ
アウト補正テーブルを参照しながら、ドロップアウト補
正回路28により間隔が1ドット以下の欠落部分(ドロ
ップアウト部分)の補足・書込が行なわれ、本来の線幅
を忠実に再現しながら、ドロップアウトの発生が確実に
防止され、ドットパターンの品質向上に大きく寄与す
る。
ットデータメモリ25に一旦ドットパターンを作成した
後、主走査方向と副走査方向とを入れ替え、ドロップア
ウト補正テーブル作成回路27により作成したドロップ
アウト補正テーブルを参照しながら、ドロップアウト補
正回路28により間隔が1ドット以下の欠落部分(ドロ
ップアウト部分)の補足・書込が行なわれ、本来の線幅
を忠実に再現しながら、ドロップアウトの発生が確実に
防止され、ドットパターンの品質向上に大きく寄与す
る。
【0092】なお、上述した第1実施例では、本発明
は、図5に示すような英字“T”を展開処理する場合に
適用した例を説明しているが、本発明は、これに限定さ
れるものではなく、他の種々の文字,記号,図形等をド
ット展開する場合にも同様に適用され、上述した実施例
と同様の作用効果を得ることができる。また、上述した
第1実施例では、Yスキャンを行なった後、補正時にX
スキャンを行なっているが、逆に、Xスキャンを行なっ
た後、補正時にYスキャンを行なうようにしてもよい。
は、図5に示すような英字“T”を展開処理する場合に
適用した例を説明しているが、本発明は、これに限定さ
れるものではなく、他の種々の文字,記号,図形等をド
ット展開する場合にも同様に適用され、上述した実施例
と同様の作用効果を得ることができる。また、上述した
第1実施例では、Yスキャンを行なった後、補正時にX
スキャンを行なっているが、逆に、Xスキャンを行なっ
た後、補正時にYスキャンを行なうようにしてもよい。
【0093】(b)第2実施例の説明 ところで、前述したように、アウトラインフォントの座
標を各ドット上に定義して行なう塗り潰し処理では、展
開されたドットパターンの線幅がアウトラインフォント
本来の線幅よりも1ドット分増加したり、幅1ドット分
の空白部分が塗り潰されたりして、特に低ドットサイズ
の場合にその影響が大きく、ドットパターンの品質劣化
を招いている。
標を各ドット上に定義して行なう塗り潰し処理では、展
開されたドットパターンの線幅がアウトラインフォント
本来の線幅よりも1ドット分増加したり、幅1ドット分
の空白部分が塗り潰されたりして、特に低ドットサイズ
の場合にその影響が大きく、ドットパターンの品質劣化
を招いている。
【0094】これに対して、前述した第1実施例のごと
く、アウトラインフォントの座標をドット境界上に定義
して行なう塗り潰し処理では、前述した通り、アウトラ
インフォント本来の線幅を忠実に再現できる。ただし、
この場合、ドロップアウト部分の補正を行なうため、2
方向のスキャン動作が必要で、展開処理に要する時間が
従来の2倍程度となるため、特に、高ドットサイズの場
合にその影響を指数関数的に受け、ドット展開処理性能
の低下要因になるおそれがある。
く、アウトラインフォントの座標をドット境界上に定義
して行なう塗り潰し処理では、前述した通り、アウトラ
インフォント本来の線幅を忠実に再現できる。ただし、
この場合、ドロップアウト部分の補正を行なうため、2
方向のスキャン動作が必要で、展開処理に要する時間が
従来の2倍程度となるため、特に、高ドットサイズの場
合にその影響を指数関数的に受け、ドット展開処理性能
の低下要因になるおそれがある。
【0095】そこで、この第2実施例では、ベクトルデ
ータの座標系をドット上に定義してドット上に作成した
アウトラインフォントに対して塗り潰し処理を行なう場
合を第1の展開処理方式(アウトライン展開方式1)と
し、ベクトルデータの座標系をドットとドットとの間の
境界上に定義してドット境界上に作成したアウトライン
フォントに対して塗り潰し処理を行なう場合を第2の展
開処理方式(アウトライン展開方式2)とし、これら2
種類の展開処理方式を、アウトラインフォントに関する
情報に応じて適宜切り換えている。これにより、低ドッ
トサイズのドットパターン品質の向上をはかりながら、
高ドットサイズでのドット展開処理性能の低下を防ぐこ
とができるようにしている。
ータの座標系をドット上に定義してドット上に作成した
アウトラインフォントに対して塗り潰し処理を行なう場
合を第1の展開処理方式(アウトライン展開方式1)と
し、ベクトルデータの座標系をドットとドットとの間の
境界上に定義してドット境界上に作成したアウトライン
フォントに対して塗り潰し処理を行なう場合を第2の展
開処理方式(アウトライン展開方式2)とし、これら2
種類の展開処理方式を、アウトラインフォントに関する
情報に応じて適宜切り換えている。これにより、低ドッ
トサイズのドットパターン品質の向上をはかりながら、
高ドットサイズでのドット展開処理性能の低下を防ぐこ
とができるようにしている。
【0096】図33は本発明の第2実施例としてのアウ
トラインフォント展開装置を示すブロック図であり、こ
の図33において、この図33に示す第2実施例のアウ
トラインフォント展開装置も、基本的には、ベクトルデ
ータに基づいて輪郭線(アウトライン)を順番に描画し
てアウトラインフォントを作成し、アウトラインフォン
トの内部を塗り潰してドットパターンを作成するもので
ある。
トラインフォント展開装置を示すブロック図であり、こ
の図33において、この図33に示す第2実施例のアウ
トラインフォント展開装置も、基本的には、ベクトルデ
ータに基づいて輪郭線(アウトライン)を順番に描画し
てアウトラインフォントを作成し、アウトラインフォン
トの内部を塗り潰してドットパターンを作成するもので
ある。
【0097】図33において、31A,31Bはアウト
ラインデータファイルで、これらのアウトラインデータ
ファイル31A,31Bは、例えば、書体(図中、書体
A,B;例えば明朝体,ゴシック体等)毎にそなえら
れ、各ファイル31A,31Bにおけるアウトラインフ
ォントのデータは、ベクトルによる直線データや曲線近
似の数式(ベジェ曲線,スプライン曲線等)によって表
現されている。
ラインデータファイルで、これらのアウトラインデータ
ファイル31A,31Bは、例えば、書体(図中、書体
A,B;例えば明朝体,ゴシック体等)毎にそなえら
れ、各ファイル31A,31Bにおけるアウトラインフ
ォントのデータは、ベクトルによる直線データや曲線近
似の数式(ベジェ曲線,スプライン曲線等)によって表
現されている。
【0098】また、各ファイル31A,31Bには、用
途に応じて、書体(明朝体,ゴシック体等),コードテ
ーブル(コード範囲;記号/英数字/ひらがな/カタカ
ナ/漢字等),文字ごとに、展開処理方式を切り換える
際に前述した第1の展開処理方式または第2の展開処理
方式のいずれか一方を指定して切り換えるための処理方
式指定情報が予め設定されている。
途に応じて、書体(明朝体,ゴシック体等),コードテ
ーブル(コード範囲;記号/英数字/ひらがな/カタカ
ナ/漢字等),文字ごとに、展開処理方式を切り換える
際に前述した第1の展開処理方式または第2の展開処理
方式のいずれか一方を指定して切り換えるための処理方
式指定情報が予め設定されている。
【0099】この第2実施例では、展開処理方式を切り
換える手法として、以下の5つがある。 出力ドットサイズ(作成すべきドットパターンのドッ
トサイズ)が、予め設定されるドットサイズ閾値よりも
大きいか小さいかに応じて、展開処理方式を切り換え
る。
換える手法として、以下の5つがある。 出力ドットサイズ(作成すべきドットパターンのドッ
トサイズ)が、予め設定されるドットサイズ閾値よりも
大きいか小さいかに応じて、展開処理方式を切り換え
る。
【0100】書体に応じた展開処理方式を指定する処
理方式指定情報を、アウトラインデータファイル31
A,31B内に予め設定しておく。 文字のコードによって記号/英数字/ひらがな/カタ
カナ/漢字等のコードテーブルに区切り、各コードテー
ブルに応じた展開処理方式を指定する処理方式指定情報
を、アウトラインデータファイル31A,31B内に予
め設定しておく。
理方式指定情報を、アウトラインデータファイル31
A,31B内に予め設定しておく。 文字のコードによって記号/英数字/ひらがな/カタ
カナ/漢字等のコードテーブルに区切り、各コードテー
ブルに応じた展開処理方式を指定する処理方式指定情報
を、アウトラインデータファイル31A,31B内に予
め設定しておく。
【0101】文字毎に最適な展開処理方式を指定する
処理方式指定情報を、アウトラインデータファイル31
A,31B内に予め設定しておく。 アウトラインフォントの展開結果を出力する出力装置
に応じて、展開処理方式を切り換える。 さて、32はキーボード等によって構成される情報入力
部で、この情報入力部32は、上述した項目〜の展
開処理方式切換手法のいずれを選択して切換を行なうか
を指定する切換手法指定情報と、展開処理方式をドット
サイズに応じて切り換える際に必要になるドットサイズ
閾値と、出力ドットサイズと、展開されたドットパター
ンの出力装置(プリンタ37,CRT38)を指定する
出力装置指定情報(上述した項目の展開処理方式切換
を実行するための情報)とを入力するためのものであ
る。
処理方式指定情報を、アウトラインデータファイル31
A,31B内に予め設定しておく。 アウトラインフォントの展開結果を出力する出力装置
に応じて、展開処理方式を切り換える。 さて、32はキーボード等によって構成される情報入力
部で、この情報入力部32は、上述した項目〜の展
開処理方式切換手法のいずれを選択して切換を行なうか
を指定する切換手法指定情報と、展開処理方式をドット
サイズに応じて切り換える際に必要になるドットサイズ
閾値と、出力ドットサイズと、展開されたドットパター
ンの出力装置(プリンタ37,CRT38)を指定する
出力装置指定情報(上述した項目の展開処理方式切換
を実行するための情報)とを入力するためのものであ
る。
【0102】33は第1の塗り潰し処理部(第1の展開
処理部)で、この第1の塗り潰し処理部33は、ベクト
ルデータの座標系をドット上に定義し、ドット上に作成
したアウトラインフォントに対して塗り潰し処理を行な
って、第1の展開処理方式(従来の展開処理手法)を実
現するものである。この第1の塗り潰し処理部33で
は、アウトラインフォントの座標が各ドット上に定義さ
れ、本来、図38に示すようなアウトラインフォント
が、塗り潰し処理を行なうと、図39に示すように、線
幅が1ドット分増加する。ただし、1方向のみのスキャ
ン処理(例えばYスキャンのみ)でドット展開を行なう
ことができる。
処理部)で、この第1の塗り潰し処理部33は、ベクト
ルデータの座標系をドット上に定義し、ドット上に作成
したアウトラインフォントに対して塗り潰し処理を行な
って、第1の展開処理方式(従来の展開処理手法)を実
現するものである。この第1の塗り潰し処理部33で
は、アウトラインフォントの座標が各ドット上に定義さ
れ、本来、図38に示すようなアウトラインフォント
が、塗り潰し処理を行なうと、図39に示すように、線
幅が1ドット分増加する。ただし、1方向のみのスキャ
ン処理(例えばYスキャンのみ)でドット展開を行なう
ことができる。
【0103】また、34は第2の塗り潰し処理部(第2
の展開処理部)で、この第2の塗り潰し処理部34は、
ベクトルデータの座標系をドットとドットとの間の境界
上に定義し、ドット境界上に作成したアウトラインフォ
ントに対して塗り潰し処理を行なって、第2の展開処理
方式(前述した第1実施例により説明した展開処理手
法)を実現するものである。この第2の塗り潰し処理部
34では、図40に示すように、アウトラインフォント
の座標がドット境界上に定義され、塗り潰し処理を行な
うと、図41に示すように、アウトラインフォント本来
の線幅を再現することができる。ただし、第1実施例で
も前述したように、ドロップアウト部分の補正を行なう
ために、2方向のスキャン処理(YスキャンおよびXス
キャン)が必要になる。
の展開処理部)で、この第2の塗り潰し処理部34は、
ベクトルデータの座標系をドットとドットとの間の境界
上に定義し、ドット境界上に作成したアウトラインフォ
ントに対して塗り潰し処理を行なって、第2の展開処理
方式(前述した第1実施例により説明した展開処理手
法)を実現するものである。この第2の塗り潰し処理部
34では、図40に示すように、アウトラインフォント
の座標がドット境界上に定義され、塗り潰し処理を行な
うと、図41に示すように、アウトラインフォント本来
の線幅を再現することができる。ただし、第1実施例で
も前述したように、ドロップアウト部分の補正を行なう
ために、2方向のスキャン処理(YスキャンおよびXス
キャン)が必要になる。
【0104】そして、35は処理方式切換判別部(切換
部)で、この処理方式切換判別部35は、情報入力部3
2から入力された切換手法指定情報および出力装置指定
情報に応じた前述した5つの切換手法のいずれかを採用
し、その切換手法に基づいて、第1の展開処理方式また
は第2の展開処理方式のいずれを用いて展開処理を行な
うかを判別し、第1の塗り潰し処理部33または第2の
塗り潰し処理部34のいずれか一方に選択的に切り換え
て、アウトラインフォントに対する塗り潰し処理を行な
わせるものである。
部)で、この処理方式切換判別部35は、情報入力部3
2から入力された切換手法指定情報および出力装置指定
情報に応じた前述した5つの切換手法のいずれかを採用
し、その切換手法に基づいて、第1の展開処理方式また
は第2の展開処理方式のいずれを用いて展開処理を行な
うかを判別し、第1の塗り潰し処理部33または第2の
塗り潰し処理部34のいずれか一方に選択的に切り換え
て、アウトラインフォントに対する塗り潰し処理を行な
わせるものである。
【0105】36は出力処理部で、この出力処理部36
は、第1の塗り潰し処理部33または第2の塗り潰し処
理部34の塗り潰し処理によって展開されたドットパタ
ーンを、出力装置指定情報により指定されたプリンタ3
7,CRT38のいずれか一方もしくは両方へ出力する
ためのものである。なお、上述した処理方式切換判別部
35の切換動作については図34〜図37により詳述す
るが、切換手法指定情報により前記項目の切換手法を
指定すると、処理方式切換判別部35は、出力ドットサ
イズがドットサイズ閾値以上または閾値よりも大きい場
合、第1の塗り潰し処理部33に切り換える一方、出力
ドットサイズが閾値未満または閾値以下である場合、第
2の塗り潰し処理部34に切り換えるようになってい
る。
は、第1の塗り潰し処理部33または第2の塗り潰し処
理部34の塗り潰し処理によって展開されたドットパタ
ーンを、出力装置指定情報により指定されたプリンタ3
7,CRT38のいずれか一方もしくは両方へ出力する
ためのものである。なお、上述した処理方式切換判別部
35の切換動作については図34〜図37により詳述す
るが、切換手法指定情報により前記項目の切換手法を
指定すると、処理方式切換判別部35は、出力ドットサ
イズがドットサイズ閾値以上または閾値よりも大きい場
合、第1の塗り潰し処理部33に切り換える一方、出力
ドットサイズが閾値未満または閾値以下である場合、第
2の塗り潰し処理部34に切り換えるようになってい
る。
【0106】切換手法指定情報により前記項目の切換
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、書体毎に予め設定されている
処理方式指定情報に応じて塗り潰し処理部33と34と
の切換を行なうようになっている。
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、書体毎に予め設定されている
処理方式指定情報に応じて塗り潰し処理部33と34と
の切換を行なうようになっている。
【0107】切換手法指定情報により前記項目の切換
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、コードテーブル毎に予め設定
されている処理方式指定情報に応じて塗り潰し処理部3
3と34との切換を行なうようになっている。
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、コードテーブル毎に予め設定
されている処理方式指定情報に応じて塗り潰し処理部3
3と34との切換を行なうようになっている。
【0108】切換手法指定情報により前記項目の切換
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、文字毎に予め設定されている
処理方式指定情報に応じて塗り潰し処理部33と34と
の切換を行なうようになっている。
手法を指定すると、処理方式切換判別部35は、出力ド
ットサイズがドットサイズ閾値以上または閾値よりも大
きい場合、無条件で第1の塗り潰し処理部33に切り換
える一方、出力ドットサイズがドットサイズ閾値未満ま
たは閾値以下である場合、文字毎に予め設定されている
処理方式指定情報に応じて塗り潰し処理部33と34と
の切換を行なうようになっている。
【0109】出力装置指定情報に基づいて、処理方式切
換判別部35は、出力装置(プリンタ37/CRT3
8)を判別し、出力装置がCRT38である時には、無
条件で第1の塗り潰し処理部33に切り換える一方、出
力装置がプリンタ37である時には、出力ドットサイズ
がドットサイズ閾値以上または閾値よりも大きい場合、
第1の塗り潰し処理部33に切り換える一方、出力ドッ
トサイズがドットサイズ閾値未満または閾値以下である
場合、第2の塗り潰し処理部34に切り換えるようにな
っている。
換判別部35は、出力装置(プリンタ37/CRT3
8)を判別し、出力装置がCRT38である時には、無
条件で第1の塗り潰し処理部33に切り換える一方、出
力装置がプリンタ37である時には、出力ドットサイズ
がドットサイズ閾値以上または閾値よりも大きい場合、
第1の塗り潰し処理部33に切り換える一方、出力ドッ
トサイズがドットサイズ閾値未満または閾値以下である
場合、第2の塗り潰し処理部34に切り換えるようにな
っている。
【0110】上述のごとく構成された第2実施例のアウ
トラインフォント展開装置の動作を、図34〜図37に
示すフローチャートに従って説明する。図34に示すフ
ローチャート(ステップS31〜S38)に従い、この
第2実施例のメインルーチンについて説明すると、ま
ず、情報入力部32により、前述した切換手法指定情
報,ドットサイズ閾値,出力ドットサイズ,出力装置指
定情報等を入力するとともに、アウトラインデータファ
イル31A,31Bから展開すべきアウトラインデータ
を入力する(ステップS31)。
トラインフォント展開装置の動作を、図34〜図37に
示すフローチャートに従って説明する。図34に示すフ
ローチャート(ステップS31〜S38)に従い、この
第2実施例のメインルーチンについて説明すると、ま
ず、情報入力部32により、前述した切換手法指定情
報,ドットサイズ閾値,出力ドットサイズ,出力装置指
定情報等を入力するとともに、アウトラインデータファ
イル31A,31Bから展開すべきアウトラインデータ
を入力する(ステップS31)。
【0111】そして、処理方式切換判別部35におい
て、切換手法指定情報および出力装置指定情報に基づい
てステップS32〜S36による判定処理を行ない、各
判定結果に応じて、図35〜図37に示す、実際に展開
処理方式の切換を行なうサブルーチンへ移行する。ステ
ップS32では、切換手法指定情報が出力ドットサイズ
による切換(前記項目による切換)を指定するもので
あるか否かを判定し、この切換を指定している場合(Y
ES判定の場合)には、図35に示す処理動作へ移行す
る。
て、切換手法指定情報および出力装置指定情報に基づい
てステップS32〜S36による判定処理を行ない、各
判定結果に応じて、図35〜図37に示す、実際に展開
処理方式の切換を行なうサブルーチンへ移行する。ステ
ップS32では、切換手法指定情報が出力ドットサイズ
による切換(前記項目による切換)を指定するもので
あるか否かを判定し、この切換を指定している場合(Y
ES判定の場合)には、図35に示す処理動作へ移行す
る。
【0112】ステップS32で切換手法指定情報が出力
ドットサイズによる切換を指定していないと判定された
場合(NO判定の場合)には、ステップS33におい
て、切換手法指定情報が書体による切換(前記項目に
よる切換)を指定するものであるか否かを判定し、この
切換を指定している場合(YES判定の場合)には、図
36に示す処理動作へ移行する。
ドットサイズによる切換を指定していないと判定された
場合(NO判定の場合)には、ステップS33におい
て、切換手法指定情報が書体による切換(前記項目に
よる切換)を指定するものであるか否かを判定し、この
切換を指定している場合(YES判定の場合)には、図
36に示す処理動作へ移行する。
【0113】ステップS33で切換手法指定情報が書体
による切換を指定していないと判定された場合(NO判
定の場合)には、ステップS34において、切換手法指
定情報がコードテーブルによる切換(前記項目による
切換)を指定するものであるか否かを判定し、この切換
を指定している場合(YES判定の場合)には、図37
に示す処理動作へ移行する。
による切換を指定していないと判定された場合(NO判
定の場合)には、ステップS34において、切換手法指
定情報がコードテーブルによる切換(前記項目による
切換)を指定するものであるか否かを判定し、この切換
を指定している場合(YES判定の場合)には、図37
に示す処理動作へ移行する。
【0114】ステップS34で切換手法指定情報がコー
ドテーブルによる切換を指定していないと判定された場
合(NO判定の場合)には、ステップS35において、
切換手法指定情報が文字による切換(前記項目による
切換)を指定するものであるか否かを判定し、この切換
を指定している場合(YES判定の場合)には、コード
テーブルによる切換の場合と同様の図37に示す処理動
作へ移行する。
ドテーブルによる切換を指定していないと判定された場
合(NO判定の場合)には、ステップS35において、
切換手法指定情報が文字による切換(前記項目による
切換)を指定するものであるか否かを判定し、この切換
を指定している場合(YES判定の場合)には、コード
テーブルによる切換の場合と同様の図37に示す処理動
作へ移行する。
【0115】ステップS35で切換手法指定情報が文字
による切換を指定していないと判定された場合(NO判
定の場合)には、ステップS36において、出力装置指
定情報に基づきプリンタ37に出力するか否かを判定し
(ステップS36)、プリンタ37に出力する場合(Y
ES判定の場合)には、ドットサイズによる切換の場合
と同様の図35に示す処理動作へ移行する。
による切換を指定していないと判定された場合(NO判
定の場合)には、ステップS36において、出力装置指
定情報に基づきプリンタ37に出力するか否かを判定し
(ステップS36)、プリンタ37に出力する場合(Y
ES判定の場合)には、ドットサイズによる切換の場合
と同様の図35に示す処理動作へ移行する。
【0116】ステップS36でプリンタ37へ出力しな
いと判定された場合(NO判定の場合)には、ドットパ
ターンの品質よりも性能(処理速度)を重視するCRT
38への出力のみを行なうものと判断し、展開対象文字
が無くなるまで(ステップS37でNO判定となるま
で)、出力ドットサイズに関わらず、第1の塗り潰し処
理部33によるアウトライン展開方式1を繰り返し実行
する。これにより、CRT38への出力性能の低下を防
止することができる。
いと判定された場合(NO判定の場合)には、ドットパ
ターンの品質よりも性能(処理速度)を重視するCRT
38への出力のみを行なうものと判断し、展開対象文字
が無くなるまで(ステップS37でNO判定となるま
で)、出力ドットサイズに関わらず、第1の塗り潰し処
理部33によるアウトライン展開方式1を繰り返し実行
する。これにより、CRT38への出力性能の低下を防
止することができる。
【0117】さて、図34のステップS32で切換手法
指定情報が出力ドットサイズによる切換を指定している
と判定した場合、もしくは、図34のステップS36で
プリンタ37へ出力すると判定した場合には、図35に
示すように、出力ドットサイズとドットサイズ閾値とを
比較する(ステップS41)。そして、出力ドットサイ
ズがドットサイズ閾値以上または閾値よりも大きい場
合、展開対象文字が無くなるまで(ステップS42でN
O判定となるまで)、第1の塗り潰し処理部33に切り
換えてアウトライン展開方式1を繰り返し実行する(ス
テップS43)。一方、出力ドットサイズがドットサイ
ズ閾値未満または閾値以下である場合、展開対象文字が
無くなるまで(ステップS44でNO判定となるま
で)、第2の塗り潰し処理部34に切り換えてアウトラ
イン展開方式2を繰り返し実行する(ステップS4
5)。
指定情報が出力ドットサイズによる切換を指定している
と判定した場合、もしくは、図34のステップS36で
プリンタ37へ出力すると判定した場合には、図35に
示すように、出力ドットサイズとドットサイズ閾値とを
比較する(ステップS41)。そして、出力ドットサイ
ズがドットサイズ閾値以上または閾値よりも大きい場
合、展開対象文字が無くなるまで(ステップS42でN
O判定となるまで)、第1の塗り潰し処理部33に切り
換えてアウトライン展開方式1を繰り返し実行する(ス
テップS43)。一方、出力ドットサイズがドットサイ
ズ閾値未満または閾値以下である場合、展開対象文字が
無くなるまで(ステップS44でNO判定となるま
で)、第2の塗り潰し処理部34に切り換えてアウトラ
イン展開方式2を繰り返し実行する(ステップS4
5)。
【0118】これにより、第1の展開処理方式による1
ドット分の線幅増加の影響が大きい低ドットサイズの場
合には、アウトラインフォント本来の線幅の忠実な再現
が可能な第2の展開処理方式が選択され、ドットパター
ンの品質の大幅な向上が実現される。一方、1ドット分
の線幅増加の影響が小さい高ドットサイズの場合には、
第2の展開処理方式よりも処理速度の速い第1の展開処
理方式が選択され、ドット展開処理性能の低下が確実に
防止される。
ドット分の線幅増加の影響が大きい低ドットサイズの場
合には、アウトラインフォント本来の線幅の忠実な再現
が可能な第2の展開処理方式が選択され、ドットパター
ンの品質の大幅な向上が実現される。一方、1ドット分
の線幅増加の影響が小さい高ドットサイズの場合には、
第2の展開処理方式よりも処理速度の速い第1の展開処
理方式が選択され、ドット展開処理性能の低下が確実に
防止される。
【0119】また、図34のステップS33で切換手法
指定情報が書体による切換を指定していると判定した場
合には、図36に示すように、まず、出力ドットサイズ
と書体毎に設定されるドットサイズ閾値とを比較する
(ステップS51)。そして、出力ドットサイズがドッ
トサイズ閾値以上または閾値よりも大きい場合、展開対
象文字が無くなるまで(ステップS52でNO判定とな
るまで)、第1の塗り潰し処理部33に切り換えてアウ
トライン展開方式1を繰り返し実行する(ステップS5
3)。
指定情報が書体による切換を指定していると判定した場
合には、図36に示すように、まず、出力ドットサイズ
と書体毎に設定されるドットサイズ閾値とを比較する
(ステップS51)。そして、出力ドットサイズがドッ
トサイズ閾値以上または閾値よりも大きい場合、展開対
象文字が無くなるまで(ステップS52でNO判定とな
るまで)、第1の塗り潰し処理部33に切り換えてアウ
トライン展開方式1を繰り返し実行する(ステップS5
3)。
【0120】一方、出力ドットサイズがドットサイズ閾
値未満または閾値以下である場合、書体毎に予め設定さ
れている処理方式指定情報が、第1の展開処理方式また
は第2の展開処理方式のいずれを指定しているかを判定
する(ステップS54)。第1の展開処理方式を指定し
ている場合には、展開対象文字が無くなるまで(ステッ
プS55でNO判定となるまで)、第1の塗り潰し処理
部33に切り換えてアウトライン展開方式1を繰り返し
実行する一方(ステップS56)、第2の展開処理方式
を指定している場合には、展開対象文字が無くなるまで
(ステップS57でNO判定となるまで)、第2の塗り
潰し処理部34に切り換えてアウトライン展開方式2を
繰り返し実行する(ステップS58)。
値未満または閾値以下である場合、書体毎に予め設定さ
れている処理方式指定情報が、第1の展開処理方式また
は第2の展開処理方式のいずれを指定しているかを判定
する(ステップS54)。第1の展開処理方式を指定し
ている場合には、展開対象文字が無くなるまで(ステッ
プS55でNO判定となるまで)、第1の塗り潰し処理
部33に切り換えてアウトライン展開方式1を繰り返し
実行する一方(ステップS56)、第2の展開処理方式
を指定している場合には、展開対象文字が無くなるまで
(ステップS57でNO判定となるまで)、第2の塗り
潰し処理部34に切り換えてアウトライン展開方式2を
繰り返し実行する(ステップS58)。
【0121】これにより、ゴシック体などの線が太い文
字については処理方式指定情報により第2の展開処理方
式を指定することで、アウトラインフォント本来の線幅
の忠実な再現が可能な第2の展開処理方式が選択され、
ドットパターンの品質の大幅な向上が実現される。一
方、明朝体などの比較的線画細い文字については処理方
式指定情報により第1の展開処理方式を指定すること
で、ドット展開処理性能低下が確実に防止される。
字については処理方式指定情報により第2の展開処理方
式を指定することで、アウトラインフォント本来の線幅
の忠実な再現が可能な第2の展開処理方式が選択され、
ドットパターンの品質の大幅な向上が実現される。一
方、明朝体などの比較的線画細い文字については処理方
式指定情報により第1の展開処理方式を指定すること
で、ドット展開処理性能低下が確実に防止される。
【0122】さらに、図34のステップS34で切換手
法指定情報がコードテーブルによる切換を指定している
と判定した場合、もしくは、図34のステップS35で
切換手法指定情報が文字による切換を指定していると判
定した場合には、図37に示すように、まず、今回の展
開対象文字が切換対象のものであるか否かを判定し(ス
テップS61)、対象外(NO判定)であれば処理を終
了する一方、対象(YES判定)であれば、出力ドット
サイズと、コードテーブル毎もしくは文字毎に設定され
るドットサイズ閾値とを比較する(ステップS62)。
法指定情報がコードテーブルによる切換を指定している
と判定した場合、もしくは、図34のステップS35で
切換手法指定情報が文字による切換を指定していると判
定した場合には、図37に示すように、まず、今回の展
開対象文字が切換対象のものであるか否かを判定し(ス
テップS61)、対象外(NO判定)であれば処理を終
了する一方、対象(YES判定)であれば、出力ドット
サイズと、コードテーブル毎もしくは文字毎に設定され
るドットサイズ閾値とを比較する(ステップS62)。
【0123】そして、出力ドットサイズがドットサイズ
閾値以上または閾値よりも大きい場合、第1の塗り潰し
処理部33に切り換えてアウトライン展開方式1を実行
する(ステップS63)。一方、出力ドットサイズがド
ットサイズ閾値未満または閾値以下である場合、コード
テーブル毎または文字毎に予め設定されている処理方式
指定情報が、第1の展開処理方式または第2の展開処理
方式のいずれを指定しているかを判定し(ステップS6
4)、第1の展開処理方式を指定している場合には、第
1の塗り潰し処理部33に切り換えてアウトライン展開
方式1を実行する一方(ステップS65)、第2の展開
処理方式を指定している場合には、第2の塗り潰し処理
部34に切り換えてアウトライン展開方式2を実行する
(ステップS66)。
閾値以上または閾値よりも大きい場合、第1の塗り潰し
処理部33に切り換えてアウトライン展開方式1を実行
する(ステップS63)。一方、出力ドットサイズがド
ットサイズ閾値未満または閾値以下である場合、コード
テーブル毎または文字毎に予め設定されている処理方式
指定情報が、第1の展開処理方式または第2の展開処理
方式のいずれを指定しているかを判定し(ステップS6
4)、第1の展開処理方式を指定している場合には、第
1の塗り潰し処理部33に切り換えてアウトライン展開
方式1を実行する一方(ステップS65)、第2の展開
処理方式を指定している場合には、第2の塗り潰し処理
部34に切り換えてアウトライン展開方式2を実行する
(ステップS66)。
【0124】これにより、漢字などの一般に画数が多い
文字のコードテーブルや、元々画数の多い文字について
は、処理方式指定情報により第2の展開処理方式を指定
することで、アウトラインフォント本来の線幅の忠実な
再現が可能な第2の展開処理方式が選択され、ドットパ
ターンの品質の大幅な向上が実現される。一方、記号/
英数字などの一般に画数の少ない文字のコードテーブル
や、元々画数の少ない文字については、処理方式指定情
報により第1の展開処理方式を指定することで、ドット
展開処理性能低下が確実に防止される。
文字のコードテーブルや、元々画数の多い文字について
は、処理方式指定情報により第2の展開処理方式を指定
することで、アウトラインフォント本来の線幅の忠実な
再現が可能な第2の展開処理方式が選択され、ドットパ
ターンの品質の大幅な向上が実現される。一方、記号/
英数字などの一般に画数の少ない文字のコードテーブル
や、元々画数の少ない文字については、処理方式指定情
報により第1の展開処理方式を指定することで、ドット
展開処理性能低下が確実に防止される。
【0125】なお、上述した第2実施例では、項目〜
にて説明した5種類の切換手法を切換手法指定情報に
より指定して実行する場合について説明したが、本発明
は、これに限定されるものではなく、5種類の切換手法
のうちの少なくとも1つを採用してもよいし、また他の
切換手法を採用していもよい。
にて説明した5種類の切換手法を切換手法指定情報に
より指定して実行する場合について説明したが、本発明
は、これに限定されるものではなく、5種類の切換手法
のうちの少なくとも1つを採用してもよいし、また他の
切換手法を採用していもよい。
【0126】
【発明の効果】以上詳述したように、本発明のアウトラ
インフォント展開方法および装置によれば、アウトライ
ンフォントをドット境界上に作成した場合に、アウトラ
インフォントの主走査方向の座標に、単位変化量を2で
除算した値を予め加算しておくことにより、アウトライ
ンフォントの内部を塗り潰すことができ、アウトライン
フォント本来の線幅を忠実に再現でき、ドットパターン
の品質を大幅に向上できる効果がある(請求項1,
3)。
インフォント展開方法および装置によれば、アウトライ
ンフォントをドット境界上に作成した場合に、アウトラ
インフォントの主走査方向の座標に、単位変化量を2で
除算した値を予め加算しておくことにより、アウトライ
ンフォントの内部を塗り潰すことができ、アウトライン
フォント本来の線幅を忠実に再現でき、ドットパターン
の品質を大幅に向上できる効果がある(請求項1,
3)。
【0127】そして、塗り潰し処理後に、主走査方向と
副走査方向とを入れ替え、塗り潰し範囲では欠落してい
た塗り潰し対象部分を求めて補足し、塗り潰し範囲を補
正することにより、本来の線幅を忠実に再現しながら、
ドロップアウトの発生を確実に防止でき、ドットパター
ンのさらなる品質向上に寄与することになる(請求項
2,4)。
副走査方向とを入れ替え、塗り潰し範囲では欠落してい
た塗り潰し対象部分を求めて補足し、塗り潰し範囲を補
正することにより、本来の線幅を忠実に再現しながら、
ドロップアウトの発生を確実に防止でき、ドットパター
ンのさらなる品質向上に寄与することになる(請求項
2,4)。
【0128】また、本発明のアウトラインフォント展開
方法および装置によれば、アウトラインフォントについ
ての情報に応じ、第1の展開処理(座標系をドット上に
定義)と、第2の展開処理(座標系をドットとドットと
の間の境界上に定義)とを選択的に切り換えてアウトラ
インフォントに対する塗り潰し処理を行なうことで、ア
ウトラインフォントに応じた最適な展開処理を実行する
ことができるので、低ドットサイズの際のドットパター
ン品質の向上を実現できるとともに、高ドットサイズの
ドット展開処理性能の低下を確実に防止することができ
る(請求項5,14)。
方法および装置によれば、アウトラインフォントについ
ての情報に応じ、第1の展開処理(座標系をドット上に
定義)と、第2の展開処理(座標系をドットとドットと
の間の境界上に定義)とを選択的に切り換えてアウトラ
インフォントに対する塗り潰し処理を行なうことで、ア
ウトラインフォントに応じた最適な展開処理を実行する
ことができるので、低ドットサイズの際のドットパター
ン品質の向上を実現できるとともに、高ドットサイズの
ドット展開処理性能の低下を確実に防止することができ
る(請求項5,14)。
【0129】このとき、作成すべきドットパターンのド
ットサイズや出力装置に応じて展開処理を切り換えるこ
とで、1ドット分の線幅増加の影響が大きい低ドットサ
イズの場合には、アウトラインフォント本来の線幅の忠
実な再現が可能な第2の展開処理を選択して、ドットパ
ターンの品質の大幅な向上を実現する一方、1ドット分
の線幅増加の影響が小さい高ドットサイズの場合には、
処理速度の速い第1の展開処理を選択して、ドット展開
処理性能の低下を確実に防止することができる(請求項
6,13,15,22)。
ットサイズや出力装置に応じて展開処理を切り換えるこ
とで、1ドット分の線幅増加の影響が大きい低ドットサ
イズの場合には、アウトラインフォント本来の線幅の忠
実な再現が可能な第2の展開処理を選択して、ドットパ
ターンの品質の大幅な向上を実現する一方、1ドット分
の線幅増加の影響が小さい高ドットサイズの場合には、
処理速度の速い第1の展開処理を選択して、ドット展開
処理性能の低下を確実に防止することができる(請求項
6,13,15,22)。
【0130】また、書体に応じて展開処理を切り換える
ことで、ゴシック体などの線が太い文字については、第
2の展開処理により、アウトラインフォント本来の線幅
が忠実に再現され、ドットパターンの品質を大幅に向上
できる一方、明朝体などの比較的線画細い文字について
は、第1の展開処理により、ドット展開処理性能低下が
確実に防止される(請求項7,8,16,17)。
ことで、ゴシック体などの線が太い文字については、第
2の展開処理により、アウトラインフォント本来の線幅
が忠実に再現され、ドットパターンの品質を大幅に向上
できる一方、明朝体などの比較的線画細い文字について
は、第1の展開処理により、ドット展開処理性能低下が
確実に防止される(請求項7,8,16,17)。
【0131】さらに、コード範囲や文字に応じて展開処
理を切り換えることで、漢字などの画数が多い文字(コ
ードテーブル)については、第2の展開処理により、ア
ウトラインフォント本来の線幅が忠実に再現され、ドッ
トパターンの品質を大幅に向上できる一方、記号/英数
字などの画数の少ない文字(コードテーブル)について
は、第1の展開処理により、ドット展開処理性能低下が
確実に防止される(請求項9,10,11,12,1
8,19,20,21)。
理を切り換えることで、漢字などの画数が多い文字(コ
ードテーブル)については、第2の展開処理により、ア
ウトラインフォント本来の線幅が忠実に再現され、ドッ
トパターンの品質を大幅に向上できる一方、記号/英数
字などの画数の少ない文字(コードテーブル)について
は、第1の展開処理により、ドット展開処理性能低下が
確実に防止される(請求項9,10,11,12,1
8,19,20,21)。
【図1】本発明の原理ブロック図である。
【図2】本発明の原理ブロック図である。
【図3】本発明の第1実施例としてのアウトラインフォ
ント展開装置を示すブロック図である。
ント展開装置を示すブロック図である。
【図4】第1実施例の動作を説明するためのフローチャ
ートである。
ートである。
【図5】第1実施例における座標系,アウトラインフォ
ントおよびY方向ベクトル列の具体例を示す図である。
ントおよびY方向ベクトル列の具体例を示す図である。
【図6】第1実施例における座標系に応じたアウトライ
ンフォントのベクトルテーブルを示す図である。
ンフォントのベクトルテーブルを示す図である。
【図7】第1実施例における塗り潰しテーブルの初期設
定状態を示す図である。
定状態を示す図である。
【図8】図7に示す塗り潰しテーブルの初期設定状態に
対応する実際のYスキャンライン位置を示す図である。
対応する実際のYスキャンライン位置を示す図である。
【図9】第1実施例のYスキャンラインとアウトライン
フォントとが最初に交差した時の塗り潰しテーブルの設
定状態を示す図である。
フォントとが最初に交差した時の塗り潰しテーブルの設
定状態を示す図である。
【図10】図9に示す塗り潰しテーブルの設定状態に対
応する実際のYスキャンライン位置を示す図である。
応する実際のYスキャンライン位置を示す図である。
【図11】第1実施例において開始ベクトルオフセット
が更新された後の塗り潰しテーブルの設定状態の例を示
す図である。
が更新された後の塗り潰しテーブルの設定状態の例を示
す図である。
【図12】図11に示す塗り潰しテーブルの設定状態に
対応する実際のYスキャンライン位置を示す図である。
対応する実際のYスキャンライン位置を示す図である。
【図13】第1実施例のYスキャンラインを用いた塗り
潰し処理によってドロップアウトが起きる場合の塗り潰
しテーブルの設定状態の例を示す図である。
潰し処理によってドロップアウトが起きる場合の塗り潰
しテーブルの設定状態の例を示す図である。
【図14】図13に示す塗り潰しテーブルの設定状態に
対応する実際のYスキャンライン位置を示す図である。
対応する実際のYスキャンライン位置を示す図である。
【図15】第1実施例のYスキャンラインを用いた塗り
潰し処理によって得られたドットパターンを示す図であ
る。
潰し処理によって得られたドットパターンを示す図であ
る。
【図16】線幅1ドット未満の部分を有するアウトライ
ンフォントの例を示す図である。
ンフォントの例を示す図である。
【図17】図16に示すアウトラインフォントに対し、
Yスキャンラインを用いた塗り潰し処理を行なって得ら
れた、ドロップアウトの生じたドットパターンを示す図
である。
Yスキャンラインを用いた塗り潰し処理を行なって得ら
れた、ドロップアウトの生じたドットパターンを示す図
である。
【図18】図5に示すアウトラインフォントについての
X方向ベクトル列の具体例を示す図である。
X方向ベクトル列の具体例を示す図である。
【図19】第1実施例における補正テーブルの初期設定
状態を示す図である。
状態を示す図である。
【図20】第1実施例のXスキャンラインとアウトライ
ンフォントとが最初に交差した時のXスキャンライン位
置を示す図である。
ンフォントとが最初に交差した時のXスキャンライン位
置を示す図である。
【図21】第1実施例のXスキャンラインを用いた塗り
潰し処理によってドロップアウト部分の補正がなされる
場合の補正テーブルの設定状態の例を示す図である。
潰し処理によってドロップアウト部分の補正がなされる
場合の補正テーブルの設定状態の例を示す図である。
【図22】図21に示す補正テーブルの設定状態に対応
する実際のXスキャンライン位置を示す図である。
する実際のXスキャンライン位置を示す図である。
【図23】第1実施例の特定Xスキャンライン位置にお
いて、塗り潰し処理により塗り潰されたドットを示す図
である。
いて、塗り潰し処理により塗り潰されたドットを示す図
である。
【図24】第1実施例の前記特定Xスキャンライン位置
における補正処理動作を説明するための図である。
における補正処理動作を説明するための図である。
【図25】第1実施例の前記特定Xスキャンライン位置
において、前記補正処理動作の結果、塗り潰されたドッ
トを示す図である。
において、前記補正処理動作の結果、塗り潰されたドッ
トを示す図である。
【図26】第1実施例のXスキャンラインを用いた補正
処理後に得られたドットパターンを示す図である。
処理後に得られたドットパターンを示す図である。
【図27】第1実施例の座標系における線幅2ドットの
アウトラインフォントを示す図である。
アウトラインフォントを示す図である。
【図28】図27に示すアウトラインフォントに対し
て、第1実施例の塗り潰し処理を施して得られたドット
パターンを示す図である。
て、第1実施例の塗り潰し処理を施して得られたドット
パターンを示す図である。
【図29】第1実施例の座標系において、中央部に幅1
ドットの空白部分があるアウトラインフォントの例を示
す図である。
ドットの空白部分があるアウトラインフォントの例を示
す図である。
【図30】図29に示すアウトラインフォントに対し
て、第1実施例の塗り潰し処理を施して得られたドット
パターンを示す図である。
て、第1実施例の塗り潰し処理を施して得られたドット
パターンを示す図である。
【図31】第1実施例の座標系における線幅1ドット以
下のアウトラインフォントを示す図である。
下のアウトラインフォントを示す図である。
【図32】図31に示すアウトラインフォントに対し
て、第1実施例の塗り潰し処理および補正処理を施して
得られたドットパターンを示す図である。
て、第1実施例の塗り潰し処理および補正処理を施して
得られたドットパターンを示す図である。
【図33】本発明の第2実施例としてのアウトラインフ
ォント展開装置を示すブロック図である。
ォント展開装置を示すブロック図である。
【図34】第2実施例の動作を説明するためのフローチ
ャートである。
ャートである。
【図35】第2実施例の動作を説明するためのフローチ
ャートである。
ャートである。
【図36】第2実施例の動作を説明するためのフローチ
ャートである。
ャートである。
【図37】第2実施例の動作を説明するためのフローチ
ャートである。
ャートである。
【図38】第2実施例の第1の展開処理における座標系
およびアウトラインフォントの例を示す図である。
およびアウトラインフォントの例を示す図である。
【図39】図38に示すアウトラインフォントに対し
て、第1の展開処理を施して得られたドットパターンを
示す図である。
て、第1の展開処理を施して得られたドットパターンを
示す図である。
【図40】第2実施例の第2の展開処理における座標系
およびアウトラインフォントの例を示す図である。
およびアウトラインフォントの例を示す図である。
【図41】図40に示すアウトラインフォントに対し
て、第2の展開処理を施して得られたドットパターンを
示す図である。
て、第2の展開処理を施して得られたドットパターンを
示す図である。
【図42】従来のアウトラインフォント展開におけるア
ウトラインフォント内の塗り潰し手順を説明するための
フローチャートである。
ウトラインフォント内の塗り潰し手順を説明するための
フローチャートである。
【図43】従来の座標系,アウトラインフォントおよび
Y方向ベクトル列の具体例を示す図である。
Y方向ベクトル列の具体例を示す図である。
【図44】従来の座標系に応じたアウトラインフォント
のベクトルテーブルを示す図である。
のベクトルテーブルを示す図である。
【図45】従来の塗り潰しテーブルの初期設定状態を示
す図である。
す図である。
【図46】図45に示す塗り潰しテーブルの初期設定状
態に対応する実際のYスキャンライン位置を示す図であ
る。
態に対応する実際のYスキャンライン位置を示す図であ
る。
【図47】従来のYスキャンラインとアウトラインフォ
ントとが最初に交差した時の塗り潰しテーブルの設定状
態を示す図である。
ントとが最初に交差した時の塗り潰しテーブルの設定状
態を示す図である。
【図48】図47に示す塗り潰しテーブルの設定状態に
対応する実際のYスキャンライン位置を示す図である。
対応する実際のYスキャンライン位置を示す図である。
【図49】図47に示す状態で求められたYスキャンラ
インとアウトラインフォントとの交点を示す図である。
インとアウトラインフォントとの交点を示す図である。
【図50】図49に示すごとく算出された交点間を塗り
潰して得られたドットパターンを示す図である。
潰して得られたドットパターンを示す図である。
【図51】従来において開始ベクトルオフセットが更新
された後の塗り潰しテーブルの設定状態の例を示す図で
ある。
された後の塗り潰しテーブルの設定状態の例を示す図で
ある。
【図52】図51に示す塗り潰しテーブルの設定状態に
対応する実際のYスキャンライン位置を示す図である。
対応する実際のYスキャンライン位置を示す図である。
【図53】従来の塗り潰し処理によって得られたドット
パターンを示す図である。
パターンを示す図である。
【図54】従来の座標系における線幅2ドットのアウト
ラインフォントを示す図である。
ラインフォントを示す図である。
【図55】図54に示すアウトラインフォントに対し
て、従来の塗り潰し処理を施して得られたドットパター
ンを示す図である。
て、従来の塗り潰し処理を施して得られたドットパター
ンを示す図である。
【図56】中央部に幅1ドットの空白部分があるアウト
ラインフォントの例を示す図である。
ラインフォントの例を示す図である。
【図57】図56に示すアウトラインフォントに対し
て、従来の塗り潰し処理を施して得られたドットパター
ンを示す図である。
て、従来の塗り潰し処理を施して得られたドットパター
ンを示す図である。
1 アウトラインデータ格納部 2 塗り潰しテーブル格納部 3 塗り潰しテーブル作成部 4 塗り潰し処理部 5 ドットデータ格納部 6 補正テーブル格納部 7 補正テーブル作成部 8 補正部 11 第1の展開処理部 12 第2の展開処理部 13 切換部 20 CPU 21 アウトラインデータメモリ(アウトラインデータ
格納部) 22 塗り潰しテーブルメモリ(塗り潰しテーブル格納
部) 23 塗り潰しテーブル作成回路(塗り潰しテーブル作
成部) 24 塗り潰し処理回路(塗り潰し処理部) 25 ドットデータメモリ(ドットデータ格納部) 26 ドロップアウト補正テーブルメモリ(補正テーブ
ル格納部) 27 ドロップアウト補正テーブル作成回路(補正テー
ブル作成部) 28 ドロップアウト補正回路(補正部) 31A,31B アウトラインデータファイル 32 情報入力部 33 第1の塗り潰し処理部(第1の展開処理部) 34 第2の塗り潰し処理部(第2の展開処理部) 35 処理方式切換判別部(切換部) 36 出力処理部 37 プリンタ(出力装置) 38 CRT(出力装置)
格納部) 22 塗り潰しテーブルメモリ(塗り潰しテーブル格納
部) 23 塗り潰しテーブル作成回路(塗り潰しテーブル作
成部) 24 塗り潰し処理回路(塗り潰し処理部) 25 ドットデータメモリ(ドットデータ格納部) 26 ドロップアウト補正テーブルメモリ(補正テーブ
ル格納部) 27 ドロップアウト補正テーブル作成回路(補正テー
ブル作成部) 28 ドロップアウト補正回路(補正部) 31A,31B アウトラインデータファイル 32 情報入力部 33 第1の塗り潰し処理部(第1の展開処理部) 34 第2の塗り潰し処理部(第2の展開処理部) 35 処理方式切換判別部(切換部) 36 出力処理部 37 プリンタ(出力装置) 38 CRT(出力装置)
Claims (22)
- 【請求項1】 ベクトルデータに基づいて輪郭線を順番
に描画してアウトラインフォントを作成し、該アウトラ
インフォントの内部を塗り潰してドットパターンを作成
するアウトラインフォント展開方法において、 前記ベクトルデータの座標系をドットとドットとの間の
境界上に定義して、該アウトラインフォントを該境界上
に作成し、 該アウトラインフォントについて、副走査方向へ1ドッ
トだけ移動した際の主走査方向への移動ドット数を単位
変化量として算出し、 該アウトラインフォントの主走査方向の座標に、前記単
位変化量を2で除算した値を加算しておいてから、 主走査方向のスキャンラインを副走査方向へ1ドットず
つ移動させながら、各位置で該スキャンラインと該アウ
トラインフォントとの交点を求めることにより、該スキ
ャンライン上の主走査方向の塗り潰し範囲を求めること
を特徴とする、アウトラインフォント展開方法。 - 【請求項2】 該スキャンラインを副走査方向に移動さ
せて副走査方向の全ての位置で該アウトラインフォント
の前記塗り潰し範囲を求めた後、 前記の主走査方向と副走査方向とを入れ替え、 該アウトラインフォントについて、副走査方向へ1ドッ
トだけ移動した際の主走査方向への移動ドット数を単位
変化量として算出し、 該アウトラインフォントの主走査方向の座標に、前記単
位変化量を2で除算した値を加算しておいてから、 主走査方向のスキャンラインを副走査方向へ1ドットず
つ移動させながら、各位置で該スキャンラインと該アウ
トラインフォントとの交点を求めることにより、前記塗
り潰し範囲では欠落していた塗り潰し対象部分を求めて
補足し、前記塗り潰し範囲を補正することを特徴とす
る、請求項1記載のアウトラインフォント展開方法。 - 【請求項3】 ベクトルデータに基づいて輪郭線を順番
に描画してアウトラインフォントを作成し、該アウトラ
インフォントの内部を塗り潰してドットパターンを作成
するアウトラインフォント展開装置において、 前記ベクトルデータの座標系をドットとドットとの間の
境界上に定義することにより該境界上に作成される該ア
ウトラインフォントのベクトルデータを格納するアウト
ラインデータ格納部と、 該アウトラインフォント内の塗り潰し範囲を求めるため
の塗り潰しテーブルを格納する塗り潰しテーブル格納部
と、 該アウトラインデータ格納部の該アウトラインフォント
のベクトルデータに基づいて、該アウトラインフォント
を副走査方向に連続するベクトル列に分割し、該ベクト
ル列毎に、副走査方向の順序に従う走査開始位置情報お
よび走査終了位置情報を前記塗り潰しテーブルに設定
し、また、該ベクトル列毎に、前記走査開始位置情報に
ついての主走査方向の座標をスキャンラインとの現交点
情報の初期値として前記塗り潰しテーブルに設定し、さ
らに、該ベクトル列毎に、副走査方向へ1ドットだけ移
動した際の主走査方向への移動ドット数を単位変化量と
して算出して前記塗り潰しテーブルに設定するととも
に、該ベクトル列毎に、前記現交点情報の初期値に前記
単位変化量を2で除算した値を加算して、前記塗り潰し
テーブルを作成する塗り潰しテーブル作成部と、 該塗り潰しテーブル格納部の前記塗り潰しテーブルを参
照することにより、副走査方向へ1ドットずつ移動する
主走査方向のスキャンラインと交差する該ベクトル列の
前記現交点情報を、該スキャンラインと該アウトライン
フォントとの交点として求め、該スキャンライン上の主
走査方向の塗り潰し範囲を求めて、当該塗り潰し範囲に
対する塗り潰し処理を行なうとともに、該スキャンライ
ンと交差する該ベクトル列についての前記現交点情報に
前記単位変化量を加算して前記塗り潰しテーブルを更新
し、該スキャンラインを副走査方向へ1ドットずつ移動
させる塗り潰し処理部と、 該塗り潰し処理部により該アウトラインフォントを一ス
キャンライン毎に塗り潰して作成されたドットパターン
を格納するドットデータ格納部とをそなえたことを特徴
とする、アウトラインフォント展開装置。 - 【請求項4】 前記塗り潰し処理部による塗り潰し処理
終了後に、 該アウトラインフォント内の塗り潰し範囲
を補正するための補正テーブルを格納する補正テーブル
格納部と、 前記の主走査方向と副走査方向とを入れ替え、該アウト
ラインデータ格納部の該アウトラインフォントのベクト
ルデータに基づいて、該アウトラインフォントを副走査
方向に連続するベクトル列に分割し、該ベクトル列毎
に、副走査方向の順序に従う走査開始位置情報および走
査終了位置情報を前記補正テーブルに設定し、また、該
ベクトル列毎に、前記走査開始位置情報についての主走
査方向の座標をスキャンラインとの現交点情報の初期値
として前記補正テーブルに設定し、さらに、該ベクトル
列毎に、副走査方向へ1ドットだけ移動した際の主走査
方向への移動ドット数を単位変化量として算出して前記
補正テーブルに設定するとともに、該ベクトル列毎に、
前記現交点情報の初期値に前記単位変化量を2で除算し
た値を加算して、前記補正テーブルを作成する補正テー
ブル作成部と、 該補正テーブル格納部の前記補正テーブルを参照するこ
とにより、副走査方向へ1ドットずつ移動する主走査方
向のスキャンラインと交差する該ベクトル列の前記現交
点情報を、該スキャンラインと該アウトラインフォント
との交点として求め、該スキャンライン上の主走査方向
の塗り潰し範囲を求めて、当該塗り潰し範囲が1ドット
以下である場合に当該塗り潰し範囲に対する塗り潰し処
理を行ない該ドットデータ格納部のドットパターンに対
する補足・書込を行なうとともに、該スキャンラインと
交差する該ベクトル列についての前記現交点情報に前記
単位変化量を加算して前記補正テーブルを更新し、該ス
キャンラインを副走査方向へ1ドットずつ移動させる補
正部とをそなえたことを特徴とする、請求項3記載のア
ウトラインフォント展開装置。 - 【請求項5】 ベクトルデータに基づいて輪郭線を順番
に描画してアウトラインフォントを作成し、該アウトラ
インフォントの内部を塗り潰してドットパターンを作成
するアウトラインフォント展開方法において、 前記ベクトルデータの座標系をドット上に定義して該ド
ット上に作成した該アウトラインフォントに対して塗り
潰し処理を行なう第1の展開処理と、前記ベクトルデー
タの座標系をドットとドットとの間の境界上に定義して
該境界上に作成した該アウトラインフォントに対して塗
り潰し処理を行なう第2の展開処理とを、塗り潰し処理
対象の該アウトラインフォントについての情報に応じて
選択的に切り換えて、該アウトラインフォントに対する
塗り潰し処理を行なうことを特徴とする、アウトライン
フォント展開方法。 - 【請求項6】 塗り潰し処理対象の該アウトラインフォ
ントについての情報が、作成すべきドットパターンのド
ットサイズであり、 当該ドットサイズが予め設定された閾値以上または該閾
値よりも大きい場合には、該第1の展開処理に切り換え
る一方、当該ドットサイズが該閾値未満または該閾値以
下である場合には、該第2の展開処理に切り換えること
を特徴とする、請求項5記載のアウトラインフォント展
開方法。 - 【請求項7】 塗り潰し処理対象の該アウトラインフォ
ントについての情報が、当該アウトラインフォントの書
体であり、 当該アウトラインフォントの書体に応じて、該第1の展
開処理と該第2の展開処理との切換を行なうことを特徴
とする、請求項5記載のアウトラインフォント展開方
法。 - 【請求項8】 ドットサイズの閾値と該第1の展開処理
または該第2の展開処理のいずれか一方を指定する指定
情報とを書体に応じて予め設定しておき、 作成すべきドットパターンのドットサイズが該閾値以上
または該閾値よりも大きい場合には、該第1の展開処理
に切り換える一方、当該ドットサイズが該閾値未満また
は該閾値以下である場合には、前記指定情報に応じて該
第1の展開処理と該第2の展開処理との切換を行なうこ
とを特徴とする、請求項7記載のアウトラインフォント
展開方法。 - 【請求項9】 塗り潰し処理対象の該アウトラインフォ
ントについての情報が、当該アウトラインフォントのコ
ード範囲であり、 当該アウトラインフォントのコード範囲に応じて、該第
1の展開処理と該第2の展開処理との切換を行なうこと
を特徴とする、請求項5記載のアウトラインフォント展
開方法。 - 【請求項10】 ドットサイズの閾値と該第1の展開処
理または該第2の展開処理のいずれか一方を指定する指
定情報とをコード範囲に応じて予め設定しておき、 作成すべきドットパターンのドットサイズが該閾値以上
または該閾値よりも大きい場合には、該第1の展開処理
に切り換える一方、当該ドットサイズが該閾値未満また
は該閾値以下である場合には、前記指定情報に応じて該
第1の展開処理と該第2の展開処理との切換を行なうこ
とを特徴とする、請求項9記載のアウトラインフォント
展開方法。 - 【請求項11】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォント自
体であり、 当該アウトラインフォント毎に、該第1の展開処理と該
第2の展開処理との切換を行なうことを特徴とする、請
求項5記載のアウトラインフォント展開方法。 - 【請求項12】 ドットサイズの閾値と該第1の展開処
理または該第2の展開処理のいずれか一方を指定する指
定情報とを各文字毎に予め設定しておき、 作成すべきドットパターンのドットサイズが該閾値以上
または該閾値よりも大きい場合には、該第1の展開処理
に切り換える一方、当該ドットサイズが該閾値未満また
は該閾値以下である場合には、前記指定情報に応じて該
第1の展開処理と該第2の展開処理との切換を行なうこ
とを特徴とする、請求項11記載のアウトラインフォン
ト展開方法。 - 【請求項13】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォントの
展開結果を出力する出力装置であり、 出力装置に応じて該第1の展開処理と該第2の展開処理
との切換を行なうことを特徴とする、請求項5記載のア
ウトラインフォント展開方法。 - 【請求項14】 ベクトルデータに基づいて輪郭線を順
番に描画してアウトラインフォントを作成し、該アウト
ラインフォントの内部を塗り潰してドットパターンを作
成するアウトラインフォント展開装置において、 前記ベクトルデータの座標系をドット上に定義し、該ド
ット上に作成した該アウトラインフォントに対して塗り
潰し処理を行なう第1の展開処理部と、 前記ベクトルデータの座標系をドットとドットとの間の
境界上に定義し、該境界上に作成した該アウトラインフ
ォントに対して塗り潰し処理を行なう第2の展開処理部
と、 塗り潰し処理対象の該アウトラインフォントについての
情報に応じて、該第1の展開処理部または該第2の展開
処理部のいずれか一方に選択的に切り換えて、該アウト
ラインフォントに対する塗り潰し処理を行なわせる切換
部とをそなえたことを特徴とする、アウトラインフォン
ト展開装置。 - 【請求項15】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、作成すべきドットパターンの
ドットサイズであり、 該切換部が、当該ドットサイズが予め設定された閾値以
上または該閾値よりも大きい場合には、該第1の展開処
理部に切り換える一方、当該ドットサイズが該閾値未満
または該閾値以下である場合には、該第2の展開処理部
に切り換えることを特徴とする、請求項14記載のアウ
トラインフォント展開装置。 - 【請求項16】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォントの
書体であり、 該切換部が、当該アウトラインフォントの書体に応じ
て、該第1の展開処理部と該第2の展開処理部との切換
を行なうことを特徴とする、請求項14記載のアウトラ
インフォント展開装置。 - 【請求項17】 ドットサイズの閾値と該第1の展開処
理部または該第2の展開処理部のいずれか一方を指定す
る指定情報とを書体に応じて予め設定しておき、 該切換部が、作成すべきドットパターンのドットサイズ
が該閾値以上または該閾値よりも大きい場合には、該第
1の展開処理部に切り換える一方、当該ドットサイズが
該閾値未満または該閾値以下である場合には、前記指定
情報に応じて該第1の展開処理部と該第2の展開処理部
との切換を行なうことを特徴とする、請求項16記載の
アウトラインフォント展開装置。 - 【請求項18】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォントの
コード範囲であり、 該切換部が、当該アウトラインフォントのコード範囲に
応じて、該第1の展開処理部と該第2の展開処理部との
切換を行なうことを特徴とする、請求項14記載のアウ
トラインフォント展開装置。 - 【請求項19】 ドットサイズの閾値と該第1の展開処
理部または該第2の展開処理部のいずれか一方を指定す
る指定情報とをコード範囲に応じて予め設定しておき、 該切換部が、作成すべきドットパターンのドットサイズ
が該閾値以上または該閾値よりも大きい場合には、該第
1の展開処理部に切り換える一方、当該ドットサイズが
該閾値未満または該閾値以下である場合には、前記指定
情報に応じて該第1の展開処理部と該第2の展開処理部
との切換を行なうことを特徴とする、請求項14記載の
アウトラインフォント展開装置。 - 【請求項20】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォント自
体であり、 該切換部が、当該アウトラインフォント毎に、該第1の
展開処理部と該第2の展開処理部との切換を行なうこと
を特徴とする、請求項14記載のアウトラインフォント
展開装置。 - 【請求項21】 ドットサイズの閾値と該第1の展開処
理部または該第2の展開処理部のいずれか一方を指定す
る指定情報とを各文字毎に予め設定しておき、 該切換部が、作成すべきドットパターンのドットサイズ
が該閾値以上または該閾値よりも大きい場合には、該第
1の展開処理部に切り換える一方、当該ドットサイズが
該閾値未満または該閾値以下である場合には、前記指定
情報に応じて該第1の展開処理部と該第2の展開処理部
との切換を行なうことを特徴とする、請求項20記載の
アウトラインフォント展開装置。 - 【請求項22】 塗り潰し処理対象の該アウトラインフ
ォントについての情報が、当該アウトラインフォントの
展開結果を出力する出力装置であり、 該切換部が、出力装置に応じて該第1の展開処理部と該
第2の展開処理部との切換を行なうことを特徴とする、
請求項14記載のアウトラインフォント展開装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6148253A JPH0816144A (ja) | 1994-06-29 | 1994-06-29 | アウトラインフォント展開方法およびアウトラインフォント展開装置 |
| US08/399,579 US5754164A (en) | 1994-06-29 | 1995-03-07 | Outline font expanding method and outline font expanding device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6148253A JPH0816144A (ja) | 1994-06-29 | 1994-06-29 | アウトラインフォント展開方法およびアウトラインフォント展開装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0816144A true JPH0816144A (ja) | 1996-01-19 |
Family
ID=15448659
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6148253A Withdrawn JPH0816144A (ja) | 1994-06-29 | 1994-06-29 | アウトラインフォント展開方法およびアウトラインフォント展開装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5754164A (ja) |
| JP (1) | JPH0816144A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0236216A (ja) * | 1987-09-19 | 1990-02-06 | Mitsui Toatsu Chem Inc | 高屈折率プラスチックレンズ |
| JP2011039986A (ja) * | 2009-08-18 | 2011-02-24 | Oki Data Corp | 図形処理装置、図形処理システムおよび図形処理方法 |
| US10373535B2 (en) | 2013-12-31 | 2019-08-06 | Ultravision Technologies, Llc | Modular display panel |
| CN110235180A (zh) * | 2016-12-13 | 2019-09-13 | 皇家飞利浦有限公司 | 用于修改包括定位于图像上的点的序列的轮廓的方法和装置 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5959634A (en) * | 1993-12-09 | 1999-09-28 | Canon Kabushiki Kaisha | Character generating system employing thickening or narrowing of characters |
| US5796673A (en) * | 1994-10-06 | 1998-08-18 | Mosaid Technologies Incorporated | Delay locked loop implementation in a synchronous dynamic random access memory |
| JPH10240613A (ja) * | 1997-03-03 | 1998-09-11 | Hitachi Ltd | メモリアクセス制御方法および装置 |
| US7239318B2 (en) * | 2001-03-23 | 2007-07-03 | Rise Kabushikikaisha | Method and computer software program product for processing characters based on outline font |
| US7116821B2 (en) * | 2002-03-25 | 2006-10-03 | Lexmark International, Inc. | Color trapping for an image forming apparatus |
| US20060103857A1 (en) * | 2004-11-17 | 2006-05-18 | Lexmark International, Inc. | Method of reducing a consumption of imaging substance when forming an image |
| JP5493764B2 (ja) * | 2009-11-20 | 2014-05-14 | セイコーエプソン株式会社 | 制御装置、制御装置の制御方法、及び、プログラム |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2836086B2 (ja) * | 1989-03-10 | 1998-12-14 | セイコーエプソン株式会社 | 文字パターンデータ発生装置 |
| JP3021547B2 (ja) * | 1989-09-29 | 2000-03-15 | セイコーエプソン株式会社 | 文字パターン発生方法 |
| JP2770582B2 (ja) * | 1991-03-12 | 1998-07-02 | 富士ゼロックス株式会社 | 図形塗潰し装置 |
| US5553219A (en) * | 1991-05-10 | 1996-09-03 | Fuji Xerox Co., Ltd. | Font outline and bit map generator synthesizing filling data with selected outline data or duplicate outline data |
| US5276790A (en) * | 1991-07-12 | 1994-01-04 | Destiny Technology Corporation | Fast vertical scan-conversion and filling method and apparatus for outline font character generation in dot matrix devices |
| JP2757614B2 (ja) * | 1991-09-06 | 1998-05-25 | 日本電気株式会社 | 図形塗りつぶし装置 |
| US5301267A (en) * | 1991-09-27 | 1994-04-05 | Adobe Systems Incorporated | Intelligent font rendering co-processor |
| US5355449A (en) * | 1991-09-30 | 1994-10-11 | Destiny Technology Corporation | Method and apparatus for outline font character generation in dot matrix devices |
| US5428728A (en) * | 1991-09-30 | 1995-06-27 | Destiny Technology Corporation | Method and apparatus for outline font character generation in dot matrix devices |
| US5526476A (en) * | 1992-12-07 | 1996-06-11 | Fujitsu Limited | Method and apparatus for generating character patterns expressed by coordinates of a coordinate system |
| US5438656A (en) * | 1993-06-01 | 1995-08-01 | Ductus, Inc. | Raster shape synthesis by direct multi-level filling |
| US5504591A (en) * | 1994-04-25 | 1996-04-02 | Microsoft Corporation | System and method for compressing graphic images |
-
1994
- 1994-06-29 JP JP6148253A patent/JPH0816144A/ja not_active Withdrawn
-
1995
- 1995-03-07 US US08/399,579 patent/US5754164A/en not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0236216A (ja) * | 1987-09-19 | 1990-02-06 | Mitsui Toatsu Chem Inc | 高屈折率プラスチックレンズ |
| JP2011039986A (ja) * | 2009-08-18 | 2011-02-24 | Oki Data Corp | 図形処理装置、図形処理システムおよび図形処理方法 |
| US10373535B2 (en) | 2013-12-31 | 2019-08-06 | Ultravision Technologies, Llc | Modular display panel |
| CN110235180A (zh) * | 2016-12-13 | 2019-09-13 | 皇家飞利浦有限公司 | 用于修改包括定位于图像上的点的序列的轮廓的方法和装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5754164A (en) | 1998-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5857067A (en) | Intelligent font rendering co-processor | |
| KR100209455B1 (ko) | 문자 생성 방법 및 그 장치 | |
| US6501475B1 (en) | Glyph-based outline font generation independent of resolution | |
| KR920001697B1 (ko) | 문자 패턴 생성방법 | |
| US5483351A (en) | Dilation of images without resolution conversion to compensate for printer characteristics | |
| EP0417224A1 (en) | Method and apparatus for conversion of outline characters to bitmap characters | |
| WO1996036015A1 (en) | Method and apparatus for generating a text image on a display with anti-aliasing effect | |
| JPH0816144A (ja) | アウトラインフォント展開方法およびアウトラインフォント展開装置 | |
| KR970008546B1 (ko) | 문자 또는 도형의 처리방법 | |
| JP3576611B2 (ja) | 文字発生装置ならびに方法 | |
| US5489920A (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
| US5388166A (en) | Image drawing apparatus | |
| JP2681367B2 (ja) | 図形処理方法及びその装置 | |
| KR100212412B1 (ko) | 문자패턴 생성장치 | |
| JPH02270019A (ja) | 高品質文字パターン発生方式 | |
| US5553219A (en) | Font outline and bit map generator synthesizing filling data with selected outline data or duplicate outline data | |
| US6144765A (en) | Figure processing method | |
| JP3448606B2 (ja) | 全解像度空間における筆画ベース文字発生方法及び装置 | |
| JP3034140B2 (ja) | 文字生成方法及びその装置 | |
| JPH10143134A (ja) | 文字の生成と記憶のための方法と装置 | |
| EP0466330B1 (en) | Method for editing character bit maps at small sizes using connected runs | |
| JP2806679B2 (ja) | 文字発生装置 | |
| JP2007219019A (ja) | 文字生成処理方法 | |
| JP3089906B2 (ja) | 描画装置 | |
| JP3156729B2 (ja) | 描画装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010904 |