JPH096311A - アウトラインフォント描画装置 - Google Patents
アウトラインフォント描画装置Info
- Publication number
- JPH096311A JPH096311A JP7176699A JP17669995A JPH096311A JP H096311 A JPH096311 A JP H096311A JP 7176699 A JP7176699 A JP 7176699A JP 17669995 A JP17669995 A JP 17669995A JP H096311 A JPH096311 A JP H096311A
- Authority
- JP
- Japan
- Prior art keywords
- edge data
- data
- unit
- generation unit
- 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.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 230000007704 transition Effects 0.000 claims description 12
- 230000000630 rising effect Effects 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 6
- 238000010422 painting Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 21
- 238000013139 quantization Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005429 filling process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
- Document Processing Apparatus (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【目的】 輪郭の内部を塗りつぶす際、ドロップアウト
を防止する。 【構成】 エッジデータ生成部3は、入力部1及び輪郭
データ生成部2から入力されたべクトルと例えば水平方
向のハーフピクセルラインとの交点を順次検出し、四捨
五入等の丸め処理により交点データの量子化を行う。こ
の交点データを量子化したものをエッジデータと呼ぶ。
そして、求めたエッジデータを記憶部4に格納する。こ
の格納は、実際には、エッジデータの画素位置に対応す
る記憶部4の中のビットをオンにすることで行う。水平
方向エッジデータの生成が終了すれば、同様にして、べ
クトルと、垂直方向のハーフピクセルラインとの交点を
順次検出し、エッジデータを記憶部4に格納する。補間
処理部5は、記憶部4に格納されたエッジデータを入力
とし、水平方向あるいは垂直方向のどちらか一方向につ
いて、エッジデータ間のオフになっているビットをオン
にすることで補間を行う。
を防止する。 【構成】 エッジデータ生成部3は、入力部1及び輪郭
データ生成部2から入力されたべクトルと例えば水平方
向のハーフピクセルラインとの交点を順次検出し、四捨
五入等の丸め処理により交点データの量子化を行う。こ
の交点データを量子化したものをエッジデータと呼ぶ。
そして、求めたエッジデータを記憶部4に格納する。こ
の格納は、実際には、エッジデータの画素位置に対応す
る記憶部4の中のビットをオンにすることで行う。水平
方向エッジデータの生成が終了すれば、同様にして、べ
クトルと、垂直方向のハーフピクセルラインとの交点を
順次検出し、エッジデータを記憶部4に格納する。補間
処理部5は、記憶部4に格納されたエッジデータを入力
とし、水平方向あるいは垂直方向のどちらか一方向につ
いて、エッジデータ間のオフになっているビットをオン
にすることで補間を行う。
Description
【0001】
【産業上の利用分野】本発明は、ベクトルにより輪郭の
みを記述された文字データについて、その輪郭の内部を
塗りつぶしてビットマップイメージを作成するアウトラ
インフォント描画装置に関するものである。
みを記述された文字データについて、その輪郭の内部を
塗りつぶしてビットマップイメージを作成するアウトラ
インフォント描画装置に関するものである。
【0002】
【従来の技術】従来、ワードプロセッサや計算機の印刷
装置等において、アウトラインフォントの輪郭の内部を
高速かつ高品質に塗りつぶすための技術が存在する。こ
の種の技術では、一般的に、輪郭の内部に中心を含む画
素を塗りつぶしていく。そして、その過程で以下の二つ
の規則を遵守する。 (a)画素の中心が輪郭の内部にあれば、可視化対象画
素とする。 (b)もし、二つの隣接する画素の中心を結ぶライン
を、輪郭をなす二つのべクトルが交差するとき、隣接す
る二つの画素のうちの一つの画素、又は両方の画素を可
視化対象とする。
装置等において、アウトラインフォントの輪郭の内部を
高速かつ高品質に塗りつぶすための技術が存在する。こ
の種の技術では、一般的に、輪郭の内部に中心を含む画
素を塗りつぶしていく。そして、その過程で以下の二つ
の規則を遵守する。 (a)画素の中心が輪郭の内部にあれば、可視化対象画
素とする。 (b)もし、二つの隣接する画素の中心を結ぶライン
を、輪郭をなす二つのべクトルが交差するとき、隣接す
る二つの画素のうちの一つの画素、又は両方の画素を可
視化対象とする。
【0003】また、この種の技術では、輪郭データ生成
部により出力されるベクトルデータから、水平方向のス
キャン変換に対応するエッジデータを作成する。この
時、エッジデータの量子化を行い、整数値で記憶領域に
格納する。そして、これにより作成されたエッジデータ
が対応している方向(水平方向)へのスキャン変換を行
う。これにより、塗りつぶすべき画素の連続部分(以
降、この連続部分をランと称する。)を出力する。そし
て、出力されたランを記憶領域に書き込む(文献:Supe
r ASCII Vol.2 \#8 August 1991「DTPの基礎技術
(5)」大野義夫:株式会社アスキーp.138、 139参
照)。
部により出力されるベクトルデータから、水平方向のス
キャン変換に対応するエッジデータを作成する。この
時、エッジデータの量子化を行い、整数値で記憶領域に
格納する。そして、これにより作成されたエッジデータ
が対応している方向(水平方向)へのスキャン変換を行
う。これにより、塗りつぶすべき画素の連続部分(以
降、この連続部分をランと称する。)を出力する。そし
て、出力されたランを記憶領域に書き込む(文献:Supe
r ASCII Vol.2 \#8 August 1991「DTPの基礎技術
(5)」大野義夫:株式会社アスキーp.138、 139参
照)。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような課題があった。即ち、上
述したアウトラインフォントの輪郭の内部を塗りつぶす
技術では、特に、小ドットのビットマップフォントデー
タの作成時において、例えば、水平方向のスキャン変換
しか行わないため、図2に示すような輪郭の内部を塗り
つぶす場合に、図8に示すように、本来連続していなけ
ればならない部分が不連続になる(以下、この現象をド
ロップアウトと称する)ことがある。このため、高品質
なビットマップフォントデータの作成が困難であった。
た従来の技術には、次のような課題があった。即ち、上
述したアウトラインフォントの輪郭の内部を塗りつぶす
技術では、特に、小ドットのビットマップフォントデー
タの作成時において、例えば、水平方向のスキャン変換
しか行わないため、図2に示すような輪郭の内部を塗り
つぶす場合に、図8に示すように、本来連続していなけ
ればならない部分が不連続になる(以下、この現象をド
ロップアウトと称する)ことがある。このため、高品質
なビットマップフォントデータの作成が困難であった。
【0005】また、図11に示すように、塗りつぶすべ
き部分が細く、スキャンラインに対して傾斜が緩やかな
輪郭の内部を塗りつぶす場合には、図13に示すよう
に、本来連続していなければならない部分に、ドロップ
アウトが生じることがあった。これにより、高品質なビ
ットマップフォントデータを作成することが困難であっ
た。
き部分が細く、スキャンラインに対して傾斜が緩やかな
輪郭の内部を塗りつぶす場合には、図13に示すよう
に、本来連続していなければならない部分に、ドロップ
アウトが生じることがあった。これにより、高品質なビ
ットマップフォントデータを作成することが困難であっ
た。
【0006】
【課題を解決するための手段】本発明のアウトラインフ
ォント描画装置は、上述した課題を解決するため、以下
の点を特徴とするものである。 (1)1.文字コード、拡大率を含むアウトラインフォン
トの展開に必要な情報を入力する入力部を備える。 2.当該入力部により入力された情報とアウトラインフォ
ントデータから、始点及び終点をつないだベクトルによ
り表現される輪郭データを生成する輪郭データ生成部を
備える。
ォント描画装置は、上述した課題を解決するため、以下
の点を特徴とするものである。 (1)1.文字コード、拡大率を含むアウトラインフォン
トの展開に必要な情報を入力する入力部を備える。 2.当該入力部により入力された情報とアウトラインフォ
ントデータから、始点及び終点をつないだベクトルによ
り表現される輪郭データを生成する輪郭データ生成部を
備える。
【0007】3.当該輪郭データ生成部により生成された
輪郭データと、第1の方向及びそれと垂直な第2の方向
のスキャンラインとのそれぞれの交点をエッジデータと
して検出するエッジデータ生成部を備える。 4.当該エッジデータ生成部により、検出された各エッジ
データを格納する記憶部を備える。 5.当該記憶部に格納されたエッジデータを取り出して、
補間処理を施し、その補間処理後のエッジデータを、元
の取り出した記憶領域に再度格納する補間処理部を備え
る。
輪郭データと、第1の方向及びそれと垂直な第2の方向
のスキャンラインとのそれぞれの交点をエッジデータと
して検出するエッジデータ生成部を備える。 4.当該エッジデータ生成部により、検出された各エッジ
データを格納する記憶部を備える。 5.当該記憶部に格納されたエッジデータを取り出して、
補間処理を施し、その補間処理後のエッジデータを、元
の取り出した記憶領域に再度格納する補間処理部を備え
る。
【0008】(2)1.アウトラインデータを入力し、第
1の方向のエッジデータを生成する第1方向エッジデー
タ生成部を備える。 2.当該第1方向エッジデータ生成部により生成されたエ
ッジデータのスキャン変換を行うスキャン変換部を備え
る。 3.当該スキャン変換部によるスキャン変換の方向に垂直
な第2の方向について、エッジデータを生成する第2方
向エッジデータ生成部を備える。 4.当該第2方向エッジデータ生成部により生成されたエ
ッジデータの補間処理を行う第2方向エッジデータ補間
部を備える。
1の方向のエッジデータを生成する第1方向エッジデー
タ生成部を備える。 2.当該第1方向エッジデータ生成部により生成されたエ
ッジデータのスキャン変換を行うスキャン変換部を備え
る。 3.当該スキャン変換部によるスキャン変換の方向に垂直
な第2の方向について、エッジデータを生成する第2方
向エッジデータ生成部を備える。 4.当該第2方向エッジデータ生成部により生成されたエ
ッジデータの補間処理を行う第2方向エッジデータ補間
部を備える。
【0009】(3)(2)において、第2方向エッジデ
ータ生成部は、上昇遷移、下降遷移のどちらかのアウト
ラインについてのみエッジデータを生成することを特徴
とする。
ータ生成部は、上昇遷移、下降遷移のどちらかのアウト
ラインについてのみエッジデータを生成することを特徴
とする。
【0010】
(1)エッジデータ生成部は、入力部及び輪郭データ生
成部から入力されたべクトルと水平方向のハーフピクセ
ルラインとの交点を順次検出し、例えば、四捨五入の丸
め処理により交点データの量子化を行う。この交点デー
タを量子化したものをエッジデータと呼ぶ。そして、求
めたエッジデータを記憶領域に格納する。エッジデータ
の格納は、実際には、エッジデータの画素位置に対応す
る記憶領域の中のビットをオンにすることにより行う。
このとき、すでにビットがオンになっている場合は、そ
のビットにおいて何も操作を行わない。水平方向エッジ
データの生成が終了すれば、同様にして、べクトルと、
垂直方向のハーフピクセルラインとの交点を順次検出
し、エッジデータを記憶領域に格納する。補間処理部
は、記憶領域に格納されたエッジデータを入力とし、水
平方向、あるいは垂直方向のどちらか一方向について、
エッジデータ間のオフになっているビットをオンにする
ことにより補間を行う。ただし、補間区間がない場合は
処理は行わない。
成部から入力されたべクトルと水平方向のハーフピクセ
ルラインとの交点を順次検出し、例えば、四捨五入の丸
め処理により交点データの量子化を行う。この交点デー
タを量子化したものをエッジデータと呼ぶ。そして、求
めたエッジデータを記憶領域に格納する。エッジデータ
の格納は、実際には、エッジデータの画素位置に対応す
る記憶領域の中のビットをオンにすることにより行う。
このとき、すでにビットがオンになっている場合は、そ
のビットにおいて何も操作を行わない。水平方向エッジ
データの生成が終了すれば、同様にして、べクトルと、
垂直方向のハーフピクセルラインとの交点を順次検出
し、エッジデータを記憶領域に格納する。補間処理部
は、記憶領域に格納されたエッジデータを入力とし、水
平方向、あるいは垂直方向のどちらか一方向について、
エッジデータ間のオフになっているビットをオンにする
ことにより補間を行う。ただし、補間区間がない場合は
処理は行わない。
【0011】(2)水平方向エッジデータ生成部は、ア
ウトラインデータを入力し、水平方向エッジデータを生
成し、第1の記憶領域に格納する。これと同時に、垂直
方向エッジデータ生成部は、同じアウトラインデータを
入力し、垂直方向エッジデータを生成し、第2の記憶領
域に格納する。即ち、水平方向エッジデータ生成部は、
アウトラインと水平方向のスキャンラインとの交点を順
次検出し、例えば四捨五入の丸め処理により量子化を行
う。この場合、水平方向エッジデータでは、垂直方向に
おいて上昇遷移、下降遷移のどちらのアウトラインにつ
いてもエッジデータの生成を行う。そして、生成したエ
ッジデータを第1の記憶領域に格納する。実際には、エ
ッジデータの位置に対応する第1の記憶領域中のビット
をオンにする。一方、垂直方向エッジデータ生成部は、
アウトラインと垂直方向のスキャンラインとの交点を順
次検出し、四捨五入の丸め処理により量子化を行う。ス
キャン変換部は、水平方向エッジデータを入力し、対に
なるエッジデータ間を塗りつぶす。この時、エッジデー
タとピクセルの実際の位置との整合をとるため、対にな
るエッジデータのうち左側のエッジデータはオンにする
が、右側のエッジデータはオフにするようにしてスキャ
ン変換を行う。そして、第3の記憶領域に結果を出力す
る。
ウトラインデータを入力し、水平方向エッジデータを生
成し、第1の記憶領域に格納する。これと同時に、垂直
方向エッジデータ生成部は、同じアウトラインデータを
入力し、垂直方向エッジデータを生成し、第2の記憶領
域に格納する。即ち、水平方向エッジデータ生成部は、
アウトラインと水平方向のスキャンラインとの交点を順
次検出し、例えば四捨五入の丸め処理により量子化を行
う。この場合、水平方向エッジデータでは、垂直方向に
おいて上昇遷移、下降遷移のどちらのアウトラインにつ
いてもエッジデータの生成を行う。そして、生成したエ
ッジデータを第1の記憶領域に格納する。実際には、エ
ッジデータの位置に対応する第1の記憶領域中のビット
をオンにする。一方、垂直方向エッジデータ生成部は、
アウトラインと垂直方向のスキャンラインとの交点を順
次検出し、四捨五入の丸め処理により量子化を行う。ス
キャン変換部は、水平方向エッジデータを入力し、対に
なるエッジデータ間を塗りつぶす。この時、エッジデー
タとピクセルの実際の位置との整合をとるため、対にな
るエッジデータのうち左側のエッジデータはオンにする
が、右側のエッジデータはオフにするようにしてスキャ
ン変換を行う。そして、第3の記憶領域に結果を出力す
る。
【0012】(3)(2)において、垂直方向エッジデ
ータでは、水平方向において下降遷移のアウトラインに
ついてのみエッジデータの生成を行う。この結果、補間
処理によるオーバーヘッドを軽減することができる。
ータでは、水平方向において下降遷移のアウトラインに
ついてのみエッジデータの生成を行う。この結果、補間
処理によるオーバーヘッドを軽減することができる。
【0013】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。 (第1の実施例)図1は、本発明のアウトラインフォン
ト描画装置の第1の実施例のブロック図である。図示の
装置は、入力部1、輪郭データ生成部2、エッジデータ
生成部3、記憶部4、補間処理部5を備えている。入力
部1は、文字を構成するのに必要な情報を抽出し、輪郭
データ生成部2に入力する。輪郭データ生成部2は、入
力部1から入力される表示すべき文字の情報をもとに、
適宜アウトラインフォントデータにアクセスし、文字の
輪郭の拡大、縮小、及び曲線区間の直線近似などの処理
を行う。そして、文字の輪郭を形成するベクトルデータ
を出力する。
に説明する。 (第1の実施例)図1は、本発明のアウトラインフォン
ト描画装置の第1の実施例のブロック図である。図示の
装置は、入力部1、輪郭データ生成部2、エッジデータ
生成部3、記憶部4、補間処理部5を備えている。入力
部1は、文字を構成するのに必要な情報を抽出し、輪郭
データ生成部2に入力する。輪郭データ生成部2は、入
力部1から入力される表示すべき文字の情報をもとに、
適宜アウトラインフォントデータにアクセスし、文字の
輪郭の拡大、縮小、及び曲線区間の直線近似などの処理
を行う。そして、文字の輪郭を形成するベクトルデータ
を出力する。
【0014】エッジデータ生成部3は、始点と終点の座
標で表されたべクトルデータを入力として、水平方向
(第1方向)におけるエッジデータを作成し、記憶部4
に格納する。そして、これと同時に、垂直方向における
エッジデータを作成し、記憶部4に格納する。補間処理
部5は、エッジデータ生成部3によって格納されたエッ
ジデータを入力とし、最終的な出力となる表示すべき文
字のビットマップフォントデータを作成し、記憶部4に
再格納する。記憶部4は、RAM等から成り、一時的に
エッジデータを格納すると同時に、最終的な出力となる
表示すべき文字のビットマッップフォントデータを格納
する。この記憶部4は、1画素1ビットに対応させた記
憶領域である。
標で表されたべクトルデータを入力として、水平方向
(第1方向)におけるエッジデータを作成し、記憶部4
に格納する。そして、これと同時に、垂直方向における
エッジデータを作成し、記憶部4に格納する。補間処理
部5は、エッジデータ生成部3によって格納されたエッ
ジデータを入力とし、最終的な出力となる表示すべき文
字のビットマップフォントデータを作成し、記憶部4に
再格納する。記憶部4は、RAM等から成り、一時的に
エッジデータを格納すると同時に、最終的な出力となる
表示すべき文字のビットマッップフォントデータを格納
する。この記憶部4は、1画素1ビットに対応させた記
憶領域である。
【0015】次に、輪郭データ生成部2から出力される
ベクトルデータを入力とし、エッジデータを作成するエ
ッジデータ生成部3の詳細を、図2、図3、図4を参照
して説明する。エッジデータ生成部3は、図2で示すv
1からv4までのベクトルを順次入力し、エッジデータ
を作成する。具体例を以下に述べる。エッジデータ生成
部3は、図2のべクトルv1と水平方向のハーフピクセ
ルラインとの交点を順次検出し、四捨五入の丸め処理に
より交点データの量子化を行う。即ち、水平方向スキャ
ンの場合、垂直方向について正の向きのベクトルについ
ては、四捨五入値をエッジデータとする。また、負の向
きのべクトルについては、四捨五入値から“1”を減算
した値をエッジデータとする。一方、垂直方向スキャン
の場合は、水平方向について正の向きのべクトルについ
ては、四捨五入値から“1”を減算した値をエッジデー
タとする。そして、負の向きのべクトルについては、四
捨五入値をエッジデータとする。
ベクトルデータを入力とし、エッジデータを作成するエ
ッジデータ生成部3の詳細を、図2、図3、図4を参照
して説明する。エッジデータ生成部3は、図2で示すv
1からv4までのベクトルを順次入力し、エッジデータ
を作成する。具体例を以下に述べる。エッジデータ生成
部3は、図2のべクトルv1と水平方向のハーフピクセ
ルラインとの交点を順次検出し、四捨五入の丸め処理に
より交点データの量子化を行う。即ち、水平方向スキャ
ンの場合、垂直方向について正の向きのベクトルについ
ては、四捨五入値をエッジデータとする。また、負の向
きのべクトルについては、四捨五入値から“1”を減算
した値をエッジデータとする。一方、垂直方向スキャン
の場合は、水平方向について正の向きのべクトルについ
ては、四捨五入値から“1”を減算した値をエッジデー
タとする。そして、負の向きのべクトルについては、四
捨五入値をエッジデータとする。
【0016】次に、このようにして求めたエッジデータ
を記憶部4に格納する。エッジデータの格納は、実際に
は、エッジデータの画素位置に対応する記憶部4の中の
ビットをオンにすることにより行う。ここで、オンとは
“1”を示し、オフとは“0”を示すことにする。この
とき、すでにビットがオンになっている場合は、そのビ
ットにおいて何も操作を行わない。水平方向エッジデー
タの生成が終了すれば、同様にして、図2のべクトルv
1と、垂直方向のハーフピクセルラインとの交点を順次
検出し、エッジデータを記憶部4に格納する。図3にお
いて、小文字のアルファベットで示す点は、ベクトルv
1と水平方向のハーフピクセルラインとの交点であっ
て、大文字のアルファベットで示す点は、ベクトルv1
と垂直方向のハーフピクセルラインとの交点である。
を記憶部4に格納する。エッジデータの格納は、実際に
は、エッジデータの画素位置に対応する記憶部4の中の
ビットをオンにすることにより行う。ここで、オンとは
“1”を示し、オフとは“0”を示すことにする。この
とき、すでにビットがオンになっている場合は、そのビ
ットにおいて何も操作を行わない。水平方向エッジデー
タの生成が終了すれば、同様にして、図2のべクトルv
1と、垂直方向のハーフピクセルラインとの交点を順次
検出し、エッジデータを記憶部4に格納する。図3にお
いて、小文字のアルファベットで示す点は、ベクトルv
1と水平方向のハーフピクセルラインとの交点であっ
て、大文字のアルファベットで示す点は、ベクトルv1
と垂直方向のハーフピクセルラインとの交点である。
【0017】図4は、ベクトルv1におけるエッジデー
タを、1画素1ビットに対応する記憶部4に格納した状
態を示すものである。例えば、図4中の記憶領域[5,
2]のビットは、図3における水平方向のスキャンによ
り検出された交点bと垂直方向のスキャンにより検出さ
れた交点Fにおけるエッジデータの両方を示す。上述し
た処理をベクトルv2からv4までに対しても同様に行
う。ベクトルv1からv4までの全てのベクトルについ
てエッジデータを作成して記憶した状態を図5に示す。
タを、1画素1ビットに対応する記憶部4に格納した状
態を示すものである。例えば、図4中の記憶領域[5,
2]のビットは、図3における水平方向のスキャンによ
り検出された交点bと垂直方向のスキャンにより検出さ
れた交点Fにおけるエッジデータの両方を示す。上述し
た処理をベクトルv2からv4までに対しても同様に行
う。ベクトルv1からv4までの全てのベクトルについ
てエッジデータを作成して記憶した状態を図5に示す。
【0018】補間処理部5は、図5に示す記憶部4に格
納されたエッジデータを入力とし、水平方向、あるいは
垂直方向のどちらか一方向について(本実施例では水平
方向を選択)、エッジデータ間のオフになっているビッ
トをオンにすることにより補間を行う。ただし、補間区
間がない場合は処理は行わない。本実施例の場合は補間
区間がないため、エッジデータを格納した図5に示す記
憶部4の内容が、最終出力となる表示すべき文字のビッ
トマップフォントデータとなる。このビットマップフォ
ントデータを可視化した様子を図9に示す。これに対
し、補間処理が必要となる場合の記憶部4の状態を図6
に示す。そして、その記憶部4に格納されたエッジデー
タを入力とし補間処理を行って、最終的に出力する表示
文字のビットマップフォントデータの状態を図7に示
す。
納されたエッジデータを入力とし、水平方向、あるいは
垂直方向のどちらか一方向について(本実施例では水平
方向を選択)、エッジデータ間のオフになっているビッ
トをオンにすることにより補間を行う。ただし、補間区
間がない場合は処理は行わない。本実施例の場合は補間
区間がないため、エッジデータを格納した図5に示す記
憶部4の内容が、最終出力となる表示すべき文字のビッ
トマップフォントデータとなる。このビットマップフォ
ントデータを可視化した様子を図9に示す。これに対
し、補間処理が必要となる場合の記憶部4の状態を図6
に示す。そして、その記憶部4に格納されたエッジデー
タを入力とし補間処理を行って、最終的に出力する表示
文字のビットマップフォントデータの状態を図7に示
す。
【0019】以上のようにして、従来のように、水平方
向のスキャン変換だけでは、図8に示す通り、本来連続
していなければならない部分が、ビットマップイメージ
を作成する際に不連続となり、高品質なビットマップフ
ォントデータを得ることができなかったのが、本発明に
より、効率的に補間処理を施すことができる。即ち、本
発明によれば、エッジデータ生成部3は、水平・垂直両
方向エッジデータを生成するため、図9に示す通り、ド
ロップアウトがない高品質なビットマップフォントデー
タを得ることができる。また、エッジデータ生成部3
は、水平方向におけるエッジデータと、垂直方向におけ
るエッジデータを共通の記憶部4に格納するため、メモ
リ消費量の削減が可能となる。
向のスキャン変換だけでは、図8に示す通り、本来連続
していなければならない部分が、ビットマップイメージ
を作成する際に不連続となり、高品質なビットマップフ
ォントデータを得ることができなかったのが、本発明に
より、効率的に補間処理を施すことができる。即ち、本
発明によれば、エッジデータ生成部3は、水平・垂直両
方向エッジデータを生成するため、図9に示す通り、ド
ロップアウトがない高品質なビットマップフォントデー
タを得ることができる。また、エッジデータ生成部3
は、水平方向におけるエッジデータと、垂直方向におけ
るエッジデータを共通の記憶部4に格納するため、メモ
リ消費量の削減が可能となる。
【0020】そして、補間処理部5においては、水平、
あるいは垂直の一方向による補間処理のみ行うため、水
平・垂直両方向のスキャンによるタイムロスを削減で
き、しかも、エッジデータを格納した記憶部4に最終出
力となる表示すべき文字のビットマップフォントデータ
を再度格納するため、よりいっそうのメモリ消費量の削
減を実現できる。
あるいは垂直の一方向による補間処理のみ行うため、水
平・垂直両方向のスキャンによるタイムロスを削減で
き、しかも、エッジデータを格納した記憶部4に最終出
力となる表示すべき文字のビットマップフォントデータ
を再度格納するため、よりいっそうのメモリ消費量の削
減を実現できる。
【0021】(第2の実施例)次に、本発明の第2の実
施例を説明する。図10は、本発明のアウトラインフォ
ント描画装置の第2の実施例のブロック図である。図示
の装置は、水平方向(第1方向)エッジデータ生成部1
1、スキャン変換部12、垂直方向(第2方向)エッジ
データ生成部13、垂直方向(第2方向)エッジデータ
補間部14等を備えている。水平方向エッジデータ生成
部11は、アウトラインデータ15を入力とし、水平方
向エッジデータを生成する。そして、生成したエッジデ
ータを第1の記憶領域16に格納する。
施例を説明する。図10は、本発明のアウトラインフォ
ント描画装置の第2の実施例のブロック図である。図示
の装置は、水平方向(第1方向)エッジデータ生成部1
1、スキャン変換部12、垂直方向(第2方向)エッジ
データ生成部13、垂直方向(第2方向)エッジデータ
補間部14等を備えている。水平方向エッジデータ生成
部11は、アウトラインデータ15を入力とし、水平方
向エッジデータを生成する。そして、生成したエッジデ
ータを第1の記憶領域16に格納する。
【0022】スキャン変換部12は、第1の記憶領域1
6に格納されている水平方向エッジデータを入力とし、
スキャン変換を行う。そして、最終結果となるビットマ
ップイメージを第3の記憶領域18に出力する。垂直方
向エッジデータ生成部13は、アウトラインデータ15
を入力とし、垂直方向エッジデータを生成する。そし
て、生成したエッジデータを第2の記憶領域17に格納
する。垂直方向エッジデータ補間部14は、第2の記憶
領域17に格納されている垂直方向エッジデータを入力
とし、そのエッジデータを第3の記憶領域18に格納す
る。
6に格納されている水平方向エッジデータを入力とし、
スキャン変換を行う。そして、最終結果となるビットマ
ップイメージを第3の記憶領域18に出力する。垂直方
向エッジデータ生成部13は、アウトラインデータ15
を入力とし、垂直方向エッジデータを生成する。そし
て、生成したエッジデータを第2の記憶領域17に格納
する。垂直方向エッジデータ補間部14は、第2の記憶
領域17に格納されている垂直方向エッジデータを入力
とし、そのエッジデータを第3の記憶領域18に格納す
る。
【0023】次に、上述した装置の動作を図11の例を
用いて説明する。水平方向エッジデータ生成部11は、
図11に示すアウトラインデータを入力し、水平方向エ
ッジデータを生成する。そして、エッジデータを第1の
記憶領域16に格納する。これと同時に、垂直方向エッ
ジデータ生成部13は、図11に示すアウトラインデー
タを入力し、垂直方向エッジデータを生成する。そし
て、そのエッジデータを第2の記憶領域17に格納す
る。この過程の具体例を以下に述べる。
用いて説明する。水平方向エッジデータ生成部11は、
図11に示すアウトラインデータを入力し、水平方向エ
ッジデータを生成する。そして、エッジデータを第1の
記憶領域16に格納する。これと同時に、垂直方向エッ
ジデータ生成部13は、図11に示すアウトラインデー
タを入力し、垂直方向エッジデータを生成する。そし
て、そのエッジデータを第2の記憶領域17に格納す
る。この過程の具体例を以下に述べる。
【0024】水平方向エッジデータ生成部11は、図1
1に示すアウトラインと水平方向のスキャンラインとの
交点を順次検出し、四捨五入の丸め処理により量子化を
行う。水平方向エッジデータでは、垂直方向において上
昇遷移、下降遷移のどちらのアウトラインについてもエ
ッジデータの生成を行う(図14参照)。そして、生成
したエッジデータを第1の記憶領域16に格納する。エ
ッジデータを格納するための手段には、線形リスト方
式、1ピクセルを1ビットで表現するビットマップ方
式、1ピクセル1バイトで表現する配列方式などさまざ
まな方式があるが、本実施例では、ビットマップ方式を
用いて説明する。実際には、エッジデータの位置に対応
する第1の記憶領域16の中のビットをオンにする。こ
こで、オンは“1”を、オフは“0”を示す。このよう
にして生成された水平方向エッジデータを、ビットマッ
プ方式を用いて第1の記憶領域16に格納した様子を図
15に示す。
1に示すアウトラインと水平方向のスキャンラインとの
交点を順次検出し、四捨五入の丸め処理により量子化を
行う。水平方向エッジデータでは、垂直方向において上
昇遷移、下降遷移のどちらのアウトラインについてもエ
ッジデータの生成を行う(図14参照)。そして、生成
したエッジデータを第1の記憶領域16に格納する。エ
ッジデータを格納するための手段には、線形リスト方
式、1ピクセルを1ビットで表現するビットマップ方
式、1ピクセル1バイトで表現する配列方式などさまざ
まな方式があるが、本実施例では、ビットマップ方式を
用いて説明する。実際には、エッジデータの位置に対応
する第1の記憶領域16の中のビットをオンにする。こ
こで、オンは“1”を、オフは“0”を示す。このよう
にして生成された水平方向エッジデータを、ビットマッ
プ方式を用いて第1の記憶領域16に格納した様子を図
15に示す。
【0025】垂直方向エッジデータ生成部13は、図1
1に示すアウトラインと垂直方向のスキャンラインとの
交点を順次検出し、四捨五入の丸め処理により量子化を
行う。垂直方向エッジデータでは、水平方向において下
降遷移のアウトラインについてのみエッジデータの生成
を行う(図17参照)。生成された垂直方向エッジデー
タを第2の記憶領域17に格納した様子を図18に示
す。スキャン変換部12は、水平方向エッジデータを入
力し、対になるエッジデータ間を塗りつぶす。この時、
エッジデータとピクセルの実際の位置との整合をとるた
め、対になるエッジデータのうち左側のエッジデータは
オンにするが、右側のエッジデータはオフにするように
してスキャン変換を行う。そして、第3の記憶領域18
に結果を出力する。全ての水平方向エッジデータについ
てスキャン変換を行った結果、生成されたビットマップ
イメージを図16に示す。
1に示すアウトラインと垂直方向のスキャンラインとの
交点を順次検出し、四捨五入の丸め処理により量子化を
行う。垂直方向エッジデータでは、水平方向において下
降遷移のアウトラインについてのみエッジデータの生成
を行う(図17参照)。生成された垂直方向エッジデー
タを第2の記憶領域17に格納した様子を図18に示
す。スキャン変換部12は、水平方向エッジデータを入
力し、対になるエッジデータ間を塗りつぶす。この時、
エッジデータとピクセルの実際の位置との整合をとるた
め、対になるエッジデータのうち左側のエッジデータは
オンにするが、右側のエッジデータはオフにするように
してスキャン変換を行う。そして、第3の記憶領域18
に結果を出力する。全ての水平方向エッジデータについ
てスキャン変換を行った結果、生成されたビットマップ
イメージを図16に示す。
【0026】垂直方向エッジデータ補間部14は、垂直
方向エッジデータを入力し、そのエッジデータをビット
マップイメージとして第3の記憶領域18に出力する。
垂直方向エッジデータは生成時にエッジデータとピクセ
ルの実際の位置との整合をとっているため、エッジデー
タをそのままビットマップイメージとして補間すること
ができる。本実施例においては、第2の記憶領域と第3
の記憶領域についてOR演算を行うことにより垂直方向
エッジデータの補間を実現できる。垂直方向エッジデー
タの補間が完了したビットマップイメージを図19に示
す。
方向エッジデータを入力し、そのエッジデータをビット
マップイメージとして第3の記憶領域18に出力する。
垂直方向エッジデータは生成時にエッジデータとピクセ
ルの実際の位置との整合をとっているため、エッジデー
タをそのままビットマップイメージとして補間すること
ができる。本実施例においては、第2の記憶領域と第3
の記憶領域についてOR演算を行うことにより垂直方向
エッジデータの補間を実現できる。垂直方向エッジデー
タの補間が完了したビットマップイメージを図19に示
す。
【0027】以上のようにして、水平方向のスキャン変
換でドロップアウトが発生する部分は、垂直方向に隣接
する2つのピクセルの中心を結ぶ線を対になる2つのア
ウトラインが横切る部分に限定できる。このため、本発
明のように垂直方向エッジデータの生成、補間をするこ
とによって、図19に示す通り、ドロップアウトがない
高品質なビットマップフォントデータを得ることができ
る。また、垂直方向エッジデータは、ドロップアウトが
発生する部分においては重複するため、本発明のよう
に、水平方向について上昇遷移、あるいは下降遷移のど
ちらかのアウトラインに対してエッジデータを生成する
だけで、高品質を保つことができる。
換でドロップアウトが発生する部分は、垂直方向に隣接
する2つのピクセルの中心を結ぶ線を対になる2つのア
ウトラインが横切る部分に限定できる。このため、本発
明のように垂直方向エッジデータの生成、補間をするこ
とによって、図19に示す通り、ドロップアウトがない
高品質なビットマップフォントデータを得ることができ
る。また、垂直方向エッジデータは、ドロップアウトが
発生する部分においては重複するため、本発明のよう
に、水平方向について上昇遷移、あるいは下降遷移のど
ちらかのアウトラインに対してエッジデータを生成する
だけで、高品質を保つことができる。
【0028】このように、本実施例では、水平方向のス
キャン変換に対して、垂直方向エッジデータの生成、補
間の時間的オーバーヘッドを軽減し、高速に処理を行う
ことができる。また、エッジデータを格納するための手
段をビットマップ形式にした場合、ビットマップイメー
ジの生成に論理演算が使用でき、より高速に処理を行う
ことができる。更に、エッジデータの記憶領域とビット
マップイメージの記憶領域の共有化が可能となり、メモ
リ消費量の削減も可能となる。
キャン変換に対して、垂直方向エッジデータの生成、補
間の時間的オーバーヘッドを軽減し、高速に処理を行う
ことができる。また、エッジデータを格納するための手
段をビットマップ形式にした場合、ビットマップイメー
ジの生成に論理演算が使用でき、より高速に処理を行う
ことができる。更に、エッジデータの記憶領域とビット
マップイメージの記憶領域の共有化が可能となり、メモ
リ消費量の削減も可能となる。
【0029】尚、本発明は上述した実施例に限定される
ものではなく、種々の変形が可能であることはもちろん
である。例えば、量子化については、四捨五入による丸
め処理以外にも、切捨て、切上げにより丸め処理を行う
こともできる。
ものではなく、種々の変形が可能であることはもちろん
である。例えば、量子化については、四捨五入による丸
め処理以外にも、切捨て、切上げにより丸め処理を行う
こともできる。
【0030】また、上述した実施例では、水平方向のス
キャン変換を行い、垂直方向エッジデータを補間する場
合の説明を行ったが、水平方向と垂直方向の役割を入れ
替える場合のほか、本発明はあらゆる方向の処理につい
て有効である。つまり、ある方向にスキャン変換を行う
場合、スキャン方向に垂直な方向についてエッジデータ
の生成、補間を行うことにより本発明を実現することが
できる。更に、上述した実施例では、説明を容易にする
ために、また、水平方向のスキャン変換のみでは、不十
分であることを説明するために、非常に単純な文字の塗
りつぶし処理を例に用いた。このため、実施例において
は、垂直方向エッジデータのスキャン変換だけで、目的
のビットマップイメージを得ることが可能となってい
る。ところが、実際には、形状の複雑な、さまざまな文
字の塗りつぶし処理を行う必要があり、本発明は、その
ような形状の複雑な文字の塗りつぶしを行う際に、より
いっそうの効果を発揮することができる。また、アウト
ラインフォントに限定することなく、ページ記述言語な
どにより出力されるさまざまな図形の塗りつぶしについ
ても効果を発揮することができる。
キャン変換を行い、垂直方向エッジデータを補間する場
合の説明を行ったが、水平方向と垂直方向の役割を入れ
替える場合のほか、本発明はあらゆる方向の処理につい
て有効である。つまり、ある方向にスキャン変換を行う
場合、スキャン方向に垂直な方向についてエッジデータ
の生成、補間を行うことにより本発明を実現することが
できる。更に、上述した実施例では、説明を容易にする
ために、また、水平方向のスキャン変換のみでは、不十
分であることを説明するために、非常に単純な文字の塗
りつぶし処理を例に用いた。このため、実施例において
は、垂直方向エッジデータのスキャン変換だけで、目的
のビットマップイメージを得ることが可能となってい
る。ところが、実際には、形状の複雑な、さまざまな文
字の塗りつぶし処理を行う必要があり、本発明は、その
ような形状の複雑な文字の塗りつぶしを行う際に、より
いっそうの効果を発揮することができる。また、アウト
ラインフォントに限定することなく、ページ記述言語な
どにより出力されるさまざまな図形の塗りつぶしについ
ても効果を発揮することができる。
【0031】
【発明の効果】以上説明したように、本発明のアウトラ
インフォント描画装置によれば、第1の方向とこれと垂
直な第2の方向についてエッジデータを生成し、いずれ
か一方向について補間処理を行うようにしたので、次の
ような効果がある。即ち、アウトラインフォントの輪郭
の内部を塗りつぶす際、特に、小ドットのビットマップ
フォントデータを作成する場合においても、ドロップア
ウトが生じることを防止することができる。このため、
高品質なビットマップフォントデータを容易に作成する
ことができる。また、塗りつぶすべき部分が細く、スキ
ャンラインに対して傾斜が緩やかな輪郭の内部を塗りつ
ぶす場合にも、本来連続していなければならない部分
に、ドロップアウトが生じることを防止することができ
る。これにより、高品質なビットマップフォントデータ
を作成することが容易となる。
インフォント描画装置によれば、第1の方向とこれと垂
直な第2の方向についてエッジデータを生成し、いずれ
か一方向について補間処理を行うようにしたので、次の
ような効果がある。即ち、アウトラインフォントの輪郭
の内部を塗りつぶす際、特に、小ドットのビットマップ
フォントデータを作成する場合においても、ドロップア
ウトが生じることを防止することができる。このため、
高品質なビットマップフォントデータを容易に作成する
ことができる。また、塗りつぶすべき部分が細く、スキ
ャンラインに対して傾斜が緩やかな輪郭の内部を塗りつ
ぶす場合にも、本来連続していなければならない部分
に、ドロップアウトが生じることを防止することができ
る。これにより、高品質なビットマップフォントデータ
を作成することが容易となる。
【図1】本発明のアウトラインフォント描画装置の第1
の実施例のブロック図である。
の実施例のブロック図である。
【図2】ベクトルデータの一例の説明図である。
【図3】水平及び垂直方向の交点データの一例の説明図
である。
である。
【図4】記憶部の記憶内容(その1)の説明図である。
【図5】記憶部の記憶内容(その2)の説明図である。
【図6】記憶部の記憶内容(その3)の説明図である。
【図7】記憶部の記憶内容(その4)の説明図である。
【図8】アウトラインデータの塗りつぶし結果(その
1)の説明図である。
1)の説明図である。
【図9】アウトラインデータの塗りつぶし結果(その
2)の説明図である。
2)の説明図である。
【図10】本発明のアウトラインフォント描画装置の第
2の実施例のブロック図である。
2の実施例のブロック図である。
【図11】幅の狭いアウトラインの一例の説明図であ
る。
る。
【図12】幅の狭いアウトラインの塗りつぶし例(その
1)の説明図である。
1)の説明図である。
【図13】幅の狭いアウトラインの塗りつぶし例(その
2)の説明図である。
2)の説明図である。
【図14】エッジデータの生成結果(その1)の説明図
である。
である。
【図15】記憶領域内のビットの状態例(その1)の説
明図である。
明図である。
【図16】記憶領域内のビットの状態例(その2)の説
明図である。
明図である。
【図17】エッジデータの生成結果(その2)の説明図
である。
である。
【図18】記憶領域内のビットの状態例(その3)の説
明図である。
明図である。
【図19】記憶領域内のビットの状態例(その4)の説
明図である。
明図である。
1 入力部 2 輪郭データ生成部 3 エッジデータ生成部 4 記憶部 5 補間処理部 11 水平方向エッジデータ生成部 12 スキャン変換部 13 垂直方向エッジデータ生成部 14 垂直方向エッジデータ補間部
Claims (3)
- 【請求項1】 文字コード、拡大率を含むアウトライン
フォントの展開に必要な情報を入力する入力部と、 当該入力部により入力された情報とアウトラインフォン
トデータから、始点及び終点をつないだベクトルにより
表現される輪郭データを生成する輪郭データ生成部と、 当該輪郭データ生成部により生成された輪郭データと、
第1の方向及びそれと垂直な第2の方向のスキャンライ
ンとのそれぞれの交点をエッジデータとして検出するエ
ッジデータ生成部と、 当該エッジデータ生成部により、検出された各エッジデ
ータを格納する記憶部と、 当該記憶部に格納されたエッジデータを取り出して、補
間処理を施し、その補間処理後のエッジデータを、元の
取り出した記憶領域に再度格納する補間処理部とを備え
たことを特徴とするアウトラインフォント描画装置。 - 【請求項2】 アウトラインデータを入力し、第1の方
向のエッジデータを生成する第1方向エッジデータ生成
部と、 当該第1方向エッジデータ生成部により生成されたエッ
ジデータのスキャン変換を行うスキャン変換部と、 当該スキャン変換部によるスキャン変換の方向に垂直な
第2の方向について、エッジデータを生成する第2方向
エッジデータ生成部と、 当該第2方向エッジデータ生成部により生成されたエッ
ジデータの補間処理を行う第2方向エッジデータ補間部
とを備えたことを特徴とするアウトラインフォント描画
装置。 - 【請求項3】 前記第2方向エッジデータ生成部は、上
昇遷移、下降遷移のどちらかのアウトラインについての
みエッジデータを生成することを特徴とする請求項2記
載のアウトラインフォント描画装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7176699A JPH096311A (ja) | 1995-06-20 | 1995-06-20 | アウトラインフォント描画装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7176699A JPH096311A (ja) | 1995-06-20 | 1995-06-20 | アウトラインフォント描画装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH096311A true JPH096311A (ja) | 1997-01-10 |
Family
ID=16018204
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7176699A Pending JPH096311A (ja) | 1995-06-20 | 1995-06-20 | アウトラインフォント描画装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH096311A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5490519A (en) * | 1987-06-05 | 1996-02-13 | Chartex International Plc | Tubular protective device for protection against transfer of infectious matter during sexual intercourse |
-
1995
- 1995-06-20 JP JP7176699A patent/JPH096311A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5490519A (en) * | 1987-06-05 | 1996-02-13 | Chartex International Plc | Tubular protective device for protection against transfer of infectious matter during sexual intercourse |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR970008546B1 (ko) | 문자 또는 도형의 처리방법 | |
| US5519412A (en) | Pattern processing method | |
| JP3037854B2 (ja) | 文字生成方法及びその装置 | |
| US5526474A (en) | Image drawing with improved process for area ratio of pixel | |
| JPH0322186A (ja) | 画像出力方法 | |
| JPH096311A (ja) | アウトラインフォント描画装置 | |
| JP3034140B2 (ja) | 文字生成方法及びその装置 | |
| JP2806679B2 (ja) | 文字発生装置 | |
| JP3129717B2 (ja) | 画像処理装置および画像処理方法 | |
| JPH0887602A (ja) | アウトラインフォント描画装置 | |
| JP3573291B2 (ja) | 文字データ作成方法及び文字データ作成装置 | |
| KR940001106B1 (ko) | 선폭보정방법 및 그 장치 | |
| JP2782904B2 (ja) | 多角形塗りつぶし方式 | |
| JP3160957B2 (ja) | 文書作成装置 | |
| JPS62175794A (ja) | 文字発生装置 | |
| JP3214722B2 (ja) | ストローク文字発生器 | |
| JP2619931B2 (ja) | 文字処理装置および文字処理方法 | |
| JP2976671B2 (ja) | データ展開方法 | |
| KR940007818B1 (ko) | 그레이 스케일 폰트의 생성방법 | |
| JPH10143676A (ja) | 画像処理装置、画像処理方法、および記録媒体 | |
| JP2000259845A (ja) | 多角形描画方法、および多角形描画装置 | |
| JPH02235773A (ja) | 出力制御方法及びその装置 | |
| JPH01166094A (ja) | アウトラインデータ格納方式 | |
| JPH0916147A (ja) | 文字処理装置および方法 | |
| JPH07141336A (ja) | 文字作成装置 |