JPH0950272A - アウトラインフォント生成方法およびアウトラインフォント生成装置 - Google Patents

アウトラインフォント生成方法およびアウトラインフォント生成装置

Info

Publication number
JPH0950272A
JPH0950272A JP7202162A JP20216295A JPH0950272A JP H0950272 A JPH0950272 A JP H0950272A JP 7202162 A JP7202162 A JP 7202162A JP 20216295 A JP20216295 A JP 20216295A JP H0950272 A JPH0950272 A JP H0950272A
Authority
JP
Japan
Prior art keywords
rectangle
font
coordinates
bit
outline font
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
Application number
JP7202162A
Other languages
English (en)
Inventor
Akihide Demura
彰英 出村
Tsuneyuki Ishino
恒之 石野
Hiroyuki Bando
浩之 坂東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP7202162A priority Critical patent/JPH0950272A/ja
Publication of JPH0950272A publication Critical patent/JPH0950272A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】 ビットマップフォントからアウトラインフォ
ントを生成する。 【解決手段】 縦と横それぞれm×n個のビットからな
るビットマップフォントの各ラスタ内で、1以上連続し
てONされたビットを1つの矩形とみなし、これを縦と
横それぞれM×Nの大きさを有する座標系の座標情報に
変換することにより、アウトラインフォントを得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アウトラインフォ
ント生成方法およびアウトラインフォント生成装置に関
し、特に、ビットマップフォントをアウトラインフォン
トに変換する、アウトラインフォント生成方法およびア
ウトラインフォント生成装置に関する。
【0002】
【従来の技術】ワードプロセッサ、コンピュータなど
は、文字、記号、図形など(以下、本明細書中において
とくに区別する必要がないとき、これらを単に文字と総
称する)の形状(フォント)をフォントデータとして記
憶している。文字を画面上に表示したり、プリンタで印
刷したりする際には、目的となる文字に対応するフォン
トデータがプリンタや表示装置に出力される。
【0003】フォントは、その種類により大きく2つに
分けられる。1つは、複数のドットのON/OFFによ
り文字を表すビットマップフォントである。
【0004】ビットマップフォントは、図11に示すよ
うなnドット(ビット)からなるラスタ (Raster) が、
図12に示すようにm列集まり文字を表す。この例で
は、ラスタの左端がMSB (Most Significant Bit) 、
ラスタの右端がLSB (LeastSignificant Bit) となっ
ており、また、m=8,n=8である。
【0005】ここで、ONされているビット(“黒”)
を“1”、OFFされているビット(“白”)を“0”
に対応させることにより、各ラスタを2進数で表すこと
ができる。例えば、図11に示すラスタを2進数で表現
すると00101110となる。
【0006】これらの各ラスタを表す2進数は、フォン
トデータとしてメモリなどに記憶される。
【0007】このように、ビットマップフォントは、文
字を複数の点の集合として表している。これらの複数の
点のON/OFFの状態は、コンピュータが扱う2進数
として表現できるので、ビットマップフォントはコンピ
ュータに好適なフォントであるといえる。
【0008】もう1つの種類のフォントであるアウトラ
インフォントは、文字上の基本的な位置にあるいくつか
の点と、それを結ぶ輪郭線(アウトライン)により定義
される。
【0009】図13は、このアウトラインフォントによ
って表された文字を表している。同図の中で、点21、
点22は、これらの2点が直線で結ばれることを表して
おり、また、点23、点24は、これらの2点が曲線で
結ばれることを表している。このように、アウトライン
フォントは、文字上の基本的な位置にある点の座標と、
それらの点の接続関係により文字を表す。
【0010】このアウトラインフォントで表された文字
を印刷、表示する場合は、まず、点の座標をもとに文字
の輪郭線を描く。次に、輪郭線の内側を塗りつぶし、文
字のビットマップフォントを作成する。続いて、このビ
ットマップフォントをプリンタ、ディスプレイなどに出
力することにより所定の文字を得る。
【0011】このように、アウトラインフォントは、文
字上の基本的な位置にある点の座標値とその接続関係に
より文字を表している。このことから、文字が配置され
る座標系の大きさを変更することにより、文字の大きさ
を自由に選ぶことが可能となる。
【0012】図14は、アウトラインフォントを作成す
るための装置の構成例を示している。
【0013】処理装置1は、システム全体の制御とデー
タ処理を行うCPU (Central Processing Unit) 1
a、データ処理を行う際に必要なデータなどを記憶する
RAM(Random Access Memory) 1bの他、システム起
動時に実行されるIPL (Initial Program Loader) な
どのようなプログラムやその他のデータを記憶している
ROM (Read Only Memory) 1c、などから構成され
る。
【0014】また、イメージスキャナ2は、入力の対象
となる文字を、画像データとして処理装置1に読み込む
ようになされている。
【0015】記憶装置3は、ハードディスク装置、光磁
気ディスク装置、磁気テープ装置などで構成され、処理
装置1により作成されたアウトラインフォントを格納す
るようになされている。
【0016】プリンタ4は、レーザプリンタ、インクジ
ェットプリンタなどで構成され、作成されたアウトライ
ンフォント3aを、処理装置1を介して印字出力するよ
うになされている。
【0017】ディスプレイ5は、CRT (Cathode Ray
Tube) ディスプレイ、LCD (Liquid Crystal Displa
y) などで構成され、作成されたアウトラインフォント
3aを、処理装置1を介して表示出力するようになされ
ている。
【0018】この装置により、アウトラインフォントを
作成するときは、まず、変換の対象となる文字(用紙に
印刷されたもの)をイメージスキャナ2により画像デー
タに変換し、この画像データを処理装置1内のRAM1
bに記憶する。次に、CPU1aは、図示しない外部記
憶装置に記憶されたプログラムが示す手続きに従い、R
AM1bに記憶されたデータをアウトラインフォントに
変換する。そして、変換されたデータは、記憶装置3に
送出され、アウトラインフォント3aとして記憶され
る。
【0019】作成されたアウトラインフォントは、プリ
ンタ4により印刷したり、ディスプレイ5により表示し
たりすることが可能である。
【0020】
【発明が解決しようとする課題】しかしながら、初めに
述べたビットマップフォントは、文字の大きさ(文字を
表すドットの数)を任意に変更することが困難である。
また、表示できる最小ドット(1ドット)の大きさは、
個々の出力装置によって異なる場合がある。このため、
目的の大きさの文字を得るためには、出力装置の種類
や、目的となる文字の大きさに応じて、ドット数の異な
るフォントをシステム側で準備する必要があった。
【0021】一方、後に述べたアウトラインフォントで
は、任意の大きさに文字を拡大、縮小できるので、出力
装置が異なる場合でも目的の大きさの文字を得ることが
できる。しかしながら、これらのアウトラインフォント
を得るには、アウトラインフォントを作成するための専
用のプログラムや、図14に示すようなイメージスキャ
ナ2が必要となり、制作のコストが高くなるという課題
があった。また、文字を1文字ずつ入力し、変換するた
め、作成の処理に多大の時間が必要であるなどの課題も
あった。
【0022】本発明はこのような状況に鑑みてなされた
ものであり、ビットマップフォントからアウトラインフ
ォントを簡単に作成できるようにするものである。
【0023】
【課題を解決するための手段】請求項1に記載のアウト
ラインフォント生成方法は、ビットマップフォントの横
方向に1以上連続してONされたビットを1つの矩形と
みなし、その矩形の先端部にあたるビットの横方向の位
置を取得する第1のステップと、矩形の末端部にあたる
ビットの横方向の位置を取得する第2のステップと、矩
形の縦方向の位置を取得する第3のステップと、第1乃
至第3のステップにより得られた矩形の位置の情報か
ら、矩形の4つの頂点の座標を計算する第4のステップ
と、第1乃至第4のステップを繰り返す第5のステップ
とを備えることを特徴とする。
【0024】請求項2に記載のアウトラインフォント生
成装置は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
の手段と、矩形の末端部にあたるビットの横方向の位置
を取得する第2の手段と、矩形の縦方向の位置を取得す
る第3の手段と、第1乃至第3の手段により得られた矩
形の位置の情報から、矩形の4つの頂点の座標を計算す
る第4の手段と、第1乃至第4の手段にその処理を繰り
返し実行させる第5の手段とを備えることを特徴とす
る。
【0025】請求項3に記載のアウトラインフォント生
成方法は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
のステップと、矩形の末端部にあたるビットの横方向の
位置を取得する第2のステップと、矩形の縦方向の位置
を取得する第3のステップと、第1乃至第3のステップ
により得られた矩形の位置の情報から、矩形の4つの頂
点の座標を計算する第4のステップと、第4のステップ
により得られた頂点の座標を、M×Nの大きさの座標系
に写像した場合に得られる新たな頂点の座標を計算する
第5のステップと、第1乃至第5のステップを繰り返す
第6ステップとを備えることを特徴とする。
【0026】請求項4に記載のアウトラインフォント生
成装置は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
の手段と、矩形の末端部にあたるビットの横方向の位置
を取得する第2の手段と、矩形の縦方向の位置を取得す
る第3の手段と、第1乃至第3の手段により得られた矩
形の位置の情報から、矩形の4つの頂点の座標を計算す
る第4の手段と、第4の手段により得られた頂点の座標
を、M×Nの大きさの座標系に写像した場合に得られる
新たな頂点の座標を計算する第5の手段と、第1乃至第
5の手段にその処理を繰り返し実行させる第6の手段と
を備えることを特徴とする。
【0027】請求項1に記載のアウトラインフォント生
成方法においては、ビットマップフォントの横方向に1
以上連続してONされたビットを1つの矩形とみなし、
第1のステップにおいて、その矩形の先端部にあたるビ
ットの横方向の位置を取得し、第2のステップにおい
て、矩形の末端部にあたるビットの横方向の位置を取得
し、第3のステップにおいて、矩形の縦方向の位置を取
得し、第4のステップにおいて、第1乃至第3のステッ
プにより得られた矩形の位置の情報から、矩形の4つの
頂点の座標を計算し、第5のステップにおいて、第1乃
至第4のステップを繰り返す。
【0028】請求項2に記載のアウトラインフォント生
成装置においては、ビットマップフォントの横方向に1
以上連続してONされたビットを1つの矩形とみなし、
第1の手段が、その矩形の先端部にあたるビットの横方
向の位置を取得し、第2の手段が、矩形の末端部にあた
るビットの横方向の位置を取得し、第3の手段が、矩形
の縦方向の位置を取得し、第4の手段が、第1乃至第3
の手段により得られた矩形の位置の情報から、矩形の4
つの頂点の座標を計算し、第5の手段が、第1乃至第4
の手段にその処理を繰り返し実行させる。
【0029】請求項3に記載のアウトラインフォント生
成方法においては、ビットマップフォントの横方向に1
以上連続してONされたビットを1つの矩形とみなし、
第1のステップにおいて、その矩形の先端部にあたるビ
ットの横方向の位置を取得し、第2のステップにおい
て、矩形の末端部にあたるビットの横方向の位置を取得
し、第3のステップにおいて、矩形の縦方向の位置を取
得し、第4のステップにおいて、第1乃至第3のステッ
プにより得られた矩形の位置の情報から、矩形の4つの
頂点の座標を計算し、第5のステップにおいて、第4の
ステップにより得られた頂点の座標を、M×Nの大きさ
の座標系に写像した場合に得られる新たな頂点の座標を
計算し、第6にステップにおいて、第1乃至第5のステ
ップを繰り返す。
【0030】請求項4に記載のアウトラインフォント生
成装置においては、ビットマップフォントの横方向に1
以上連続してONされたビットを1つの矩形とみなし、
第1の手段が、その矩形の先端部にあたるビットの横方
向の位置を取得し、第2の手段が、矩形の末端部にあた
るビットの横方向の位置を取得し、第3の手段が、矩形
の縦方向の位置を取得し、第4の手段が、第1乃至第3
の手段により得られた矩形の位置の情報から、矩形の4
つの頂点の座標を計算し、第5の手段が、第4の手段に
より得られた頂点の座標を、M×Nの大きさの座標系に
写像した場合に得られる新たな頂点の座標を計算し、第
6の手段が、第1乃至第5の手段にその処理を繰り返し
実行させる。
【0031】
【発明の実施の形態】以下に本発明の実施例を説明する
が、特許請求の範囲に記載の発明の各手段と、以下の実
施例との対応関係を明らかにするために、各手段の後の
括弧内に、対応する実施例(但し一例)を付加して本発
明の特徴を記述すると、次のようになる。
【0032】すなわち、請求項1に記載のアウトライン
フォント生成方法は、ビットマップフォントの横方向に
1以上連続してONされたビットを1つの矩形とみな
し、その矩形の先端部にあたるビットの横方向の位置を
取得する第1のステップ(例えば、図3のステップS
6、図4のステップS32)と、矩形の末端部にあたる
ビットの横方向の位置を取得する第2のステップ(例え
ば、図3のステップS8、同図のステップS17)と、
矩形の縦方向の位置を取得する第3のステップ(例え
ば、図3のステップS7、図4のステップS33)と、
第1乃至第3のステップにより得られた矩形の位置の情
報から、矩形の4つの頂点の座標を計算する第4のステ
ップ(例えば、式(1)乃至式(8))と、第1乃至第
4のステップを繰り返す第5のステップ(例えば、図3
のステップS12、同図のステップS14)とを備える
ことを特徴とする。
【0033】請求項2に記載のアウトラインフォント生
成装置は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
の手段(例えば、図2の処理装置1)と、矩形の末端部
にあたるビットの横方向の位置を取得する第2の手段
(例えば、図2の処理装置1)と、矩形の縦方向の位置
を取得する第3の手段(例えば、図2の処理装置1)
と、第1乃至第3の手段により得られた矩形の位置の情
報から、矩形の4つの頂点の座標を計算する第4の手段
(例えば、図2の処理装置1)と、第1乃至第4の手段
にその処理を繰り返し実行させる第5の手段(例えば、
図2の処理装置1)とを備えることを特徴とする。
【0034】請求項3に記載のアウトラインフォント生
成方法は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
のステップ(例えば、図3のステップS6、図4のステ
ップS32)と、矩形の末端部にあたるビットの横方向
の位置を取得する第2のステップ(例えば、図3のステ
ップS8、同図のステップS17)と、矩形の縦方向の
位置を取得する第3のステップ(例えば、図3のステッ
プS7、図4のステップS33)と、第1乃至第3のス
テップにより得られた矩形の位置の情報から、矩形の4
つの頂点の座標を計算する第4のステップ(例えば、式
(1)乃至式(8))と、第4のステップにより得られ
た頂点の座標を、M×Nの大きさの座標系に写像した場
合に得られる新たな頂点の座標を計算する第5のステッ
プ(例えば、式(9)乃至式(16))と、第1乃至第
5のステップを繰り返す第6ステップ(例えば、図3の
ステップS12、同図のステップS14)とを備えるこ
とを特徴とする。
【0035】請求項4に記載のアウトラインフォント生
成装置は、ビットマップフォントの横方向に1以上連続
してONされたビットを1つの矩形とみなし、その矩形
の先端部にあたるビットの横方向の位置を取得する第1
の手段(例えば、図2の処理装置1)と、矩形の末端部
にあたるビットの横方向の位置を取得する第2の手段
(例えば、図2の処理装置1)と、矩形の縦方向の位置
を取得する第3の手段(例えば、図2の処理装置1)
と、第1乃至第3の手段により得られた矩形の位置の情
報から、矩形の4つの頂点の座標を計算する第4の手段
(例えば、図2の処理装置1)と、第4の手段により得
られた頂点の座標を、M×Nの大きさの座標系に写像し
た場合に得られる新たな頂点の座標を計算する第5の手
段(例えば、図2の処理装置1)と、第1乃至第5の手
段にその処理を繰り返し実行させる第6の手段(例え
ば、図2の処理装置1)とを備えることを特徴とする。
【0036】なお、勿論この記載は、各手段を上記した
ものに限定することを意味するものではない。
【0037】図1(a)は、変換の対象となるビットマ
ップフォントの一例を表している。ビットマップフォン
トは、縦と横それぞれm×n個のビット(この図の例で
は、m=5,n=5)から構成される。この図において
は、左上端のビットを縦と横それぞれの方向に関し第0
番目のビットと定めてある。
【0038】図1(b)は、本発明の方法を図1(a)
のビットマップフォントに適用することにより生成され
るアウトラインフォントを表している。この例では、縦
と横それぞれM×Nの大きさの座標系(この図の例で
は、M=5,N=5)内に、1つの矩形が図1(a)と
同じ位置に配置されている。そして、この矩形は、4つ
の座標値(x1,y1),(x2,y2),(x3,y3),
(x4,y4)により指定される。
【0039】図2は、本発明を適用したアウトラインフ
ォント生成装置の一実施例の構成例を示している。な
お、従来の場合と対応する部分には同一の符号を付して
あり、その説明は適宜省略する。この実施例において
は、図14におけるイメージスキャナ2が除外され、記
憶装置11が付加されている。
【0040】ここで、新たに付加された記憶装置11
は、ハードディスク装置、CD−ROM (Compact Disk
Read Only Memory) 装置、光磁気ディスク装置、磁気
テープ装置などにより構成され、変換の対象となるビッ
トマップフォント11aを記憶している。
【0041】また、記憶装置11は、必要に応じて記憶
装置3と兼用される。
【0042】なお、その他の構成は、図14の場合と同
様である。
【0043】以上のように構成されるアウトラインフォ
ント生成装置において、電源がONされると、CPU1
aは、ROM1cに格納されているIPLを実行するこ
とにより、図示しない外部記憶装置から、システム制御
の基本ソフトであるOS (Operating System) をRAM
1bに読み込み、実行する。
【0044】このOSの管理のもと、図3および図4に
示す処理が実行される。
【0045】なお、図3および図4の処理の説明に移る
前に、これらの処理で用いられている変数について予め
説明しておく。
【0046】図5(a)は、変換の対象となるビットマ
ップフォントの、特定のビットを指定するために使用さ
れる変数を表している。すなわち、jは、左上端のビッ
トから横方向に数えて第j番目のビットであることを示
し、また、iは、左上端のビットから縦方向に数えて第
i番目のビットであることを示している。r[i]は、
このラスタが上から数えて第i番目に位置することを示
している。なお、ビットマップフォントがm×n個のビ
ットで構成されている場合は、0≦j≦(n−1),0
≦i≦(m−1)が成り立つ。
【0047】図5(b)は、変換後に得られるアウトラ
インフォントの、特定の矩形を指定するために使用され
る変数を表している。左上端を原点(0,0)とし、x
軸を原点から水平に右方向に、また、y軸を原点から垂
直に下方向に、それぞれ図の様に配置してある。ある矩
形を指定する場合は、この矩形の4つの頂点の座標を用
いる。すなわち、頂点のx座標を左上から時計回りにx
1乃至x4と表し、頂点のy座標を同様にy1乃至y4と表
す。
【0048】また、これ以外の変数には次のものがあ
る。Cは、変換の結果得られた矩形の数を表す値が格納
される変数である。Fは、矩形の先端部分においてセッ
ト(F=1)され、末端部分を過ぎるとリセット(F=
0)される変数(フラグ)である。また、B[j]
[i]には、変換の対象となるビットマップフォントが
格納されており、ビットマップの第(j,i)番目のビ
ットがONされている場合はB[j][i]=1とな
り、逆にこのビットがOFFされている場合はB[j]
[i]=0となる。
【0049】更に、変換の結果得られる矩形の位置の情
報は、矩形の先端部のx座標(=x1,x4)、矩形の末
端部のx座標(=x2,x3)、矩形のy座標(=y1
の3つの情報として記憶される。いま、アウトラインフ
ォントを左上から右下へと順に走査した場合に、第k番
目に現れる矩形に注目すると、この矩形の先端部のx座
標はR[k].sに格納され、末端部分のx座標はR
[k].eに格納され、y座標はR[k].rにそれぞれ
格納される。
【0050】以上が、図3および図4の処理で用いられ
る変数についての説明である。
【0051】次に、図3および図4の処理について説明
する。ただし、これらの処理を具体的に説明するため、
図6(a)のビットマップフォント(n=3,m=3)
を変換の対象として用いる。すなわち、B[j][i]
には、図6(a)のビットマップフォントが2進数デー
タとして格納されているものとする。
【0052】なお、図6(b)は、図6(a)の各ラス
タを16進数で表したものである。
【0053】図3および図4の処理が実行されると、ま
ず、ステップS1において、矩形の数を表すカウンタ
C、ビットマップフォントのy座標の値を格納するi、
矩形の存在を表すフラグF、のそれぞれに0が初期設定
される。次に、ステップS2において、ビットマップフ
ォントのx座標の値を格納するjに0が初期設定され
る。
【0054】続いて、ステップS3において、ビットマ
ップフォントのx方向に第j番目、y方向に第i番目の
ビットがONされているか否かが判定される。参照され
ているビットがONされている(すなわち、B[j]
[i]=1)と判定されると、ステップS4に進み、参
照されているビットがOFFされている(すなわち、B
[j][i]=0)と判定されると、ステップS16に
進む。
【0055】いま、i=0,j=0であり、図6(a)
の左上端のビットはONされているので、B[j]
[i]=1となり、ステップS4に進む。ステップS4
では、jと(n−1)とが等しいか否かが判定される。
いま、j=0であるので、等しくないと判定され、図4
のステップS31に進む。
【0056】ステップS31では、Fがセットされてい
る(F=1)か否かが判定される。Fがセットされてい
ると判定されると、図3のステップ11に進み、Fがセ
ットされていない(F=0)と判定されると、ステップ
S32に進む。いま、F=0であるから、ステップS3
2に進む。
【0057】ステップS32において、R[C].sに
jの値が格納され、次のステップS33で、R[C].
rにiの値が格納される。いま、C=0であるから、矩
形先端部のx座標の値0がR[0].sに格納され、矩
形のy座標の値0がR[0].rに格納される。
【0058】次に、ステップS34において、Fがセッ
トされ、図3のステップS11に進む。
【0059】ステップS11において、jに1が加算さ
れ、次のステップS12において、jとnとが等しいか
否かが判定される。いま、j=1であるから、ステップ
S12において、jとnとが等しくないと判定され、ス
テップS3に戻り同様の処理を繰り返す。
【0060】いま、i=0,j=1であり、図6に示す
ようにB[j][i]=1であるから、ステップS4に
進む。
【0061】ステップS4において、いまj=1である
から、jと(n−1)とは等しくないと判定され、図4
のステップS31に進む。
【0062】ステップS31において、いまFはセット
されているから、F=1であると判定され、図3のステ
ップS11に進み、jに1を加算し、その結果j=2と
なる。
【0063】ステップS12では、いまj=2であるか
ら、jとn(=3)とが等しくないと判定され、再びス
テップS3に戻る。
【0064】次に、ステップS3では、いまj=2,i
=0であるから、図6に示すようにB[j][i]=0
となり、ステップS16に進む。S16では、Fがセッ
トされているか否かが判定され、いまFはセットされて
いるから、ステップS17に進む。
【0065】ステップS17では、R[C].eにjの
値が格納される。すなわち、いまC=0であるから、矩
形の末端のx座標の値j(=2)がR[0].eに格納
される。そして、ステップS18において、Fがリセッ
トされ、ステップS9に進む。
【0066】ステップS9では、矩形の数を表す変数C
に1が加算される。いまCには初期値0が代入されてい
るから、この処理の結果Cは1となる。
【0067】次に、ステップS11において、jに1が
加算され、jは3になる。そして、次のステップS12
において、jとn(=3)とは等しいと判断され、ステ
ップS13に進み、iに1が加算され、その結果iは1
となる。
【0068】続いて、ステップS14に進み、iとm
(=3)とが等しいか否かが判定される。いまi=1で
あるから、等しくないと判定され、ステップS2に戻り
処理が繰り返される。
【0069】これまでの処理の結果、R[0].sには
0が、R[0].eには2が、そして、R[0].rには
0がそれぞれ格納されている。図7(a)は、これらの
値がRAM1b上に格納されている状態を表している。
【0070】以上が、図6(a)のラスタr[0]に対
する処理である。次に、ラスタr[1]の処理の説明に
移るが、これまでの説明と重複する部分は省略し、説明
がなされていない処理を中心に説明を行う。
【0071】ステップS2で、jに0が再び代入され、
ステップS3に進む。
【0072】いまj=0,i=1であるから、B[j]
[i]=0となり、ステップS16に進む。ステップS
16では、いまF=0であることから、ステップS11
に進み、jに1が加算され、j=1となり、ステップS
12を経て、再度ステップS3に戻る。
【0073】ステップS3では、B[j][i]=1で
あることから、ステップS3以降の処理の結果、F=
1,R[1].s=1,R[1].r=1となる。そし
て、ステップS11においてjに1が加算され、j=2
となり、再度ステップS3に戻り処理を繰り返す。
【0074】j=2,i=1における処理では、ステッ
プS4において、jと(n−1)とが等しいと判定され
るため、ステップS5に進む。いま、Fはセットされて
いることから、ステップS15に進み、Fがリセットさ
れる。
【0075】次に、ステップS8に進み、R[1].e
にn(=3)が格納され、Cおよびjにそれぞれ1が加
算され、その結果C=2,j=3となる。
【0076】ステップS12では、jとn(=3)が等
しいと判定されるので、ステップS13に進みiに1が
加算され、その結果iは2となる。
【0077】ステップS14で、iとmとが等しいか否
かが判定され、いまi=2であるから、ステップS2に
戻り、処理を繰り返す。
【0078】i=2における処理では、図6(a)に示
すビットマップフォントのラスタr[2]に対して処理
が行われる。同図に示すように、r[2]の最初の2ビ
ットはOFFされているので、j=0およびj=1にお
ける処理では、F,R[2].s,R[2].e,R
[2].rは変化しない。
【0079】i=2において、j=2になると、B
[j][i]=1となるので、ステップS3からステッ
プS4に処理が進む。いま、j=2であるから、jと
(n−1)とは等しいと判定され、ステップS5に処理
が進む。
【0080】ステップS5において、Fがセットされて
いるか否かが判定される。いま、F=0であるから、セ
ットされていないと判定され、ステップS6に処理が進
む。
【0081】ステップS6乃至ステップS8において
は、矩形の座標値が各変数に格納される。すなわち、い
まC=2であるから、R[2].s=2,R[2].e=
3,R[2].r=2となる。
【0082】そして、ステップS9においてCに1が加
算され、その結果C=3となる。続いて、ステップS1
1においてjに1が加算され、その結果j=3となるか
ら、ステップS12ではjとn(=3)とが等しいと判
定され、ステップS13に進む。
【0083】ステップS13では、iに1が加算され、
その結果i=3となるから、ステップS14でiとm
(=3)とが等しいと判定され、処理を終了する。
【0084】以上の処理により、図7(a)に示すよう
な数値が得られる。すなわち、第0番目(i=0)の矩
形の先端部のx座標はR[0].s=0であり、矩形の
末端部のx座標はR[0].e=2であり、矩形のy座
標はR[0].r=0である。
【0085】同様に、第1番目(i=1)の矩形の先端
部のx座標はR[1].s=1であり、矩形の末端部の
x座標はR[1].e=3であり、矩形のy座標はR
[1].r=1であることを示している。
【0086】また、第2番目(i=2)の矩形の先端部
のx座標はR[2].s=2であり、矩形の末端部のx
座標はR[2].e=3であり、矩形のy座標はR
[2].r=2であることを示している。
【0087】更に、図7(b)に示すように、矩形の数
が格納される変数Cには3が格納されており、作成され
たアウトラインフォントに、3つの矩形が存在すること
を示している。
【0088】以上の処理により得られた、R[i].
s,R[i].e,R[i].r(0≦i≦C−1)を以
下の式に代入することにより、矩形の4つの頂点の座
標、すなわち、x1乃至x4およびy1乃至y4を得る。こ
の座標を用いることにより、m×n個のビットからなる
ビットマップフォントを、m×nの大きさの座標系を有
するアウトラインフォントに変換することができる。 x1=R[i].s ・・・(1) y1=R[i].r ・・・(2) x2=R[i].e ・・・(3) y2=R[i].r ・・・(4) x3=R[i].e ・・・(5) y3=R[i].r+1 ・・・(6) x4=R[i].s ・・・(7) y4=R[i].r+1 ・・・(8)
【0089】また、m×n個のビットからなるビットマ
ップフォントを、M×Nの大きさの座標系を有するアウ
トラインフォントに変換する場合は、式(1)乃至式
(8)により得られた結果を、以下の式に代入すること
により、新しい矩形の頂点座標を得ることができる。た
だし、X1乃至X4およびY1乃至Y4は、M×Nの大きさ
の座標系内での新たな頂点の座標を表している。 X1=x1×N/n ・・・(9) Y1=y1×M/m ・・・(10) X2=x2×N/n ・・・(11) Y2=y2×M/m ・・・(12) X3=x3×N/n ・・・(13) Y3=y3×M/m ・・・(14) X4=x4×N/n ・・・(15) Y4=y4×M/m ・・・(16)
【0090】図8(a)は、文字“あ”を表す、8×8
ビットからなるビットマップフォントを表している。な
お、この図において、各ラスタは左端がMSB、右端が
LSBと定めてある。
【0091】図8(b)は、図8(a)に示すビットマ
ップフォントの各ラスタを、それに対応する16進数で
表したものである。例えば、第0番目のラスタ(r
[0])は、2進数の00010000に対応し、また
これは16進数の0x10に対応する。
【0092】図8(a)に示すビットマップフォント
に、図3および図4の処理を施すと、図9に示す矩形の
位置の情報を得る。また、この処理により得られる矩形
の位置の情報は、図10(a)に示すような状態でRA
M1bに格納される。また、図10(b)に示すよう
に、矩形の数を格納する変数Cには図8(a)に存在す
る矩形の数16が格納される。
【0093】これらのデータを式(1)乃至式(8)に
代入すると、m×nの大きさの座標系を有するアウトラ
インフォントデータを得る。
【0094】また、式(1)乃至式(8)による計算結
果を、式(9)乃至式(16)にそれぞれ代入すること
により、m×n個のビットからなるビットマップフォン
トを、これとは異なる大きさM×Nのアウトラインフォ
ントに変換することが可能となる。
【0095】この場合、MおよびNの値を適当に選択す
ることにより、例えば、縦方向に文字を拡大(変形)し
たり、逆に、横方向に文字を拡大(変形)することも可
能であることは勿論である。
【0096】また、本実施例では、矩形の数を変数Cに
格納し、このCに格納された数に基づき矩形を表示する
ようにした。しかしながら、座標値としては用いられな
い特定の数値(例えば0xFFなど)を矩形の位置を表
すデータの最後に付加し、この数値を読み込んだ時点
で、処理を終了するようにすることでも同様の処理を行
うことが可能である。
【0097】更に、本実施例ではラスタをx(横)方向
に定義したが、y(縦)方向に定義しても同様の結果を
得ることができる。この場合、矩形は、y(縦)方向に
連続するものとして定義される。
【0098】更にまた、本実施例ではビットマップフォ
ントに存在する全ての矩形の、先端部のx座標、末端部
のx座標、y座標を得た後で、式(1)乃至式(8)ま
たは式(9)乃至式(18)に代入し、矩形の4つの頂
点座標を得た。しかしながら、1つの矩形の座標データ
を取得したすぐ後に、前述の式により、矩形の頂点座標
を得ることも可能である。
【0099】
【発明の効果】以上のように、請求項1に記載のアウト
ラインフォント生成方法および請求項2に記載のアウト
ラインフォント生成装置によれば、縦と横それぞれm×
n個のビットからなるビットマップフォント内の、横方
向に連続してONされたビットを矩形とみなし、この矩
形を縦と横それぞれm×nの大きさを有する座標系内の
座標値に変換するようにしたので、イメージスキャナ等
の入力装置を使用せずに、ビットマップフォントからア
ウトラインフォントを簡単に得ることができる。また、
これらの処理は各ラスタについて独立に行われるので、
フォントを高速に変換することができる。
【0100】請求項3に記載のアウトラインフォント生
成方法および請求項4に記載のアウトラインフォント生
成装置によれば、縦と横それぞれm×n個のビットから
なるビットマップフォント内の、横方向に連続してON
されたビットを矩形とみなし、この矩形を縦と横それぞ
れM×Nの大きさを有する座標系内の座標値に変換する
ようにしたので、文字を拡大したり、あるいは変形した
りすることができる。
【図面の簡単な説明】
【図1】本発明において変換の対象となるビットマップ
フォントと変換後に得られるアウトラインフォントを示
す図である。
【図2】本発明のアウトラインフォント生成装置の一実
施例の構成例を示すブロック図である。
【図3】ビットマップフォントからアウトラインフォン
トを生成する処理を説明するフローチャートである。
【図4】ビットマップフォントからアウトラインフォン
トを生成する処理を説明するフローチャートである。
【図5】変換の対象となるビットマップフォントと変換
後に得られるアウトラインフォントにおいてそれぞれ使
用される変数を示す図である。
【図6】変換の対象となるビットマップフォントとその
各ラスタに対応する16進数を示す図である。
【図7】図6のビットマップフォントに図3および図4
の処理を施したときに得られるデータがRAM1b上に
格納されている状態を示す図である。
【図8】文字“あ”を表すビットマップフォントとその
各ラスタに対応する16進数を示す図である。
【図9】図8のビットマップフォントを図3と図4の処
理によりアウトラインフォントに変換したときの様子を
示す図である。
【図10】図8のビットマップフォントを図3と図4の
処理によりアウトラインフォントに変換した場合に得ら
れるデータがRAM1b上に格納される状態を示す図で
ある。
【図11】ビットマップフォントを構成するラスタを示
す図である。
【図12】m×n個のビットからなるビットマップフォ
ントにより文字“あ”を表した様子を示す図である。
【図13】M×Nの大きさの座標系を有するアウトライ
ンフォントにより文字“あ”を表した様子を示す図であ
る。
【図14】従来のアウトライン生成装置の一例の構成を
示すブロック図である。
【符号の説明】
1 処理装置(第1乃至第6の手段) 2 イメージスキャナ 3 記憶装置 4 プリンタ 5 ディスプレイ 11 記憶装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 縦と横それぞれm×n個のビットからな
    るビットマップフォントを、縦と横それぞれm×nの大
    きさの座標系内に配置される複数の矩形により文字を表
    すアウトラインフォントに変換するアウトラインフォン
    ト生成方法であって、 前記ビットマップフォントの横方向に1以上連続してO
    Nされたビットを1つの矩形とみなし、その矩形の先端
    部にあたるビットの横方向の位置を取得する第1のステ
    ップと、 前記矩形の末端部にあたるビットの横方向の位置を取得
    する第2のステップと、 前記矩形の縦方向の位置を取得する第3のステップと、 前記第1乃至第3のステップにより得られた前記矩形の
    位置の情報から、前記矩形の4つの頂点の座標を計算す
    る第4のステップと、 前記第1乃至第4のステップを繰り返す第5のステップ
    とを備えることを特徴とするアウトラインフォント生成
    方法。
  2. 【請求項2】 縦と横それぞれm×n個のビットからな
    るビットマップフォントを、縦と横それぞれm×nの大
    きさの座標系内に配置される複数の矩形により文字を表
    すアウトラインフォントに変換するアウトラインフォン
    ト生成装置であって、 前記ビットマップフォントの横方向に1以上連続してO
    Nされたビットを1つの矩形とみなし、その矩形の先端
    部にあたるビットの横方向の位置を取得する第1の手段
    と、 前記矩形の末端部にあたるビットの横方向の位置を取得
    する第2の手段と、 前記矩形の縦方向の位置を取得する第3の手段と、 前記第1乃至第3の手段により得られた前記矩形の位置
    の情報から、前記矩形の4つの頂点の座標を計算する第
    4の手段と、 前記第1乃至第4の手段にその処理を繰り返し実行させ
    る第5の手段とを備えることを特徴とするアウトライン
    フォント生成装置。
  3. 【請求項3】 縦と横それぞれm×n個のビットからな
    るビットマップフォントを、縦と横それぞれM×Nの大
    きさの座標系内に配置される複数の矩形により文字を表
    すアウトラインフォントに変換するアウトラインフォン
    ト生成方法であって、 前記ビットマップフォントの横方向に1以上連続してO
    Nされたビットを1つの矩形とみなし、その矩形の先端
    部にあたるビットの横方向の位置を取得する第1のステ
    ップと、 前記矩形の末端部にあたるビットの横方向の位置を取得
    する第2のステップと、 前記矩形の縦方向の位置を取得する第3のステップと、 前記第1乃至第3のステップにより得られた前記矩形の
    位置の情報から、前記矩形の4つの頂点の座標を計算す
    る第4のステップと、 前記第4のステップにより得られた前記頂点の座標を、
    前記M×Nの大きさの座標系に写像した場合に得られる
    新たな頂点の座標を計算する第5のステップと、 前記第1乃至第5のステップを繰り返す第6のステップ
    とを備えることを特徴とするアウトラインフォント生成
    方法。
  4. 【請求項4】 縦と横それぞれm×n個のビットからな
    るビットマップフォントを、縦と横それぞれM×Nの大
    きさの座標系内に配置される複数の矩形により文字を表
    すアウトラインフォントに変換するアウトラインフォン
    ト生成装置であって、 前記ビットマップフォントの横方向に1以上連続してO
    Nされたビットを1つの矩形とみなし、その矩形の先端
    部にあたるビットの横方向の位置を取得する第1の手段
    と、 前記矩形の末端部にあたるビットの横方向の位置を取得
    する第2の手段と、 前記矩形の縦方向の位置を取得する第3の手段と、 前記第1乃至第3の手段により得られた前記矩形の位置
    の情報から、前記矩形の4つの頂点の座標を計算する第
    4の手段と、 前記第4の手段により得られた前記頂点の座標を、前記
    M×Nの大きさの座標系に写像した場合に得られる新た
    な頂点の座標を計算する第5の手段と、 前記第1乃至第5の手段にその処理を繰り返し実行させ
    る第6の手段とを備えることを特徴とするアウトライン
    フォント生成装置。
JP7202162A 1995-08-08 1995-08-08 アウトラインフォント生成方法およびアウトラインフォント生成装置 Withdrawn JPH0950272A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7202162A JPH0950272A (ja) 1995-08-08 1995-08-08 アウトラインフォント生成方法およびアウトラインフォント生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7202162A JPH0950272A (ja) 1995-08-08 1995-08-08 アウトラインフォント生成方法およびアウトラインフォント生成装置

Publications (1)

Publication Number Publication Date
JPH0950272A true JPH0950272A (ja) 1997-02-18

Family

ID=16452992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7202162A Withdrawn JPH0950272A (ja) 1995-08-08 1995-08-08 アウトラインフォント生成方法およびアウトラインフォント生成装置

Country Status (1)

Country Link
JP (1) JPH0950272A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367345C (zh) * 2002-08-30 2008-02-06 精工爱普生株式会社 字体处理装置、终端装置及字体处理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367345C (zh) * 2002-08-30 2008-02-06 精工爱普生株式会社 字体处理装置、终端装置及字体处理方法

Similar Documents

Publication Publication Date Title
US4529978A (en) Method and apparatus for generating graphic and textual images on a raster scan display
US6437793B1 (en) System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements
WO1996036015A1 (en) Method and apparatus for generating a text image on a display with anti-aliasing effect
KR101159320B1 (ko) 폰트-힌팅 언어를 이용한 제한들의 반복적인 솔루션
JP3037854B2 (ja) 文字生成方法及びその装置
JPH01296389A (ja) 図形処理方法及びその装置
EP0461811B1 (en) Pattern processing method
EP0062669B1 (en) Graphic and textual image generator for a raster scan display
JPH02270019A (ja) 高品質文字パターン発生方式
JPH0950272A (ja) アウトラインフォント生成方法およびアウトラインフォント生成装置
JP2899012B2 (ja) 文字処理装置及び方法
JPH0661960B2 (ja) ドツト補間制御装置
JP2782752B2 (ja) 文字パターン出力装置
JP2637921B2 (ja) 文字記号発生装置
JPS60231267A (ja) 文字間制御方式
JPH0823741B2 (ja) ベクトル文字もしくはベクトル図形の処理方法
JPH043749B2 (ja)
JP4080470B2 (ja) 文字パターン生成装置
JP2803746B2 (ja) 文字処理方法及びその装置
JP3072756B2 (ja) 描画装置
JP2835056B2 (ja) 高品質文字パターン発生方式
JPH03278190A (ja) 多角形塗りつぶし方式
JPS60231266A (ja) ドツト補間制御方式
JPS60229766A (ja) 補間ドツトパタ−ンの出力制御方式
JPH0784739A (ja) データ変換装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021105