[go: up one dir, main page]

JP3106023B2 - 輪郭形成装置及び方法 - Google Patents

輪郭形成装置及び方法

Info

Publication number
JP3106023B2
JP3106023B2 JP05001686A JP168693A JP3106023B2 JP 3106023 B2 JP3106023 B2 JP 3106023B2 JP 05001686 A JP05001686 A JP 05001686A JP 168693 A JP168693 A JP 168693A JP 3106023 B2 JP3106023 B2 JP 3106023B2
Authority
JP
Japan
Prior art keywords
contour
data
weight
vector
contour point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05001686A
Other languages
English (en)
Other versions
JPH06208365A (ja
Inventor
恒昭 来見田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP05001686A priority Critical patent/JP3106023B2/ja
Priority to TW082109818A priority patent/TW262547B/zh
Priority to DE4340599A priority patent/DE4340599C2/de
Priority to CN93121111A priority patent/CN1052320C/zh
Publication of JPH06208365A publication Critical patent/JPH06208365A/ja
Priority to US08/703,399 priority patent/US6944823B2/en
Application granted granted Critical
Publication of JP3106023B2 publication Critical patent/JP3106023B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は文字等の印刷或いは表示
等を行うための輪郭形成に用いる輪郭データを記憶する
輪郭データ記憶方法及び装置に関するものである。
【0002】
【従来の技術】従来、アウトラインフォントは直線と曲
線によって表わされる文字等の輪郭データから構成され
ている。この曲線には3次のベジェ曲線やスプライン曲
線、円弧等が一般的に用いられている。
【0003】この輪郭データ(アウトラインデータ)
は、ある特定の太さ(以後ウエイトと称する)のフォン
トのデータを表わすものである。即ち、細いフォント
(ウエイトがライトのフォント)は細いフォント用のア
ウトラインデータによって表わされ、太いフォント(ウ
エイトがボールドのフォント)は太いフォント用のアウ
トラインデータによって個々に表わされている。
【0004】
【発明が解決しようとする課題】従って、上記従来例で
は、複数の太さのフォントによる文字などを表示、もし
くは印刷するためには、複数のウエイトのアウトライン
フォントを個々に持たなければならないという問題があ
った。
【0005】また、上記の問題を解決するシステムとし
て、太いアウトラインフォントと細いアウトラインフォ
ントから中間のアウトラインフォントを作ることを可能
としたものもあるが、任意の太さのアウトラインフォン
トをつくることはできなかった。即ち、従来の輪郭点デ
ータには、任意のウエイトに対応するための各輪郭点の
移動に関する情報が含まれていないために、任意のウエ
イトに対して各輪郭点の位置を獲得することができなか
った。
【0006】本発明は上記の問題点に鑑みてなされたも
のであり、1種類のウエイトの輪郭点データで複数のウ
エイトの文字を発生させることを可能とするための各輪
郭点毎の移動情報を生成し、輪郭データの各輪郭点の位
置情報とともに移動情報を記憶する輪郭データ記憶方法
及び装置を提供することを目的とする。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めの本発明による輪郭形成装置は以下の構成を備える。
すなわち、第1のウエイトのパターンの輪郭の第1の輪
郭点に対応する座標データと、前記第1の輪郭点をベク
トルデータの切り替わるウエイト値のパターンの輪郭の
第2の輪郭点の位置に移動させるための前記第1の輪郭
点に対応するベクトルデータと、前記第2の輪郭点に対
応する座標データと、該第2の輪郭点の移動軌跡を表わ
すベクトルデータと、ウエイト値に応じて異なるベクト
ルデータを用いるための識別情報とを記憶する記憶手段
と、ウエイト情報を入力する入力手段と、前記記憶手段
に記憶されている識別情報に基づき、前記入力手段によ
り入力されたウエイト情報に対応する座標データ及び
クトルデータを取り出す取り出し手段と、前記入力手段
により入力されたウエイト情報と前記取り出し手段によ
り取り出された座標データ及びベクトルデータとに基づ
き、出力すべきパターンの輪郭点の座標データを計算す
る計算手段とを備える。
【0008】また、上記の目的を達成するための本発明
による文字輪郭形成方法は以下のステップを備えるもの
である。すなわち、第1のウエイトのパターンの輪郭の
第1の輪郭点に対応する座標データと、前記第1の輪郭
点をベクトルデータの切り替わるウエイト値のパターン
の輪郭の第2の輪郭点の位置に移動させるための前記第
1の輪郭点に対応するベクトルデータと、前記第2の輪
郭点に対応する座標データと、該第2の輪郭点の移動軌
跡を表わすベクトルデータと、ウエイト値に応じて異な
るベクトルデータを用いるための識別情報とを記憶する
記憶手投を利用する輪郭形成方法であって、ウエイト情
報を入力する入力ステップと、前記記憶手段に記憶され
ている識別情報に基づき、前記入力ステップにより入力
されたウエイト情報に対応する座標データ及びベクトル
データを取り出す取り出しステップと、前記入力ステッ
プにより入力されたウエイト情報と前記取り出しステッ
プにより取り出された座標データ及びベクトルデータと
に基づき、出力すべきパターンの輪郭点の座標データを
計算する計算手段とを備える。
【0009】
【作用】上記の構成によれば、第1のウエイトのパター
ンの輪郭の第1の輪郭点に対応する座標データと、前記
第1の輪郭点をベクトルデータの切り替わるウエイト値
のパターンの輪郭の第2の輪郭点の位置に移動させるた
めの前記第1の輪郭点に対応するベクトルデータと、前
記第2の輪郭点に対応する座標データと、該第2の輪郭
点の移動軌跡を表わすベクトルデータと、ウエイト値に
応じて異なるベクトルデータを用いるための識別情報と
が記憶され、識別情報に基づいて、入力されたウエイト
情報に対応する座標データ及びベクトルデータが取り出
され、入力されたウエイト情報と取り出された座標デー
タ及びベクトルデータとに基づいて出力すべきパターン
の輪郭点の座標データが計算される
【0010】
【実施例】以下に添付の図面を参照して本発明の好適な
実施例について説明する。
【0011】<実施例1>図1は本実施例の輪郭形成装
置の概略制御構成を表すブロック図である。同図におい
て、11は入力装置であり、出力すべきパターンを特定
するコード情報と、そのパターンの太さを特定するウエ
イト情報を受け取る。尚、本実施例では、出力すべきパ
ターンの1例として文字を扱うものとし、パターンを特
定するコードを文字コードと称することにする。12は
計算装置であり、入力装置11が受け取った文字コード
とウエイトから該当する文字の輪郭データを計算する。
13は記憶装置であり、ROM(読み出し専用メモリ)
14と、RAM(ランダムアクセスメモリ)15とを備
える。ROM14は、基本文字データ等を記憶し、RA
M15は、CPU12が計算のためのワークエリアとし
て使用したり、ROM14の基本文字データをCPU1
2で計算して得られた文字輪郭データを一時的に記憶し
たりする。16は出力装置であり、CPU12で計算し
た結果出来上がった文字輪郭データを出力する。
【0012】図2は本実施例の輪郭形成装置の応用の1
例として、輪郭形成装置をレーザビームプリンタに組み
込んだ場合の概略制御構成を表すブロック図である。同
図において、21は受信部であり、ホストコンピュータ
からの印刷データを受信する。22は画像形成部であ
り、CPU,ROM,RAMなどを備えた回路により構
成されている。23は本実施例の輪郭形成装置であり、
上述の図1におけるCPU12,ROM14,RAM1
5は画像形成部22のものを共有する。本装置の制御は
CPU12によって行われ、制御のためのプログラムは
ROM14に記憶してある。24は出力バッファであ
り、画像形成装置22によって形成された画像をビット
マップの形式で一時的に保存する。25は印刷部であ
り、出力バッファ24の内容をもとにレーザ駆動用のパ
ルスを発生し、紙上にトナーによる記録画像を形成す
る。
【0013】図3は、本実施例の輪郭形成装置で用いら
れるフォントデータの形式の1例を図示したものであ
る。本データはゴシック体の「田」の文字である。図3
の実線で表した部分は文字のウエイトが1の時の輪郭デ
ータを表す。点線で表したベクトル(矢印)は、ウエイ
トを変えたときの各輪郭点の移動の軌跡を表すベクトル
(輪郭点移動ベクトル)である。各輪郭点移動ベクトル
はX座標とY座標がウエイトの関数として表されもので
ある。
【0014】また、図4はウエイトが10の時のゴシッ
ク体の「田」の輪郭データを表す図である。本実施例に
おいては、文字のウエイトは1が最も細く、10が最も
太いものとする。
【0015】図3で表したように、本実施例における輪
郭データは文字の輪郭を表す座標データと、ウエイトの
変化に対する輪郭座標の移動の軌跡を表す輪郭点移動ベ
クトルに関するデータ(以後ベクトルデータと称する)
とを備える。図3に示すように、「田」という文字の各
輪郭点のベクトルデータは、ベクトルがないものと、ウ
エイトをパラメータとするX,Y座標のそれぞれが1次
関数で表されるものとなる。
【0016】図6は図3の「田」という文字のアウトラ
インデータの構成の1部を表す図である。同図において
フラグ1は輪郭の開始/終了を表すフラグ、フラグ2は
輪郭の属性を表すフラグ、フラグ3は輪郭点移動ベクト
ルのX方向の関数の次数を表すフラグ、フラグ4は輪郭
点移動ベクトルのY方向の関数の次数を表すフラグであ
る。フラグ3が0のときは輪郭点移動ベクトルのX方向
の座標値が変化しないことを表し、1のときはX方向の
座標値がウエイトの変化に対し1次関数的、すなわち直
線的に変化することを表す。同様にフラグ4が0のとき
は輪郭点移動ベクトルのY方向の座標値が変化しないこ
とを表し、1のときはY方向の座標値がウエイトの変化
に対し1次関数的、すなわち直線的に変化することを表
す。
【0017】また、図6において、X座標、Y座標はそ
れぞれの輪郭点のウエイト1における座標を表す。ま
た、ベクトルX座標及びベクトルY座標は、ウエイト1
0となったときのそれぞれの輪郭点の位置が、ウエイト
1の輪郭点の座標に対する移動量で表されている。
【0018】図7は本実施例1の輪郭形成制御の手順を
表すフローチャートである。まず、ステップS701に
おいて出力すべき文字コードを受信し、ステップS70
2にてウエイト情報を受信する。即ち、図1の入力装置
11に文字コード及びウエイト情報が入力される。ステ
ップS703では、ステップS701で受信した文字コ
ードに従って基本の輪郭データをROM14から読み出
す。ステップS704では、読み出された輪郭データの
有する輪郭の点数をNmaxに代入する。そして、ステ
ップS705ではカウンタ変数nに1を代入する。
【0019】ステップS706ではnがNmaxを越え
たかどうかを判定し、越えていればステップS712
へ、越えていなければステップS707へそれぞれ進
む。ステップS707では、n番目の輪郭点データがX
方向の輪郭点移動ベクトルを持っているかどうかを判定
(フラグ3が0でなければ輪郭点移動ベクトルが有る)
し、輪郭点移動ベクトルがあればステップS708を、
なければステップS709を実行する。ステップS70
8では輪郭点のX座標をウエイト情報及び輪郭点移動ベ
クトルのベクトルデータから計算する。また、ステップ
709では、n番目の輪郭点がY方向の輪郭点移動ベク
トルを持っているかどうかを判定(フラグ4が0でなけ
れば輪郭点移動ベクトルが有る)し、輪郭点移動ベクト
ルがあればステップS710を、なければステップS7
11を実行する。ステップS710ではn番目の輪郭点
のY座標をウエイト及び輪郭点移動ベクトルのベクトル
データから計算する。ステップS711ではカウンタ変
数nをインクリメントし、ステップS706へ戻り、次
の輪郭点についての処理を行う。また、ステップS71
2では変換されたデータを出力装置16より送出して本
処理を終了する。
【0020】図8は輪郭点移動ベクトルを表す1次関数
の式の求め方を示す図である。本例では、図6のアウト
ラインデータの構成で示したように、ウエイト1の輪郭
点の座標(X座標,Y座標)と輪郭点移動ベクトルの終
点の座標(ベクトルX座標、ベクトルY座標により示さ
れる)とにより1次関数を表している。すなわち、輪郭
点移動ベクトルベクトルの始点,終点が分かっているた
め、容易に定数A、Bが決定され、1次関数を求めるこ
とができる。そして、それによって任意のウエイトの文
字輪郭データを求めることが可能になる。
【0021】図9は、各輪郭点の輪郭点移動ベクトルを
自動的に計算で求める1例を表す図であり、2つのウエ
イトの輪郭データから輪郭点移動ベクトルを取り出す例
を表す。この例では、「A」のウエイト1とウエイト1
0における輪郭点の位置座標から輪郭点移動ベクトルを
求めている。即ち、ウエイト1の各輪郭点を始点とし、
ウエイト10の各輪郭点を終点とするベクトルを求め
る。これらの値を図6のデータ構成に従って記述する
と、X座標,Y座標がウエイト1の各輪郭点の座標にな
り、各輪郭点移動ベクトルの終点のX座標,Y座標がウ
エイト10のX座標,Y座標とウエイト1のX座標,Y
座標との差(ベクトルX座標、ベクトルY座標)で表さ
れる。
【0022】もちろん、各輪郭点の輪郭点移動ベクトル
は他の求め方を用いて求めても良い。また、デザイナー
が輪郭点移動ベクトルを修正することも可能である。も
ちろん求めた輪郭点移動ベクトルが同じであれば、ベク
トルの求め方はウエイトの異なる文字輪郭データの生成
には影響しない。
【0023】以上説明したように、文字輪郭上の各点に
ウエイトを可変にするための輪郭点移動ベクトルを持た
せることにより以下のような効果がある。即ち、 1. ウエイトの変更を任意の太さに、かつリアルタイ
ムに計算することができる 2. 2種類のウエイトの違う輪郭を持ち補完する場合
に比べ、ベクトルを持たない点が存在する分、データ量
が少なくて済む 3. 2種類のウエイトの違う輪郭を持ち補間する場合
に比べ、対応する輪郭をその場で計算する必要がないた
め、スピードが速い 4. 輪郭データにベクトルを付加するためデータ管理
が容易であるという効果がある。
【0024】<実施例2>上述の実施例1では各輪郭点
の移動ベクトルが1次式で表される場合を説明した。し
かしながら、より複雑な図形になると、さまざまな関数
で表されるベクトルデータが出現する。ベクトルデータ
を表す関数は輪郭点によって1次式で表されるもの、2
次式で表されるもの、多項式で表されるもの、三角関数
で表されるもの、あるいウエイトを境に関数が変わるも
のなどがある。最も一般的には、各輪郭点移動ベクトル
は多項式で表され、それぞれの輪郭点のベクトルデータ
はその多項式の係数を導き出すための情報を合わせて保
存する。
【0025】従って実施例2では、輪郭点移動ベクトル
を2次以上の曲線で所有する輪郭形成装置について説明
する。
【0026】図10は、図1の輪郭形成装置において、
各輪郭点にウエイトを変化させるための輪郭点移動ベク
トルを1次の直線または2次以上の曲線で持たせた例で
あり、曲線で表される輪郭点移動ベクトルの1例を表す
図である。これは、各輪郭点のウエイトに対する移動の
軌跡を直線または曲線で表すことを意味する。ゴシック
体の「1」はウエイトが太くなるに従って各輪郭点がX
方向にも広がるが、その移動量はY方向の移動に対して
1定の比率ではない。この場合、2次以上の曲線を用い
て軌跡を表すことで本来の軌跡により近い軌跡が表せ
る。
【0027】図11は実施例2における輪郭データの構
成を表す図である。同図において、フラグ1は輪郭の開
始/終了を表すフラグ、フラグ2は輪郭の属性を表すフ
ラグである。フラグ3は輪郭点移動の軌跡におけるX方
向の関数の次数を表すフラグ、フラグ4はY方向の関数
の次数を表すフラグである。フラグ3が0のときはウエ
イトの変化に対してX方向の座標値が変化しないことを
表す。フラグ3が1のときは、ウエイトの変化に対して
X方向の座標値が1次関数的、すなわち直線的に変化す
ることを表す。また、フラグ3が2のときはウエイトの
変化に対してX方向の座標値が2次関数的、すなわち曲
線的に変化することを表す。同様にフラグ3が3以上の
場合はより複雑な曲線の動きを表すことができる。フラ
グ4はY方向に関してフラグ3と同等の意味を表す。各
輪郭点にはその次数に応じた点の座標が対応するウエイ
トの順に配列ではいっている。すなわち、1次で表せる
軌跡を描く点は輪郭点以外に1点、2次であれば輪郭点
以外に2点の座標が格納される。そして、各輪郭点の移
動ベクトルの次数に応じて、ベクトルX座標1,2…が
格納されており、各輪郭点におけるベクトルの計算式を
求めるのに使用される。
【0028】図12は、図11の形式の輪郭データから
所望のウエイトの文字輪郭データを計算し出力する手順
を表すフローチャートである。ここで、ステップS12
07におけるドラフトモードとは、文字の品位より速度
を優先する出力モードを表す。このドラフトモードにお
いては、すべての輪郭点の移動軌跡を1次式で近似する
ため、ウエイトの最も細い(ウエイト1)輪郭上の点
と、ウエイトの最も太い(ウエイト10)輪郭上の点を
結ぶ直線状に、所望のウエイトに対する輪郭点があると
して計算を行う。ドラフトモードでない場合は、輪郭デ
ータに基づいた次数での計算を行い、輪郭点の座標を求
める。
【0029】まず、ステップS1201及びステップS
1202において、入力装置11が出力すべき文字コー
ド及びその太さを決めるウエイト情報を受信する。ステ
ップS1203では、ステップS1201で受信した文
字コードに従って基本の輪郭データをROM14から読
み出す。ステップS1204では、読み出された輪郭デ
ータの有する輪郭の点数をNmaxに代入する。そし
て、ステップS1205ではカウンタ変数nに1を代入
する。
【0030】ステップS1206ではnがNmaxを越
えたかどうかを判定して、越えていればステップS12
18へ、越えていなければステップS1207へそれぞ
れ進む。ステップS1207では、画像形成装置の出力
モードがドラフトモードか否かをチェックし、ドラフト
モードでなければステップS1208以降の処理を実行
し、ドラフトモードであればステップS1213以降の
処理を実行する。
【0031】ドラフトモードでない場合、ステップS1
208にて、n番目の輪郭点に対してX方向の輪郭点移
動ベクトルの有無を判定(フラグ3が0でなければ移動
ベクトルが有る)する。そして、X方向の輪郭点移動ベ
クトルが存在すればステップS1209にて、輪郭点の
X座標をウエイト情報及び輪郭点移動ベクトルのベクト
ルデータから計算する。このときの輪郭点の移動の軌跡
を表す計算式は、フラグ3に記憶された曲線式の次数
と、ベクトルX座標1,2…を用いて決定する。例え
ば、曲線の次数が2であれば、ベクトルX座標1及び2
が用いられる。同様にして、ステップS1210及びス
テップS1212にて、輪郭点のY座標が求められる。
そして、nを1つインクリメントしてステップS120
6へ戻り、次の輪郭点に対して上述の処理を繰り返す。
そして、全輪郭点に対して処理が終了するとステップS
1206よりステップS1218へ進み、データ出力装
置16よりデータを送出して本処理を終了する。
【0032】1方、出力モードがドラフトモードの場合
は、ステップS1207よりステップS1213へ進
む。ステップS1213では、n番目の輪郭点がX方向
の輪郭点移動ベクトルを持っているか否かをチェック
し、持っていればステップS1214へ進む。ステップ
S1214では、ウエイト1とウエイト10の輪郭点の
X座標より輪郭点移動ベクトルの計算式を1次式として
決定し、これを用いて所望のウエイトに対する輪郭点の
X座標を求める。Y座標についてもステップS1215
及びステップS1216により、上述のステップS12
13,1214と同様にして求めることができる。そし
て、ステップS1217にてnを1つカウントアップ
し、ステップS1206へ戻る。
【0033】図13は、各輪郭点のベクトルを自動的に
計算で求める1例であり、3つ以上のウエイトの輪郭デ
ータから非直線のベクトルを取り出す様子を表す図であ
る。この例では、「1」のウエイト1、ウエイト5とウ
エイト10から輪郭点移動ベクトル(2次式で表され
る)を求めている。即ち、ウエイト1の各輪郭点を始点
とし、ウエイト5の点を通りウエイト10の各輪郭点を
終了点とする2次式の輪郭点移動ベクトルを求める。こ
の場合、前述の図11のデータ構成では、X,Y座標は
ウエイト1の輪郭点の座標を表し、ベクトルX,Y座標
1はウエイト10の輪郭点の座標を示す(実際にはウエ
イト1に対する相対位置)。また、ベクトルX,Y座標
2はウエイト5の輪郭点の座標を示す。更に、ベクトル
X,Y座標3は、ウエイト3の輪郭点の座標を示す。
【0034】メモリ容量やCPUのパワーに応じて、1
次式のデータを持つか、2次式以上のデータを持つかを
選択することも可能である。このとき、2次式以上のデ
ータを1次式のデータに変換することは容易に行える。
ただし、1次式の輪郭点移動ベクトルで近似した場合
は、2次式以上の輪郭点移動ベクトルを用いた場合に比
べて多少の文字品位の低下をまねくおそれがある。
【0035】以上説明したように、文字輪郭上の各点に
ウエイトを可変にするためのベクトルを曲線で持たせる
ことにより以下のような効果がある。即ち、 1. より高品位のウエイト変更が行える 2. 直線で表すことができる部分は直線で表すことに
より、データ量を余り増やすことなくデータを格納する
ことができる 3. 曲線で高品位に展開するか直線で高速に展開する
かの選択ができる 4. 複数の輪郭情報を持つことに比べデータ管理が容
易である という効果がある。
【0036】<実施例3>次に、実施例3では、1つの
輪郭点から輪郭点移動ベクトルを求め、この輪郭点移動
ベクトルを用いて各ウエイトに対する輪郭点の座標を求
める輪郭形成装置について説明する。尚、実施例3の輪
郭形成装置の構成は実施例1と同様であるのでここでは
その説明は省略する。
【0037】図14,図15,図16は、図1の輪郭形
成装置において、各輪郭点に対する輪郭点移動ベクトル
を求める手順を表すフローチャートである。図9で示し
たような2種類以上のウエイトからベクトルを求める場
合に比べ、1種類のウエイトの文字のみより輪郭点移動
ベクトルを求めることができる。この場合、アウトライ
ンデータの容量が減り、管理が容易になるという利点が
ある。
【0038】図14のフローチャートの手順では、ウエ
イト1の輪郭点の位置から、水平方向の移動に対し、水
平移動不可、水平移動制限有り、水平移動制限無しの3
種類の分類を行っている。この移動の分類は対になる輪
郭と、他の輪郭或いは文字枠(ボディ枠)との位置関係
から導き出すことができる。即ち、ウエイトを10にし
たときの標準水平線幅とウエイトが1の標準水平線幅の
差分、輪郭点を水平に、対の輪郭とは反対方向に動かし
たときに、その輪郭点の輪郭に接触もしくは交差するか
どうか、また文字のボディ枠をはみ出すかどうか、とい
ったことから移動の可能性をフラグにセットする。同様
に垂直方向についても同様の判定を行っている。
【0039】まずステップS1401で標準水平線幅を
入力する。本例では、ウエイト1のときと10のときの
標準水平線幅、標準垂直線幅を入力する。また、これら
標準水平線幅、標準垂直線幅は各フォントに応じて予め
ROM14に格納されているものとする。次に、ステッ
プS1402にて全輪郭点数をNに代入し、輪郭点カウ
ンタcを1にセットする。ステップS1403ではcが
Nより大きいか否かをチェックし、大きければステップ
S1501(図15)に進む。また、cがN以下であれ
ばステップS1404へ進み、c番目の輪郭点を取り出
す。
【0040】ステップS1405では、取り出したc番
目の輪郭点が水平方向に移動可能かどうかを調べ、不可
であればステップS1408へ進み、可能であればステ
ップS1406へ進む。ステップS1406では水平方
向の移動に制限があるか否かをチェックし、制限があれ
ばステップS1409へ、無ければステップS1407
へそれぞれ進む。ステップS1407では、輪郭点の水
平方向の移動に対して制限がないので、当該輪郭点の水
平移動量大を表すフラグをセットする。また、ステップ
S1405で、水平移動が不可と判定された場合はステ
ップS1408にて水平移動不可を表すフラグをセット
する。更に、ステップS1406で水平移動に制限があ
る場合はステップS1409において水平移動量小を表
すフラグをセットする。
【0041】次に、ステップS1410以降で、垂直方
向についての移動量をチェックする。ステップS141
0では、取り出したc番目の輪郭点が垂直方向に移動可
能かどうかを調べ、不可であればステップS1413へ
進み、可能であればステップS1411へ進む。ステッ
プS1411では垂直方向の移動に制限があるか否かを
チェックし、制限があればステップS1414へ、無け
ればステップS1412へそれぞれ進む。ステップS1
412では、輪郭点の垂直方向の移動に対して制限がな
いので、当該輪郭点の垂直移動量大を表すフラグをセッ
トする。また、ステップS1410で、垂直移動が不可
と判定された場合はステップS1413にて垂直移動不
可を表すフラグをセットする。更に、ステップS141
1で垂直移動に制限がある場合はステップS1414に
おいて垂直移動量小を表すフラグをセットする。
【0042】そして、ステップS1415において輪郭
点カウンタcを1つインクリメントしてステップS14
03へ戻る。このようにして、全輪郭点に対して移動量
を表すフラグがセットされると、ステップS1403よ
りステップS1501へ制御が進む。
【0043】このようにして求めた全輪郭点の移動量を
表すフラグから、各輪郭点の移動量を求める。図15で
はこの移動量を求める手続きを示している。移動量の計
算では通常、輪郭点の対となる輪郭点とあわせて必要と
なる太さになるよう、ベクトルを計算する。このため、
移動量を計算する点のフラグと、対の輪郭点のフラグを
合わせて移動量計算を行うサブルーチンをコールする。
【0044】図15のフローチャートについて説明す
る。まず、ステップS1501にて、全輪郭点数をNに
代入し、輪郭点カウンタcを1にセットする。ステップ
S1502では、cがNより大きいか否かをチェック
し、大きければ本処理を終了し、cがN以下であればス
テップS1503へ進む。
【0045】ステップS1503では、c番目の輪郭点
を取り出し、ステップS1504ではc番目の輪郭点と
対をなす輪郭点を取り出す。この対をなす輪郭点はc番
目の輪郭点に対して垂直方向及び水平方向の幅を決定す
る輪郭点であり、1つの輪郭点に対して水平方向に対を
なす輪郭点、垂直方向に対をなす輪郭点の2つを抽出
し、それぞれの移動量を表すフラグを取り出す。そし
て、ステップS1505で移動量を計算する。ステップ
S1505ではウエイト1からウエイト10に変化した
場合の輪郭点の水平方向及び垂直方向の移動量が求めれ
られるので、これをステップS1506において各輪郭
点のベクトルX座標、ベクトルY座標としてセットす
る。ベクトルX座標及びベクトルY座標を用いて各ウエ
イトに対する輪郭点の位置は実施例1と同様であるので
ここでは説明を省略する。
【0046】ステップS1504における、ある輪郭点
と対になる輪郭点の抽出の方法については種々の方法が
可能である。その1例を図16のフローチャートを用い
て説明する。例えば、ある輪郭点を基準に水平方向及び
垂直方向に走査して、輪郭点と水平方向及び垂直方向に
対となる輪郭点を抽出する。
【0047】図16は移動量を計算するサブルーチンで
あり、図15のステップS1505の処理の詳細を表す
フローチャートである。尚、移動量は、水平移動量大/
小フラグ或いは垂直移動量大/小フラグの種類によりあ
らかじめ定められており、対の輪郭点のフラグと標準線
幅から移動量の算出を行う。
【0048】まず、ステップS1601で、当該輪郭点
の水平移動量を図14のフローチャートでセットされた
フラグによりセットする。また、ステップS1503で
取り出された水平方向に対をなす輪郭点の水平移動量を
移動量を表すフラグによりセットする。ステップS16
02では、当該輪郭点の垂直移動量を図14のフローチ
ャートでセットされたフラグによりセットする。更に、
ステップS1503で抽出された垂直方向に対をなす輪
郭点の垂直移動量を移動量を表すフラグに基づいてセッ
トする。
【0049】そして、ステップS1603では、注目し
ている輪郭点の水平移動量と、当該輪郭点と水平方向に
対をなす輪郭点の水平移動量と、ウエイト1における標
準水平線幅とを足し合わせて、これをWに代入する。同
様に、ステップS1604では、注目している輪郭点の
垂直移動量と、当該輪郭点と垂直方向に対をなす輪郭点
の垂直移動量と、ウエイト1における標準垂直線幅とを
足し合わせて、これをHに代入する。
【0050】ステップS1605においては、ステップ
S1603で代入されたWの値と、ウエイト10におけ
る標準水平線幅とを比較する。ここで、Wの方が大きい
場合は水平線幅が太くなり過ぎることを意味するので、
ステップS1606で移動量を補正する。即ち、ステッ
プS1606では、ステップS1601でセットされた
輪郭点の水平移動量に、 (ウエイト10の標準水平線幅−ウエイト1の標準水平
線幅)/(W−ウエイト1の標準水平線幅) を乗じることで、ウエイト10における水平線幅が標準
水平線幅を越えないように補正する。1方、ステップS
1605でWがウエイト10の標準水平線幅以下であれ
ば、ステップS1601でセットされた水平移動量をそ
のまま用いる。
【0051】ステップS1607及びステップS160
8では垂直方向について上述のステップS1605及び
ステップS1606と同様の処理を行う。このようにし
て、ウエイト10における各輪郭点の移動量が算出され
るので、これを用いて実施例1と同様の手法で輪郭点移
動ベクトルを得ることができる。
【0052】また、図15のステップS1504におけ
る対をなす輪郭点の抽出方法としては種々の方法が考え
られるが、その1例を図22及び23を用いて説明す
る。図22はある注目輪郭点と対をなす輪郭点を抽出す
るための手順を表すフローチャートであり、図23はあ
る注目輪郭点と対をなす輪郭点を抽出するための手順を
説明するための図である。
【0053】まず、ステップS2201において、注目
する輪郭点を始点とする輪郭ベクトルを抽出する。同様
にステップS2202において、注目する輪郭点を終点
とする輪郭ベクトルを抽出する。ここで輪郭ベクトル
は、図23に示されるように輪郭の内側がベクトルの方
向に対して常に左側にあるように構成される。以上のス
テップS2201および2202において、例えば図2
3の輪郭点2300を始点とする輪郭ベクトル2300
b及び輪郭点2300を終点とする輪郭ベクトル230
0aが抽出される。
【0054】次に、ステップS2203において、上記
抽出された輪郭ベクトルの方向の左側へ水平に走査し、
対をなす輪郭ベクトルを検索する。図23を用いて説明
すると、輪郭ベクトル2300bより水平方向に、例え
ば走査線2300cに沿って輪郭ベクトルを検索する
と、対ベクトルとして輪郭ベクトル2305bが抽出さ
れる。また、走査線2300dに沿って輪郭ベクトルを
検索すると輪郭ベクトル2302bが抽出される。
【0055】そして、ステップS2204において、抽
出された対ベクトルが複数か否かをチェックし、複数で
なければステップS2205へ進み、複数ある場合はス
テップS2204へ進む。ステップS2205では、注
目する輪郭点を含む輪郭ベクトルと水平方向に最も近い
位置にある対ベクトルを抽出する。これを図23を用い
て説明すると、輪郭ベクトル2305bよりも輪郭ベク
トル2302bの方が近いので、これを対ベクトルとす
る。
【0056】ステップS2206では、以上のようにし
て抽出された輪郭ベクトルの両端点のうち、注目してい
る輪郭点に近い方の端点を対をなす輪郭点とする。即
ち、図23において、輪郭ベクトル2302bの両端点
のうち輪郭点2300に近い方の端点は輪郭点2301
であるので、これを水平方向に対をなす輪郭点とする。
【0057】ステップS2207からステップS221
0では、垂直方向に対して走査を行い垂直方向に対をな
す輪郭点を求める。その内容は上記の水平方向の場合と
同様であるのでここではその説明を省略する。図23に
おいて、輪郭点2300の垂直方向に対をなす輪郭点と
して、輪郭点2301が得られる。また、例えば輪郭点
2302について上述の処理を実行すると、輪郭点23
03が水平方向に対をなす輪郭点として、輪郭点230
4が垂直方向に対をなす輪郭点として抽出されることが
わかる。
【0058】以上説明したように、文字輪郭上の各点に
ウエイトを可変にするためのベクトルを1種類のウエイ
トから自動計算することにより以下のような効果があ
る。即ち、 1.1種類のウエイトから他のウエイトを作成するベク
トルを計算できるため、文字デザインの工程が短縮され
る 2.複数の輪郭情報からベクトルを計算することに比
べ、データ管理が容易である という効果がある。
【0059】<実施例4>実施例4では、上述の実施例
3と同様に1種類のウエイトの輪郭点から輪郭点移動ベ
クトルを求めるが、ある輪郭点の移動量フラグとその輪
郭点と対をなす輪郭点の移動量フラグの組み合わせによ
って決定される移動量を、予めテーブルとして持たせて
ある輪郭形成装置について説明する。尚、実施例3の輪
郭形成装置の構成は実施例1と同様であるのでここでは
その説明は省略する。
【0060】図17から図19は、図1の装置で用いる
データを輪郭の点の位置から自動的に求める方法を表し
たフローチャートである。実施例3で示した方法にくら
べ、移動量をテーブルで持たせることにより、計算を省
力化でき、テーブルの分類を細かくすることでより品位
を上げることが容易である。
【0061】図17では、文字輪郭の点の位置から、水
平方向の移動に対し、水平移動不可、水平移動制限有
り、水平移動制限無しの3種類の分類を行っている。も
ちろん、この分類は条件を変えることで容易に細かくす
ることができる。この移動の分類は対になる輪郭と、他
の輪郭、文字枠(ボディ枠)との位置関係から導き出す
ことができる。すなわち、ウエイトを10にしたときの
標準水平線幅とウエイトが1の標準水平線幅の差分、輪
郭点を水平に、対の輪郭とは反対方向に動かしたとき
に、その輪郭点の輪郭に接触もしくは交差するかどう
か、また文字のボディ枠をはみ出すかどうか、といった
ことから移動の可能性をフラグにセットする。同様に垂
直方向についても同様の判定を行う。
【0062】図17のフローチャートにおけるステップ
S1701からS1715の各ステップは図14のフロ
ーチャートにおけるステップS1401からS1415
の各ステップと同様であり、ここではその説明は省略す
る。図17のフローチャートより求めた全輪郭点の移動
量のフラグから、実際の移動量を求める。図18ではこ
の移動量を求める手続きを示している。移動量の計算で
は通常、輪郭の点と輪郭の対となる点のフラグとをあわ
せて、テーブルから移動量を取り出す。
【0063】図18における、ステップS1805を除
くステップS1801から1807の各ステップは、図
15におけるステップS1505を除くステップS15
01から1507の各ステップと同様である。ステップ
S1805は、水平移動テーブル及び垂直移動テーブル
を用いて移動量の絶対値を獲得するための処理であり、
その詳細を図19に示す。
【0064】図19は移動量を計算するサブルーチンで
ある。尚、ここで用いる水平移動テーブルや垂直移動テ
ーブルは書体や文字によって変えることが可能であり、
より細かなベクトルの調整が可能である。
【0065】図19について説明する。まず、ステップ
S1901で、注目している輪郭点の移動量を表すフラ
グと、当該輪郭点と水平方向に対をなす輪郭点の移動量
を表すフラグを取り出す。そして、ステップS1902
において、各輪郭点の移動量を表すフラグを用いて、図
20に示されるような水平移動テーブルを検索し、水平
方向の移動量の絶対値を獲得する。そして、対となる輪
郭点から離れる方向へ移動方向をセットする。ステップ
S1903では、注目している輪郭点の移動量を表すフ
ラグと、当該輪郭点と垂直方向に対をなす輪郭点の移動
量を表すフラグを取り出す。そして、ステップS190
4において、各輪郭点の移動量を表すフラグを用いて、
図21に示されるような垂直移動テーブルを検索し、垂
直方向の移動量の絶対値を獲得する。そして、対となる
輪郭点から離れる方向へ移動方向をセットする。
【0066】以上のようにして、ウエイト10における
輪郭点の移動量が得られるので、これを用いて輪郭点移
動ベクトルを計算し、各ウエイトに対応する輪郭点の移
動量を算出することができる。
【0067】図20、21は図19の移動量の検索に用
いるテーブルである。図20は水平移動量用のテーブル
であり、図21は垂直移動量用のテーブルである。輪郭
点の移動量のフラグと、対の点の移動量のフラグとの組
み合わせからテーブルを検索し、対応する移動量を獲得
し、ベクトルの生成に用いる。
【0068】以上説明したように、文字輪郭上の各点に
ウエイトを可変にするための輪郭点移動ベクトルを1種
類のウエイトからテーブルを用いて設定することによ
り、以下のような効果がある。即ち、 1.1種類のウエイトから他のウエイトを作成するベク
トルを計算できるため、文字デザインの工程が短縮され
る 2.複数の輪郭情報からベクトルを計算することに比べ
データ管理が容易である 3.テーブルを複数持つことでさまざまなフォントの文
字をより高品位に展開するための輪郭点移動ベクトルを
作成可能である 4.判定条件を細かくすることで、文字をより高品位に
展開できるベクトルを作成可能である という効果がある。
【0069】尚、上記実施例3、4においては、メモリ
容量に余裕があれば、全文字に対して予め輪郭点の移動
量を計算し、これを格納しておくとで、処理のスピード
を向上することもできる。
【0070】<実施例5>上記各実施例では輪郭点移動
ベクトルを1つの関数で表して各ウエイトに対する輪郭
点の位置を決定している。本実施例では、輪郭点の移動
ベクトルの関数が、あるウエイトを境に変化する場合を
説明する。
【0071】図5は輪郭点移動ベクトルを表す関数が途
中で変化する例を表す。この例ではウエイト4を境にX
座標の関数が変化する。即ち、ウエイトが4以上ではX
座標は変化しなくなる。また、Y座標は2次以上の関数
により変化している。
【0072】図24は実施例5における輪郭データの構
成を表す図である。同図において、フラグ1からフラグ
4、X,Y座標、各ベクトルX,Y座標は実施例2の図
11と同様でありここでは説明を省略する。フラグ5は
X方向の輪郭点の移動ベクトルの関数が変化するウエイ
ト値を表す。また、フラグ6はY方向の輪郭点の移動ベ
クトルの関数が変化するウエイト値を表す。例えば図5
の注目点においてはフラグ5に4が格納される。また、
移動ベクトルに変化がない場合は0を格納するものとす
る。フラグ5もしくは6のいずれかが0以外の場合は、
次の欄の各座標データの表す内容が変わってくる。例え
ば、フラグ5に4が格納されている場合は、X座標とし
てウエイトが4の時の値が格納され、ウエイト値が4以
上の場合に用いるデータがフラグ3およびベクトルX座
標に格納される。
【0073】即ち、あるウエイト値を境に輪郭点の移動
ベクトルの関数が変化する場合、輪郭データは複数の欄
に渡って格納される。例えば、第1番目の欄にはウエイ
ト1から4に対するベクトルデータが、第2番目の欄に
はウエイト4から10に対するベクトルデータが格納さ
れる。更に関数の変化するウエイト値が複数有る場合は
これに応じて第3番目の欄、第4番目の欄にデータを格
納していけば良い。図24の例で説明すると、aという
輪郭点はX方向の移動ベクトルの関数ウエイト4で変化
する。そして、ウエイト4以降は第2欄のフラグ3が0
なのでX座標が変化しなくなる。1方輪郭点aのY方向
の移動ベクトルの変化はない(フラグ6が0でない)。
【0074】また、輪郭点bはウエイト5でX方向の移
動ベクトルの関数が変化し、ウエイト3と7でY方向の
移動ベクトルの関数が変化する。そして、Y方向の移動
ベクトルの関数は、ウエイト1〜3が2次曲線、ウエイ
ト4〜7が1次の直線となり、ウエイト8〜10では変
化しなくなる。
【0075】図25は実施例5における輪郭点のX、Y
座標の変換手順を表すフローチャートである。尚、本実
施例5における文字輪郭データの出力手順は実施例2の
図12のフローチャートとほぼ同様であり、座標の変換
手順が異なるのみである。従って、図24に示したフロ
ーチャートは図12のステップS1208からステップ
S1211に相当する部分のみを表している。尚、各ベ
クトルX座標、ベクトルY座標に用いられているウエイ
ト値は、関数が変化するものについては個別に記憶して
おくものとする。
【0076】ステップS2401では、フラグ5が0か
否かをチェックし、0であれば関数の変化がないのでス
テップS2402へ進み、当該輪郭点の第1欄に格納さ
れたデータを取り出す。また、フラグ5が0でない場合
は、ステップS2403において、第1欄及び以下に続
く欄のフラグ5の値により、用いるべき欄を決定し、該
当する欄に格納されたデータを取り出す。以上のように
して、ステップS2402もしくは2403により取り
出されたデータを用いてX座標の変換処理を実行する。
即ち、ステップS2404においてフラグ3をチェック
し、Xベクトルが存在するか否かを判断する。Xベクト
ルが存在する場合はステップS2405へ進み、輪郭点
のX座標をウエイト情報及び輪郭点移動ベクトルのベク
トルデータから計算する。このときの輪郭点の移動の軌
跡を表す計算式は、フラグ3に記憶された曲線式の次数
と、ベクトルX座標1,2…を用いて決定する。
【0077】ステップS2406からステップS241
0はY座標に関する処理であり、その内容は上述のステ
ップS2401から2405と同様でありここではその
説明を省略する。
【0078】以上のようにして、本実施例5の文字輪郭
形成装置によれば、輪郭点の移動ベクトルの関数がある
ウエイト値を境に変化する場合にも対応することができ
る。
【0079】<実施例6>図26は実施例6の輪郭形成
装置の概略制御構成を表すブロック図である。同図にお
いて図1に示したブロック図と同1の機能を有する構成
には同1の参照番号を付し、ここではその説明を省略す
る。14’はROMであり、あるウエイトの輪郭データ
が格納されている。この輪郭データは一般的な輪郭デー
タであり、他のウエイトに対応するための移動情報は含
まれていない。17はハードディスクであり、ROM1
4’に格納された輪郭データを元にして生成された輪郭
点移動ベクトルを含む輪郭データを格納する。即ち、本
実施例6の輪郭形成装置は、ROM14’に格納されて
いる一般的な輪郭データから輪郭点の移動ベクトルデー
タを算出し、この移動ベクトルデータを有する輪郭デー
タをハードディスク17に格納するものである。
【0080】図27は、ハードディスク17における輪
郭データのデータ構造を表す図である。同図において、
1701はヘッダー部であり、当該輪郭データの「書体
名」,「文字の並び」,「コードの範囲」,「ウエイ
ト」,「バリエーション」が含まれている。「書体名」
は書体の種別(ゴシック体,明朝体等)を表す。「文字
の並び」とはASCII、JIS0208等のどの体系
に準拠するものであるか表す。例えばASCIIに準拠
するのであれば0x42、JIS0208に準拠するの
であれば0xC2のようにコードで表されている。「コ
ードの範囲」とは、文字の割り当てられたコードの開始
番号(開始コード)と終了番号(終了コード)で表され
る範囲のことである。例えばJIS第1水準の各漢字
は、3021(16進数)〜4F7E(16進数)の範
囲の番号がコードとして割り当てられているので、先頭
コード:3021、終了コード:4F7Eとなる。「ウ
エイト」は文字の太さを表す数値である。「バリエーシ
ョン」とは、例えば「長体」,「平体」,「斜体」等の
文字の形状を表すものである。
【0081】1702はポインタ領域であり、各文字輪
郭データの格納位置を示すポインタを格納する。ポイン
タは、ヘッダー部の先頭から各文字の輪郭データが格納
されているアドレスへのオフセットが何バイトであるか
を示しており、格納されている文字数分存在する。例え
ばJIS第1水準の漢字の場合、(4F−30+1)×
(7E−21+1)=3008文字分のポインタが存在
する(JISでは、コード番号の下2桁が7E〜21ま
でしか使用されない)。従って「先頭コードへのポイン
タ」とはコード番号3021の漢字の輪郭データが格納
されているアドレスを特定するためのオフセット値であ
る。同様に、「終了コードへのポインタ」とは、コード
番号4F7Eの漢字の輪郭データが格納されているアド
レスを特定するためのオフセット値である。
【0082】1703は文字輪郭データの格納領域であ
る。ここに格納される文字輪郭データは、ROM14’
に格納された輪郭データを用いて生成された、輪郭点移
動ベクトルの情報を含む輪郭データであり、その内容は
実施例1から5において説明してあるので、ここではそ
の説明を省略する。
【0083】上述の輪郭データはハードディスク17上
のファイルとして管理される。ハードディスク17上に
は、各種処理により作成されたデータファイル(文書処
理による文書データなど)が格納されており、輪郭デー
タのファイルであるかどうかは拡張子やハードディスク
17上のディレクトリ内の情報などで管理、識別され
る。また、文字数が多くなった場合、1つのフォントを
複数のファイルに分割することも可能である。このとき
はヘッダー部1701に登録されている情報(書体名、
文字の並び、コード範囲、ウエイト、バリエーション)
から、どのフォントのどのコードに相当するファイルで
あるかをCPU12が判断する。
【0084】図28は実施例6におけるデータ出力手順
を表すフローチャートである。まず、ステップS280
1において、文字輪郭データファイルを特定するための
情報(書体名,文字コード,ウエイト,バリエーショ
ン)を入力する。ステップS2802では、ステップS
2801で入力された情報と各文字輪郭データファイル
のヘッダー部1701とを比較して使用する文字輪郭デ
ータファイルを特定し、ファイルを読み出す。続いてス
テップS2803ではステップS2801で入力された
文字コードにより、当該文字コードに対応する文字輪郭
データを読み出す。次に、ステップS2804におい
て、CPU12は指定されたウエイトに従った文字輪郭
点の位置を移動ベクトルデータを用いて算出する。輪郭
点の位置の発生手順は実施例1〜5において説明してあ
るのでここではその説明を省略する。ステップS280
5では、以上のようにして得られた文字輪郭データを出
力装置16より出力する。
【0085】次に、輪郭点移動ベクトルに関する情報、
即ち移動情報を持たない輪郭データ(以後オリジナルの
輪郭データと称する)より移動情報を備えた輪郭データ
を生成し、これをハードディスク17に格納する手順を
説明する。図29は実施例6における、輪郭データの格
納手順を表すフローチャートである。
【0086】ステップS2901において、これから作
成する文字輪郭データファイルに格納する輪郭データの
ヘッダー情報を指定する。ヘッダー情報とは、図27の
ヘッダー部1701に格納される情報である。ステップ
S2902では、設定されたヘッダー情報によりファイ
ル出力を行い、ヘッダー部1701を作成するとともに
ポインタ領域1702を確保する。ここで、ポインタ領
域1702の大きさはヘッダー情報うちのコードの範囲
により算出される文字数により決定される。そして、ス
テップS2903において変数Nに文字数を代入し、カ
ウンタCに1を代入する。尚これら変数N及びカウンタ
CはRAM15上に確保された領域である。
【0087】ステップS2904では、カウンタCが変
数Nより大きいかどうかを判定し、大きければ本処理を
終了する。1方、大きくなければステップS2905へ
進み、ROM14’よりオリジナルの輪郭データとその
ウエイトを読み出す。オリジナルの輪郭データが複数種
類のウエイトに対して用意されていればこれら全てを読
み出す。そして、ステップS2906では、読み出され
た輪郭データの数に応じて輪郭点移動ベクトルデータを
生成する。例えば、ステップS2905において、ウエ
イト1のオリジナルの輪郭データとウエイト10のオリ
ジナルの輪郭データとが読み出されていれば、1つの輪
郭点に対して2つの座標が得られる。これを元に各輪郭
点のウエイトをパラメータとする1次関数のベクトルデ
ータが得られる。同様に、3つのオリジナルの輪郭点デ
ータが読み出されれば輪郭点移動ベクトルをウエイトを
パラメータとする2次関数で表すことができる。このよ
うな輪郭点移動ベクトルの算出方法は実施例1及び2に
おいて説明してあるのでここではその説明を省略する。
また、1つのウエイトの輪郭データしかない場合は、実
施例3及び4で説明したように、移動フラグを用いて輪
郭点移動ベクトルを求める。このようにして、輪郭点移
動ベクトルに関するデータが生成される。
【0088】ステップS2907においては、ステップ
S2906で生成した輪郭点移動ベクトルを含めて文字
輪郭データとし、文字輪郭データ格納領域1703にフ
ァイル出力する。そして、この文字輪郭データが格納さ
れた位置を、ファイルの先頭からのオフセット値として
ポインタ領域1702に登録する。尚、オフセット値の
登録先のポインタはカウンタCの値により決定される。
そして、ステップS2908ではカウンタCを1つカウ
ントアップし、ステップS2904に戻って上述の処理
を繰り返す。
【0089】尚、上述のステップS2906にて生成さ
れる関数の次数を輪郭データとして登録するようにして
もよい。また、ステップS2905にて読み出される輪
郭点の数はオリジナルの輪郭データとして格納されてい
る数だけ読み出しているが、読み出す輪郭点の数を予め
キーボード等より2種類,3種類というように設定する
ようにしてもよい。
【0090】更に、読み出された輪郭点が各ウエイトを
通じて同一の位置にある場合は、ウエイトの変化に対し
て輪郭点が移動しないので、移動情報は無い。この場
合、移動情報がない旨をフラグにて表現するようにして
もよい(図6,図11参照)。
【0091】以上のようにして、ハードディスク17上
に、複数のウエイトに対応するための輪郭点移動ベクト
ルデータを有する輪郭点データが格納される。従って、
本実施例6の輪郭形成装置によれば、提供されたオリジ
ナルの輪郭データから輪郭点移動ベクトル情報を生成し
て、ウエイトに対応するための移動情報を有する輪郭デ
ータとしてハードディスクに格納することが可能とな
る。従って、オリジナルの輪郭データを提供するための
記憶媒体の容量が小さくて済むという効果がある。
【0092】以上説明したように、上記各実施例の輪郭
形成装置によれば、文字輪郭上の各点にウエイトを可変
にするためのベクトル情報を持たせることが可能とな
り、下記のような効果がある。即ち、 1.所望のウエイト値による文字の太さをリアルタイム
に計算することができる 2.少ないメモリ容量でウエイトを変更するための情報
を持たせることが可能である 3.ウエイトが違う文字の輪郭を高速に計算することが
可能である 4.輪郭データにベクトルを付加するためのデータ管理
が容易である 5.輪郭データに付加するベクトルデータの作成や取り
出しが容易にかつ高品位に行える 6.輪郭データにベクトルを付加する為の特別なデザイ
ンが必要なく、従来データとの共通化が容易であり、ま
たアウトラインフォントからビットマップフォントを生
成するモジュールの共有化も容易である 7.品位に応じて計算の複雑さを変えることができるた
め、さまざまな装置への応用が容易である 8.データの複雑さを、メモリ容量に応じて変えること
ができ、省メモリ化が可能である 9.データの複雑さを、CPUに応じて変えることがで
き、システムに合わせたカスタマイズが可能である 10.ウエイトを変化させるベクトルの作成方法によら
ず、同1の展開方法で輪郭データを生成することができ
る。
【0093】なお、本発明は複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或いは装置にプロ
グラムを供給することによって達成される場合にも適用
できることは言うまでもない。
【0094】
【発明の効果】以上説明してきたように、本発明の輪郭
形成方法及び装置によれば、各輪郭点に、ウエイトをパ
ラメータとする輪郭点移動のためのベクトル情報が付与
されるので、一つの輪郭データで複数のウエイトの文字
を発生させることができる。特に、2種類以上のベクト
ル情報で輪郭点の移動軌跡を示すことが可能となるの
で、各ウエイトにおいてより自然な文字パターンを発生
させることが可能となる。
【0095】
【図面の簡単な説明】
【図1】本実施例の輪郭形成装置の概略制御構成を表す
ブロック図である。
【図2】本実施例の輪郭形成装置をレーザビームプリン
タに組み込んだ場合の概略制御構成を表すブロック図で
ある。
【図3】フォントデータの形式の1例を表す図である。
【図4】図3のフォントデータをウエイト10で出力し
た状態を表す図である。
【図5】輪郭点移動ベクトルを表す関数が途中で変化す
る例を表す図である。
【図6】図3の「田」という文字のアウトラインデータ
の構成の1部を表す図である。
【図7】実施例1の輪郭形成制御の手順を表すフローチ
ャートである。
【図8】輪郭点移動ベクトルを表す1次関数の式の求め
方を示す図である。
【図9】2つのウエイトの輪郭データから輪郭点移動ベ
クトルを取り出す例を表す図である。
【図10】曲線で表される輪郭点移動ベクトルの1例を
表す図である。
【図11】実施例2における輪郭データの構成を表す図
である。
【図12】図11の形式の輪郭データから所望のウエイ
トの文字輪郭データを計算し出力する手順を表すフロー
チャートである。
【図13】3つ以上のウエイトの輪郭データから非直線
のベクトルを取り出す様子を表す図である。
【図14】実施例3の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図15】実施例3の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図16】実施例3の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図17】実施例4の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図18】実施例4の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図19】実施例4の輪郭形成装置において、各輪郭点
に対する輪郭点移動ベクトルを求める手順を表すフロー
チャートである。
【図20】水平移動テーブルのデータ構成を表す図であ
る。
【図21】垂直移動テーブルのデータ構成を表す図であ
る。
【図22】注目輪郭点と対をなす輪郭点を抽出する手順
を表すフローチャートである。
【図23】注目輪郭点と対をなす輪郭点を抽出する手順
を説明するための図である。
【図24】実施例5における輪郭データの構成を表す図
である。
【図25】実施例5における輪郭点のX、Y座標の変換
手順を表すフローチャートである。
【図26】実施例6の輪郭形成装置の概略制御構成を表
すブロック図である。
【図27】ハードディスクにおける輪郭データのデータ
構造を表す図である。
【図28】実施例6におけるデータ出力手順を表すフロ
ーチャートである。
【図29】実施例6における輪郭データの格納手順を表
すフローチャートである。
【符号の説明】
11 入力装置 12 計算装置(CPU) 13 記憶装置 14 ROM 15 RAM 16 出力装置
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09G 5/24 B41J 2/485 G06T 11/00

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1のウエイトのパターンの輪郭の第1
    の輪郭点に対応する座標データと、前記第1の輪郭点を
    ベクトルデータの切り替わるウエイト値のパターンの輪
    郭の第2の輪郭点の位置に移動させるための前記第1の
    輪郭点に対応するベクトルデータと、前記第2の輪郭点
    に対応する座標データと、該第2の輪郭点の移動軌跡を
    表わすベクトルデータと、ウエイト値に応じて異なるベ
    クトルデータを用いるための識別情報とを記憶する記憶
    手段と、 ウエイト情報を入力する入力手段と、 前記記憶手段に記憶されている識別情報に基づき、前記
    入力手段により入力されたウエイト情報に対応する座標
    データ及びベクトルデータを取り出す取り出し手段と、 前記入力手段により入力されたウエイト情報と前記取り
    出し手段により取り出された座標データ及びベクトルデ
    ータとに基づき、出力すべきパターンの輪郭点の座標デ
    ータを計算する計算手段とを備えることを特徴とする輪
    郭形成装置。
  2. 【請求項2】 前記計算手段により計算された座標デー
    タを送出する送出手段を更に備えることを特徴とする請
    求項1記載の輪郭形成装置。
  3. 【請求項3】 前記パターンは、文字パターンであるこ
    とを特徴とする請求項1記載の輪郭形成装置。
  4. 【請求項4】 前記切り替わるウエイト値が複数存在す
    ことを特徴とする請求項1記載の輪郭形成装置。
  5. 【請求項5】 前記ベクトルデータは1次の直線を表す
    ベクトルデータ、2次以上の曲線を表すベクトルデータ
    とを含むことを特徴とする請求項1に記載の輪郭形成装
    置。
  6. 【請求項6】 前記計算手段により計算された座標デー
    タに基づくパターンを出力する出力手段を更に備えるこ
    とを特微とする請求項1記載の輪郭形成装置。
  7. 【請求項7】 前記出力手段は、プリンタを含むことを
    特徴とする請求項6記載の輪郭形成装置。
  8. 【請求項8】 前記計算手段は、ベクトルデータが存在
    すると判別された場合に計算を実行することを特徴とす
    る請求項1記載の輪郭形成装置。
  9. 【請求項9】 前記記憶手段は、ベクトルデータの関数
    の次数を示す次数情報を記憶することを特徴とする請求
    項1記載の輪郭形成装置。
  10. 【請求項10】 前記次数情報は、ウエイトの変化に対
    して座標データが変化しないことを示す情報を含むこと
    を特徴とする請求項9記載の輪郭形成装置。
  11. 【請求項11】 第1のウエイトのパターンの輪郭の第
    1の輪郭点に対応する座標データと、前記第1の輪郭点
    ベクトルデータの切り替わるウエイト値のパターンの
    輪郭の第2の輪郭点の位置に移動させるための前記第1
    の輪郭点に対応するベクトルデータと、前記第2の輪郭
    点に対応する座標データと、該第2の輪郭点の移動軌跡
    を表わすベクトルデータと、ウエイト値に応じて異なる
    ベクトルデータを用いるための識別情報とを記憶する記
    憶手投を利用する輪郭形成方法であって、 ウエイト情報を入力する入力ステップと、 前記記憶手段に記憶されている識別情報に基づき、前記
    入力ステップにより入力されたウエイト情報に対応する
    座標データ及びベクトルデータを取り出す取り出しステ
    ップと、 前記入力ステップにより入力されたウエイト情報と前記
    取り出しステップにより取り出された座標データ及び
    クトルデータとに基づき、出力すべきパターンの輪郭点
    の座標データを計算する計算手段とを備えることを特徴
    とする輪郭形成方法。
  12. 【請求項12】 前記計算手段により計算された座標デ
    ータを送出する送出手段を更に備えることを特徴とする
    請求項11記載の輪郭形成方法。
  13. 【請求項13】 前記パターンは、文字パターンである
    ことを特徴とする請求項11記載の輪郭形成方法。
  14. 【請求項14】 前記切り替わるウエイト値が複数存在
    することを特徴とする請求項11記載の輪郭形成方法。
  15. 【請求項15】 前記ベクトルデータは1次の直線を表
    すベクトルデータを含むことを特微とする請求項11記
    載の輪郭形成方法。
  16. 【請求項16】 前記計算ステップにより計算された
    標データに基づくパターンを出力手段に出力するステッ
    プを更に備えることを特徴とする請求項11記載の輪郭
    形成方法。
  17. 【請求項17】 前記出力手段は、プリンタを含むこと
    を特徴とする請求項16記載の輪郭形成方法。
  18. 【請求項18】 前記計算ステップは、ベクトルデータ
    が存在すると判別された場合に計算を実行することを特
    徴とする請求項11記載の輪郭形成方法。
  19. 【請求項19】 前記記憶手段は、ベクトルデータの閑
    数の次数を示す次数情報を記憶することを特徴とする請
    求項11記載の輪郭形成方法。
  20. 【請求項20】 前記次数情報は、ウエイトの変化に対
    して座標データが変化しないことを示す情報を含むこと
    を特徴とする請求項19記載の輪郭形成方法。
JP05001686A 1992-11-30 1993-01-08 輪郭形成装置及び方法 Expired - Fee Related JP3106023B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP05001686A JP3106023B2 (ja) 1993-01-08 1993-01-08 輪郭形成装置及び方法
TW082109818A TW262547B (ja) 1992-11-30 1993-11-22
DE4340599A DE4340599C2 (de) 1992-11-30 1993-11-29 Gerät und Verfahren zur Konturerzeugung
CN93121111A CN1052320C (zh) 1992-11-30 1993-11-30 轮廓线形成装置和方法
US08/703,399 US6944823B2 (en) 1992-11-30 1996-08-26 Outline forming apparatus and method using inputted weight information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05001686A JP3106023B2 (ja) 1993-01-08 1993-01-08 輪郭形成装置及び方法

Publications (2)

Publication Number Publication Date
JPH06208365A JPH06208365A (ja) 1994-07-26
JP3106023B2 true JP3106023B2 (ja) 2000-11-06

Family

ID=11508403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05001686A Expired - Fee Related JP3106023B2 (ja) 1992-11-30 1993-01-08 輪郭形成装置及び方法

Country Status (1)

Country Link
JP (1) JP3106023B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3879932B2 (ja) * 2005-01-14 2007-02-14 シャープ株式会社 文字データ生成装置、プログラムおよび記録媒体

Also Published As

Publication number Publication date
JPH06208365A (ja) 1994-07-26

Similar Documents

Publication Publication Date Title
US6678410B1 (en) Generating a glyph
JPH0640257B2 (ja) 情報出力装置
CA2069701A1 (en) Method of substituting fonts and displaying characters
JPH0930061A (ja) 文字出力装置
JPH0635438A (ja) 文字発生方法
JPH0796594A (ja) 文字間隔調整装置および方法
EP0480755B1 (en) Document processing method and apparatus
JP3106023B2 (ja) 輪郭形成装置及び方法
JP2922738B2 (ja) 輪郭形成方法及び装置
US20040205486A1 (en) Outline forming apparatus for patents
US5850228A (en) Character generation with extracted and transformed skeleton data
EP1546917B1 (en) Apparatus and method for processing variable print documents
KR960010410B1 (ko) 출력방법 및 장치
US5883637A (en) Kerning method and a typographic apparatus utilizing same
JP2816181B2 (ja) 文書処理装置
US6061070A (en) Character outputting
JP2972820B2 (ja) 文字間隔調整装置及び文字間隔調整方法
JP3814330B2 (ja) 文字処理装置、文字処理方法、及び、メモリ
JP2763227B2 (ja) 書式決定方法
JPS62211692A (ja) 異なるサイズ文字の作成方式
JP2773691B2 (ja) プリンタ装置
EP1048456B1 (en) Generating a glyph
JP3827255B2 (ja) 情報処理システム及び方法並びに輪郭データ処理装置及び方法
JP3120542B2 (ja) 文字記号発生装置
JP3183900B2 (ja) プリンタ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000731

LAPS Cancellation because of no payment of annual fees