JPH09330073A - 文字発生装置および方法 - Google Patents

文字発生装置および方法

Info

Publication number
JPH09330073A
JPH09330073A JP8152524A JP15252496A JPH09330073A JP H09330073 A JPH09330073 A JP H09330073A JP 8152524 A JP8152524 A JP 8152524A JP 15252496 A JP15252496 A JP 15252496A JP H09330073 A JPH09330073 A JP H09330073A
Authority
JP
Japan
Prior art keywords
character
line width
point
contour
data
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
Application number
JP8152524A
Other languages
English (en)
Inventor
Masayuki Yoshida
政幸 吉田
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 JP8152524A priority Critical patent/JPH09330073A/ja
Publication of JPH09330073A publication Critical patent/JPH09330073A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 形のよい文字パターンを発生する。 【解決手段】 ROM2等の記憶装置に標準の文字パタ
ーン発生用データを記憶しておき、指示された線幅の程
度に標準パターンをCPU1により変形する。この際
に、線の縦/横、書体等に応じて線幅を微小変更する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトル形式でコ
ード化された文字、記号等をドット形式に変換する機能
を有した文字発生装置および方法に関する。
【0002】
【従来の技術】従来、1つの書体のデータから同一書体
で異なるウエイトのデータを発生させるときに、太め処
理の場合は、指定の太め量から文字全体の枠を広げて、
元の枠に戻すという処理を計算で求めていた。また、細
め処理の場合は指定の細め量から文字全体の枠をせばめ
て、元の枠に戻すという処理を計算で求めていた。
【0003】
【発明が解決しようとする課題】しかしながら上記従来
例では、一律に太める処理を行おうとしているため、太
い線幅のときも細い線幅のときも同一の太め量によって
太め処理を行っている。その結果異なる線幅の差が小さ
くなるという問題点があった。
【0004】そこで本発明は、文字線幅のバランスがと
れた線幅修正が可能な文字発生装置および方法を提供す
ることを目的とする。
【0005】
【課題を解決するための手段】このような目的を達成す
るために、請求項1の発明は文字のストロークの輪郭線
の特徴点の座標値を示す複数の輪郭データと、前記スト
ロークの標準線幅を示す線幅管理情報を記憶する記憶手
段と、発生対象の文字のサイズを入力する第1の入力手
段と、文字のストロークの線幅の程度を示すウエイト情
報を入力する第2の入力手段と、前記標準線幅を前記ウ
エイト情報の示す線幅となるように変更調整する調整手
段と、該調整手段により変更調整された線幅の文字パタ
ーンを前記発生対象の文字サイズに応じて縮小/拡大し
た文字パターンを発生する文字発生手段とを具えたこと
を特徴とする。
【0006】請求項1に記載の文字発生装置において、
前記調整手段は前記特徴点の座標値を変更することによ
り線幅の調整を行うことを特徴とする。
【0007】請求項1に記載の文字発生装置において、
前記線幅は縦および横のストロークで異ならせることを
特徴とする。
【0008】請求項1に記載の文字発生装置において、
前記文字発生手段は発生の文字パターンをビットマップ
フォント、輪郭線データおよびグレイスケールフォント
のいずれかの形態で出力することを特徴とする。
【0009】請求項1に記載の文字発生装置において、
書体を入力する第3の入力手段をさらに有し、前記調整
手段は、調整された線幅について該書体に応じて部分修
正することを特徴とする。
【0010】請求項5に記載の文字発生装置において、
前記書体に応じた部分修正は請求項1に記載の特徴点の
増設であることを特徴とする。
【0011】請求項6に記載の文字発生装置において、
請求項5に記載の調整手段は隣接する3つの特徴点から
定まる2つの線分の交差角度を調べ、該交差角度が鋭い
角度のとき特徴点の増設を行うことを特徴とする。
【0012】請求項5に記載の文字発生装置において、
前記書体に応じた部分修正は請求項1に記載のストロー
クの角の丸め処理であることを特徴とする。
【0013】請求項8に記載の文字発生装置において、
請求項5に記載の調整手段は隣接する3つの特徴点から
定まる2つの線分の交差角度を調べ、該交差角度が鋭角
ではないとき前記丸め処理を行うことを特徴とする。
【0014】請求項1に記載の文字発生装置において、
前記輪郭データは文字の外周輪郭線を構成するストロー
クについての外周輪郭データと、該文字の内周輪郭線を
構成するストロークについての内周輪郭データを有し、
前記外周輪郭データについてのストロークの線幅と、前
記内周輪郭についてのストロークの線幅とを異ならせる
ことを特徴とする。
【0015】請求項10に記載の文字発生装置におい
て、請求項1に記載の調整手段は3つの隣接する特徴点
により定まる2つの線分の交差角度に基づき、前記外周
データおよび前記内周データを自動判別することを特徴
とする。
【0016】請求項1に記載の文字発生装置において、
前記輪郭データは同一文字について、線幅の異なる複数
種が用意されており、前記第2の入力手段により入力さ
れたウエイト情報の示す線幅の程度に最も近い種類の輪
郭データを使用して前記調整手段は線幅を変更すること
を特徴とする。
【0017】文字のストロークの輪郭線の特徴点の座標
値を示す複数の輪郭データと、前記ストロークの標準線
幅を示す線幅管理情報を記憶装置に記憶しておき、発生
対象の文字のサイズおよび文字のストロークの線幅の程
度を示すウエイト情報を与え、前記標準線幅を前記ウエ
イト情報の示す線幅となるように変更調整し、当該変更
調整された線幅の文字パターンを前記発生対象の文字サ
イズに応じて縮小/拡大して文字パターンを発生するこ
とを特徴とする。
【0018】
【発明の実施の形態】
〔第1実施例〕次に本発明の実施例について説明する。
【0019】なお、本発明は複数の機器からなるシステ
ムにおいて、達成されても良く、1つの機器からなる装
置において達成されても良い。また、システムあるいは
装置にプログラムを供給することにより、本発明が達成
される場合にも適用されることは言うまでもない。
【0020】図1は本発明を適用した情報処理システム
の基本的な構成を示すブロック図である。後述の各実施
例において共通とすることができる。ただし、文字発生
処理内容が実施例毎に異なる。本システムは日本語ワー
ドプロセッサであっても良いし、ワークステーションあ
るいはパーソナルコンピュータシステムであっても良
い。図1において1はCPU、即ち中央処理装置であ
り、この装置全体の制御及び演算処理等を行なうもので
ある。2はROM即ち読み出し専用メモリであり、シス
テム起動プログラム及び文字パターン・データ等の記憶
領域である。文字パターンは文字コードに関連付けて、
書体毎に格納されている。3はRAM即ちランダムアク
セスメモリであり、使用制限のないデータ記憶領域であ
り、様々な処理毎に各々のプログラム及びデータがロー
ドされ、実行される領域である。
【0021】4はKBC即ちキーボード制御部であり、
5のKB即ちキーボードよりキー入力データを受け取り
CPU1へ伝達する。6はCRTC即ちディスプレイ制
御部である。7はCRT即ちディスプレイ装置であり、
CRTC6よりデータを受け取り表示する。9はFD即
ちフロッピーディスク装置あるいはHD即ちハードディ
スク装置等の外部記憶装置であり、プログラム及びデー
タを記憶させておき、実行時必要に応じて参照またはR
AMへロードする。8はDKC即ちディスク制御部であ
り、データ伝送等の制御を行なうものであり、10はP
RTC即ちプリンタ制御部であり、11はPRT即ちプ
リンタ装置である。12はシステムバスであり、上述の
構成要素間のデータの通路となるべきものである。
【0022】また、図2は本発明を適用したプリンタの
基本的な構成を示すブロック図である。本システムはレ
ーザビームプリンタであっても良いし、バブルジェット
プリンタあるいは熱転写等の出力機であっても良い。図
2において21はCPU、即ち中央処理装置であり、こ
の装置全体の制御及び演算処理等を行なうものである。
22はROM即ち読み出し専用メモリであり、システム
起動プログラム及び文字パターン・データ等の記憶領域
である。23はRAM即ちランダムアクセスメモリであ
り、使用制限のないデータ記憶領域であり、様々な処理
毎に各々のプログラム及びデータがロードされ、実行さ
れる領域である。
【0023】10はPRTC即ち出力制御部、11はP
RT即ち出力装置(プリンタ)であり、PRTC10よ
りデータを受け取り、PRT11でデータを印刷する。
図1および図2のシステム構成において、CPU1、R
OM2、もしくはCPU21、ROM22が文字発生装
置として機能する。
【0024】次に本発明の実施例の詳細を図3のフロー
チャートを用いて説明する。図3は本発明の文字発生に
ついて全体の処理手順を示すフローチャートである。こ
の処理手順はROM2にCPU1が処理可能なプログラ
ム言語で格納されている。ここで説明する例は、ウエイ
トの異なる同一の書体がシステムに1つ存在するとき、
そのデータを用いて異なるウエイトのデータを発生させ
るときの例である。ステップ3−1において発生すべき
文字についての入力パラメータを受け取る。この入力パ
ラメータは、ユーザがキーボード等を介して入力した
り、予め作成した文書内の文字コードに属性として付加
されているものである。
【0025】ここで入力パラメータとしては出力すべき
文字の文字コードそのもの、書体、ウエイト、出力サイ
ズ、出力形式等がある。文字コードはJISコード、シ
フトJISコード、EUCコード、UNIコード等のあ
らかじめ対象となるシステムがどの文字コード体系によ
って定められているかによって決まる。また書体として
は明朝体、ゴシック体、丸ゴシック体等の書体がよく知
られている。これらの書体の所望の文字パターンはあら
かじめシステムが内蔵している文字パターンあるいはオ
プションとして加えられた文字パターンの中から選ばれ
る。ウエイトは上記書体の線の太さ情報であり、ここで
は極細、細、中、太、極太等の情報が与えられる。出力
サイズは実際にフォントデータを出力する際にどれ位の
大きさで出力するかの情報である。出力形式は所望とす
るフォント(文字パターン)の出力データ形式であり、
輪郭座標データ(アウトラインフォントとも呼ばれる)
出力、ビットマップ出力等の要求が出される。
【0026】次にステップ3−2において対象文字の座
標データ(図6参照)を読み込む。このデータは上述の
文字パターンの中にあらかじめ格納されており、ステッ
プ3−1で取り込んだ入力情報の書体情報や文字コード
情報から検索して必要分読み込む。このとき取り込む入
力情報は図4に示すように文字の輪郭の特徴点を抽出し
た座標情報であり、それぞれの点に対して直線データ/
曲線データ判別フラグ、輪郭開始点/終了点フラグ線幅
を管理する情報等の属性情報を持つ。そしてここで扱う
曲線データの補間式は2次あるいは3次Bスプライン曲
線であったり、2次あるいは3次ベジェ曲線であったり
するが、どの補間式を使用しているかはあらかじめ決定
されている。
【0027】また、文字枠を示す座標の最小値は0、最
大値は800等で表現されている。また、各ストローク
の枠の基準点への文字の原点からのオフセット情報を持
つ。さらに、線幅を管理する情報としては、横線及び縦
線における標準線幅、横線あるいは縦線を知らせるため
の座標点番号である。
【0028】そしてステップ3−3において取り込んだ
座標データを入力パラメータのウエイト情報に応じて太
め/細め処理を行う。この時の処理は図10のフローチ
ャートを用いて後で詳述するが、この太め/細め処理を
行った結果は図5に示すように各々の輪郭線を太めた/
細めた座標に変換される。そしてステップ3−4におい
て、ステップ3−3で得られた太めた/細めた座標デー
タを入力パラメータの出力サイズに応じて拡大縮小処理
を行う。この時の計算方法は、要求出力サイズを(A
x,Ay)、ステップ3−3で得られたそれぞれの座標
値を(x,y)、拡大縮小処理後のそれぞれの座標値を
(X,Y)、格納されている文字枠のサイズを(Mx,
My)とすると、
【0029】
【数1】 (X,Y)=(x×Ax/Mx,y×Ay/My) となる。上記計算を1文字が持つすべての座標列におい
て計算する。また、このときステップ3−3で得られた
各座標点における属性フラグは変化しない。そしてステ
ップ3−5においては入力パラメータの出力形式で判定
し、出力形式が輪郭座標データ出力であれば、ステップ
3−6に進み、ステップ3−4で得られた拡大縮小後の
座標点及び座標点属性のデータ列を要求側(表示器や印
刷装置等文字を出力する装置)へ返す。図6にその座標
出力の例を示す。またステップ3−5においてビットマ
ップ出力が要求されていれば、ステップ3−7へ進む。
ステップ3−7からステップ3−13においては、実際
に座標データからビットマップのデータを作成する処理
である。ステップ3−7においては、対象となる座標デ
ータが直線であるかあるいは曲線であるかを判定する。
対象となる座標データが直線である場合は、その座標点
を直線のスタート点とし、次の座標点を直線のエンド点
としてステップ3−8へ進む。対象となるデータが曲線
データである場合はその座標点から曲線終了フラグが付
されている座標データまでを曲線データとしてステップ
3−9へ進む。ステップ3−8においては直線を発生さ
せる処理を行う。
【0030】このときの直線発生方法はDDAと呼ばれ
る画像処理方法によって発生させる。そしてDDAによ
って発生させた座標データは図7に示す様な塗りつぶし
用座標テーブルに格納する。図7に示す塗りつぶし用座
標テーブルは出力領域の各y座標に対して、x座標のス
タート座標/ストップ座標を格納していく。DDAによ
って同一のy座標に対して複数のx座標が存在する場合
は、ストロークの輪郭に対して最も外側になるようにx
座標を設定する。ステップ3−9においては曲線データ
を短い直線(ショートベクトル)の集合に変換する処理
を行う。図8に3次ベジェ曲線をショートベクトルの集
合に変換する様子を示している。点A,B,C,Dはス
テップ3−3より得られた座標変換後の曲線データ(3
次ベジェ曲線構成点)であり、これらの点からまず点
a,点b,点cを求める。点aは点Aと点Bの中点、点
bは点Bと点Cの中点、点cは点Cと点Dの中点であ
る。そして次に点x,点y,点zを求める。点xは点a
と点bの中点、点zは点bと点cの中点、点yは点xと
点zの中点である。そうすると点列Aaxyが新しい1
つの3次ベジェ構成点、そして点列yzcDがもう1つ
の3次ベジェ構成点となる。そしてそれぞれのベジェ構
成点を同様な操作で細分化していき、ある判定基準を満
たしたらそのとき細分化を中止する。そしてそれまでに
できた3次ベジェの構成点列がショートベクトルの集合
となる。
【0031】そしてステップ3−10において、ステッ
プ3−9で求めたショートベクトルの集合に基づいて、
塗りつぶし用座標テーブルに格納する。このテーブルに
対する格納方法は、ステップ3−8で示した方法とまっ
たく同様であり、すべてのショートベクトルに対して処
理を終了するまで繰り返す。そしてステップ3−11に
おいて1つの輪郭の座標データがすべて終了したかどう
かを判定し、処理が終了していればステップ3−13へ
進み、処理が終了していなければステップ3−12に進
む。ステップ3−12においては次のデータを処理する
ために現在の座標データへのポインタを更新する。直線
の場合であれば次の座標データへポインタを更新し、曲
線データであれば曲線の終了座標点までポインタを更新
する。そしてステップ3−7に戻って新たに直線/曲線
判定をして打点を行っていく。
【0032】ステップ3−13においては1文字分すべ
ての輪郭データに対して処理を終了したかどうかを判定
し、すべての輪郭に対し処理を終了していればステップ
3−15に進み、処理を終了していなければステップ3
−14に進む。そしてステップ3−14においては、1
輪郭が終了した後なので次の輪郭の先頭にポインタを進
めステップ3−7に戻る。ステップ3−15においては
すべての座標データに対して2つの平面への打点処理が
終了しているので、図9に示す様にステップ3−8及び
ステップ3−10で塗りつぶし用座標テーブルに格納さ
れた各y座標に対するx座標に対してノンゼロワインデ
ィング方式で塗りつぶしを行う。この方式は各スキャン
ラインの左側からスキャンしていき、スタート点であれ
ばフラグの値をインクリメントし、エンド点であればデ
クリメントする。そしてフラグの値が0でなければその
間は1として塗りつぶし処理を行う。そしてステップ3
−16において要求側の指定する領域にステップ3−1
5で求められた1文字分のデータを返して処理を終了す
る。
【0033】次に図10のフローチャートを用いて図3
のステップ3−3における太め/細め処理の詳細を詳述
する。本発明における太め/細めの処理はストロークに
太める/細めるパラメータを変化させ、それぞれの輪郭
点座標を変更する。図10のステップ10−1ではウエ
イトに応じて輪郭の太さのパラメータを決定する。太さ
を決定するパラメータは輪郭に対してそれぞれx方向、
y方向の独立に値を持ち、横線の太め量及び縦線の太め
量をそれぞれ独立に管理する。これは例えば図11に示
すように明朝体を太めようとした場合、明朝体の横線は
さほど太くせずに済むのに縦線は大きく太める必要があ
るため、x方向及びy方向に対してそれぞれ異なる値を
設定する必要があるからである。また図12に示すよう
に丸ゴシック体の場合は、横方向及び縦方向はほぼ同じ
量だけ太らせている。従って、それぞれの書体に対して
も太めるべき値を変化させる必要がある。
【0034】そこで図13に示すようにそれぞれの書体
とウエイトにおける横線と縦線に対して線の中心から輪
郭までの標準値のデータをあらかじめテーブルでROM
2内に持たせ、入力された対象座標データの書体及びウ
エイトと出力した座標データのウエイトから輪郭の太め
量をそれぞれx方向及びy方向に対してCPU1により
決定する。このときこの太め量が正の値となる場合は太
め処理が行われ、太め量が負の値となる場合には細め処
理が行われることになる。そしてステップ10−2にお
いて、ステップ10−1で求めた太め量から対象とする
ストロークの太め量を計算する。ステップ10−1で得
られたx方向の太め量をnw、y方向の太め量をnhと
する。求める太め量の縦成分をα、横成分をβとして、
対象とする点が横線の構成点であった場合、元データの
横線の線幅は、図19に示される横線の上側と下側の差
分をとり、その値をwhとすると、標準線幅と現在対象
としている横線の線幅との幅の割合は、w:whとなる
ので、この割合で太め量の調整を行う。従って、
【0035】
【数2】α=nw×wh/w となる。
【0036】同様に対象とする点が縦線の構成点であっ
た場合、元データの縦線の線幅は、縦線の右側と左側の
差分をとり、その値をwvとすると、標準線幅と現在対
象としている縦線の線幅との幅の割合は、h:wvとな
るので、この割合で太め量の調整を行う。従って、
【0037】
【数3】β=nh×wv/h となる。
【0038】ここで、標準線幅は図4(b)に示すよう
に1書体に対して横線幅/縦線幅という様にその書体の
持つ線幅の標準値が格納されている。そしてステップ1
0−3においては、ステップ10−2で求めたx方向及
びy方向の太め量に対して調整を行う。この調整は、図
18及びステップ10−20で説明するように、一時的
に文字の領域が太め処理を施すことによって広がり、そ
れをもとの大きさに戻すために縮小をかけ、指定の太め
量よりも幅が若干狭くなってしまう。従って、元の大き
さに戻したときに指定の太さになるように、一時的な文
字の領域での太め量を求める必要がある。この時、輪郭
の太め量を調整する計算式を以下に示す。太め処理を施
す前の文字の横領域をW、縦領域をH、ステップ3−2
で取り込んだ標準の縦線幅をw、横線幅をh、ステップ
10−1で得られた輪郭太め量の縦線分をα、横線分を
β、図18の領域が広がったときの太め量の縦線分を
m、横線分をnとすると、領域が広がったときのサイズ
は(W+2m,H+2n)、また、この時の太まった線
幅(w+2m,h+2n)、また、元のサイズに戻した
ときの線幅は(w+2α,h+2β)となる。
【0039】そして元のサイズに戻すための縮小率は、
(W/(W+2m),H/(H+2n))となるので、
【0040】
【数4】w+2α=(w+2m)×W/(W+2m)
【0041】
【数5】h+2β=(h+2n)×H/(H+2n) そしてこの式をm,nについて解くと、
【0042】
【数6】m=αw/(W−w−2α)
【0043】
【数7】n=βh/(H−h−2β) となり、輪郭に対して調整する値(m,n)が決定す
る。
【0044】ステップ10−4においては各ストローク
のオフセット情報を太さパラメータに応じて変化させ
る。この計算方法は、オフセットのx座標及びy座標か
ら太さパラメータのx値及びy値を減じることによって
求められる。
【0045】そして、ステップ10−5からステップ1
0−16までの間で1輪郭構成点のすべての座標点列に
対して、太め/細め処理を行う。ステップ10−5では
まず処理を施すための対象点を取り込む。そしてステッ
プ10−6で対象点の両隣の点を取り込む。そしてステ
ップ10−7において対象点とその両隣の点のなす角度
を求める。この時の計算式は以下のようになる。対象点
を点aとし、その両隣の点をそれぞれ点b,点cとする
と、ベクトルabとベクトルacからその間の角度をθ
とすると、
【0046】
【数8】
【0047】となり、θを求めることができる。そして
ステップ10−8に進み、θの角度によって移動すべき
点の動きを変化させる。この角度が鋭くない角(たとえ
ばθの値が30度以上)のときはステップ10−9に進
み、また角度が鋭い角(たとえばθの値が30未満)の
ときはステップ10−10に進む。
【0048】そしてまずステップ10−9ではθが鋭く
ない角のときの太め処理を行う。この様子は図14に示
すように対象点をB、対象点の1つ前の点をA、対象点
の次の点をCとすると、ベクトルAB、及びベクトルB
Cをなす角を2分する方向(つまり、単位ベクトルA
B、及び単位ベクトルBCとの合成ベクトル)に対し
て、輪郭の向きが左回りであれば右側に移動し、輪郭の
向きが右回りであれば左側に移動する。そしてステップ
10−1で求めたx太め量、y太め量に合わせてそれぞ
れ前記合成ベクトルのx成分及びy成分に対してかけ算
を行い、それぞれ求められた成分から新たな合成ベクト
ルを求め、その合成ベクトルを太め移動先として決定す
る。
【0049】このとき求められた座標値は1ストローク
の枠に対する座標値であるので、ステップ10−4で求
めたオフセット座標を加えて文字の原点からの座標値と
する。次にステップ10−10からステップ10−16
におけるθが鋭い角ではある場合(θの値が30度未
満)の太めの処理の説明を行う。ただし、太める移動先
が鋭角の外側になるのか内側になるのかによって、処理
を変える必要がある。そこでまずステップ10−10に
おいて太める移動先が鋭角の外側なのか内側なのかの判
定を行う。図15に示すように移動点Bが端点a,cか
ら遠ざかる場合は鋭角の外側と判定し、図17に示すよ
うに移動点Bが端点a,cに近づく場合は鋭角の内側と
判定する。
【0050】移動先が外側の場合はステップ10−11
へ進み、移動先が内側の場合にはステップ10−15へ
進む。そしてステップ10−11からステップで移動先
が外側のときの処理を行う。まずステップ10−11に
おいて、単純に鋭くない角のときと同様に太め処理のた
めの移動点Bを求める。しかし、鋭い角であるためこの
移動点は元の点から大きく移動してしまい、時には文字
領域からはみだしてしまう場合がある。よってこれを防
ぐために図15に示すように中間に新たな2点を設けて
元の点から極端にはなれないよう処理を施す。
【0051】そこでステップ10−12においてその新
たな2点を計算によって求める処理を行う。この計算方
法は、元の輪郭の3点を点a,点b,点cとするとベク
トルbBと同方向に距離が太め量の2倍の点Dを求め、
ベクトルbDに垂直なベクトルでストロークをカット
し、単純に太め処理を行った線分AB及び線分BCと交
わる点をそれぞれ点E及び点Fとすると、この2つの点
E及び点Fを新たな太め処理を行うための制御点として
登録することにする。このようにして求められた点座
標、点A,点E,点F,点Cが太め処理を施した新たな
輪郭構成点として登録される。そしてステップ10−1
3において対象とする書体が丸ゴシック体のように角を
丸める必要がある書体であるのかどうかを判定する。角
を丸める必要がなければ、点A,点E,点F,点Cをそ
のまま太め処理後の構成点として登録しステップ10−
17に進み、角を丸める必要がある書体であれば、ステ
ップ10−14へ進み、角を丸める処理を行う。
【0052】この処理では図16に示す様に線分EFの
中間に新たな点Gをとりそして線分EGあるいは線分G
Fと同じ長さの点をそれぞれ線分EA上に点Hを、線分
FC上に点Iをとる。そして線分HE,線分EG,線分
GF及び線分FIの中点それぞれ点J,点K,点L及び
点Mとすると、点列H,J,K,G及び点列G,L,
M,Iをそれぞれベジェの構成点として表現することが
可能となり、直線点列A,H、ベジェ曲線構成点列H,
J,K,G、ベジェ曲線構成点列G,L,M,I、直線
点列I,Cが角を丸めた新たな太め処理を施した輪郭構
成点として登録される。
【0053】以上ステップ10−11からステップ10
−14において鋭い角度のとき、かつ移動先が鋭角の外
側の場合の処理について説明した。次にステップ10−
15からステップ10−16において、移動先が鋭角の
内側の場合の処理について説明する。まずステップ10
−15において、単純に鋭くない角のときと同様に太め
処理のための移動点Bを求める。しかし、鋭い角である
ためこの移動点は元の点から大きく移動してしまい、時
にはストロークの線分をなくしてしまう場合がある。よ
ってこれを防ぐために図17に示す様に点列a,b,c
から求められた単純な太め用移動点列A,B,Cの点B
を点bに近づけるように配置し、ストロークの特徴を残
す必要がある。そこでステップ10−16においてその
近づけるための計算を行う。この計算方法は、ベクトル
bBと同方向に距離が太め量の2倍の点Dを求め、この
点を新たな太め処理の構成点とする。つまり点列A,
D,Cが鋭い角度のとき、かつ移動先が鋭角の内側の場
合のときのあらたな輪郭構成点として登録される。以上
の様にしてステップ10−10からステップ10−16
において、太め処理の対象となる点が鋭い角をなしてい
るときに移動先が鋭角の外側の場合、内側の場合のそれ
ぞれについて説明した。
【0054】そしてステップ10−5からステップ10
−16の処理を全輪郭点に対して処理することになる。
そしてステップ10−17において1輪郭分のすべての
座標点において処理を行っていればステップに進み、ま
だ処理すべき輪郭点が存在する場合には、ステップ10
−18に進み、次の輪郭点へポインタを進めて再度太め
処理を行う。ステップ10−19においては、1文字分
のすべての輪郭において処理を行ったかどうかを判定
し、すべて処理を行っていればステップ10−20へ進
み、まだ処理すべき輪郭が存在するときは、次の輪郭に
ポインタを進めて再度太め処理を行う。
【0055】そしてすべての輪郭座標点において太め処
理が施されたときに、ステップ10−20に進む。ステ
ップ10−20においては、太め/細め処理を行ったこ
とにより、図18に示すように文字の全体の枠が太め処
理の場合大きくなり、細め処理の場合は小さくなってし
まう。よって基の文字の全体枠に大きさを調整する必要
がある。その拡大/縮小量はステップ10−1で求めた
輪郭の太め量(細めの場合は負の値)の2倍分だけ太ま
っている。そこで、元の文字枠のX幅をW、輪郭の太め
量の横の値をmとし、Y幅をH、輪郭の太め量の縦の値
をnとし、太め処理を行った座標を(x,y)、調整後
の座標を(X,Y)とすると、
【0056】
【数9】(X,Y)=((x+m)×W/(W+2m),
(y+n)×H/(H+2n)) で計算することができる。そしてこの計算を1文字分す
べての座標点列において処理する。そしてステップ10
−21においては、ステップ10−20における拡大縮
小処理によって四捨五入における線幅の太さのばらつき
を調整する処理を行う。この処理は、図22に示すよう
に、横線においては基準となる輪郭点と従属する輪郭点
から調整を行う。この時の調整方法は、基準となる点P
9及びP10のy座標値をUyとすると、従属する点P
12及びP11のy座標値Dyの値は次の計算式によっ
て求められる。
【0057】
【数10】Dy=Uy+(h+2β) 同様の計算方法で、基準点P13及びP14に対して従
属する点P16及びP15を計算し、さらに基準点P1
7及びP18に対して従属する点P20及びP19を計
算する。このようにして横線に対する線幅の調整を所望
の幅に調整することが可能となる。また、図23に示す
ように縦線に関しても同様で、基準と輪郭と従属する輪
郭に対して、基準x座標をLx、従属x座標をRxとす
ると、
【0058】
【数11】Rx=Lx+(w+2α) となり、すべての登録してある線幅に関して、調整処理
を行うことによって、拡大縮小処理における線幅のばら
つきをなくすことが可能となる。このようにして図10
に示した太め処理を終了する。
【0059】〔第2実施例〕次に他の実施例について説
明する。ここで説明するのはあるウエイトの書体を要求
したとき、同一の書体がシステムに2つ以上存在したと
きの例である。このときは要求するウエイトを複数ある
同一の書体(ただし、ウエイトが異なる)の中からどの
ウエイトの書体を基にして処理するかが重要である。従
って基準となるウエイトの書体が決定すれば、その後の
ウエイト変換処理は前記実施例で示したものと同様の処
理できるのでここでは、基準となるウエイトの選択方法
のみについて説明し、それ以外は省略する。図24はそ
の詳細な処理の流れを示すフローチャートである。図2
4におけるステップ24−1において記憶装置(本例で
はROM3)にどの書体のどのウエイトが格納されてい
るかを検索する必要がある。そこで各書体のヘッダ部に
記憶されているヘッダ情報を参照してテーブルにデータ
存在情報を格納する。
【0060】図21の例では明朝体のウエイト3とウエ
イト7、丸ゴシック体のウエイト5、角ゴシック体のウ
エイト6、楷書体のウエイト4とウエイト8が格納され
ていることが分かる。そしてステップ24−2において
は、まず要求されたウエイトの情報がすでにROMある
いはハードディスク装置等の他の記憶装置に格納されて
いるか否かを判定する。この時はステップ24−1で作
成されたテーブルを検索していき、要求された書体とウ
エイトの情報によりデータが記憶装置に格納されている
か否かが分かる。要求されたウエイトの情報が記憶装置
に格納されていれば、ステップ24−3へ進み、格納さ
れていなければステップ24−4へ進む。ステップ24
−3は要求されたウエイトの情報がすでに記憶装置に格
納されていた場合の例であり、この時は太め/細め処理
を行う必要がないので記憶装置から座標データを読み込
み、その座標データから出力サイズに応じて拡大縮小を
行い、ビットマップフォントを作成して処理を終了す
る。
【0061】ステップ24−4では、要求されたウエイ
トの情報が記憶装置にはない場合であり、この時は太め
/細め処理を行って要求されたウエイトの文字を出力す
る。そこでその太め/細め処理を行う元となるデータを
選択する必要がある。一般に細め処理を行う場合に比べ
て太め処理を行ったほうが品質的に劣化が少なくて済む
のでここでは、要求されたウエイトよりも小さいウエイ
トの情報が記憶装置に格納されているか否かをステップ
24−1で作成したテーブルを元に判定を行う。そして
要求されたウエイトよりも小さいウエイトの情報が記憶
装置に格納されていればステップ24−5に進み、要求
されたウエイトの情報が記憶装置に格納されていなけれ
ばステップ24−6に進む。
【0062】例えばウエイト5の明朝体を出力したい場
合には、ウエイト3の明朝体が記憶装置に存在するので
ステップ24−5に進み、ウエイト3の角ゴシック体を
出力したい場合にはそれより小さいウエイトの角ゴシッ
ク体は存在しないのでステップ24−6に進む。ステッ
プ24−5においては太め処理の元となるウエイトの書
体の選択を行い、その太め処理のx方向、y方向のパラ
メータの設定を行う。ウエイト5の明朝体の出力要求の
場合、ウエイト3の明朝体が存在するのでウエイト3と
ウエイト5の輪郭におけるx方向、y方向の差分を太め
パラメータとしてセットする。ステップ24−6におい
ては細め処理の元となるウエイトの書体の選択を行い、
その細目処理の輪郭についてx方向、y方向のパラメー
タの設定を行う。ウエイト3の角ゴシック体の出力要求
の場合、ウエイト6の角ゴシック体が存在するのでウエ
イト3とウエイト6の輪郭におけるx方向、y方向の差
分を細めパラメータとしてセットする。以上のようにス
テップ24−5及びステップ24−6で太めあるいは細
めのパラメータのセットをした後は前記第一の実施例で
説明したとおり処理を行い、所望のウエイトの文字を出
力する。ここでは対象文字よりウエイトが小さい書体の
データが存在するか否かについて説明したが、対象文字
よりもウエイトが大きい書体のデータが存在するか否か
について判定を行っても良い。また、対象文字のウエイ
トに最も近いウエイトのデータを選択して、そのデータ
を基にウエイト変換処理を行っても良い。
【0063】〔第3実施例〕次に他の実施例について説
明する。ここで説明するのは前記第1,第2の実施例で
説明した太め処理をグレイスケールフォントに対しても
適用できることを説明する。ビットマップフォントの各
ドットの値が0または1の2値のフォントであるのに対
して、グレイスケールフォントは各ドットが0〜3ある
いは0〜15あるいは0〜255等多値を扱うことが可
能な多値フォントである。そしてこのグレイスケールフ
ォントを生成するための方法として、一般には図20に
示すようにn2 階調のグレイスケールフォントを出力す
るときは、図3のステップ3−4において出力サイズ要
求の縦方向、横方向をそれぞれn倍して、その出力サイ
ズによってビットマップフォントを作成する。
【0064】そして図20に示すように縦横nビットで
分割していきそれぞれのn×nの分割矩形領域の中に何
ビット1が含まれているかによってグレイスケールの1
ドットに対する多値の値が決定される。従って第1の実
施例をグレイスケールフォントに応用した場合、図25
に示すフローチャートのようになる。このフローチャー
トは、前記第1の実施例で説明したビットマップフォン
ト発生あるいは輪郭座標出力のフローとほとんど同様で
あり、それぞれのステップは図3のステップとほぼ一致
しているので、ここではグレイスケールフォントを発生
させることによって処理が異なるステップのところのみ
を説明する。異なるステップは25−1,ステップ25
−4であり、ステップ25−16及びステップ25−1
7は追加である。ステップ25−1においては、入力パ
ラメータの取り込みであり、入力パラメータにグレイス
ケール情報が追加される。
【0065】パラメータは、文字コード、書体、ウエイ
ト情報、文字の出力サイズ、グレイのレベル、出力形
式、出力器の特性等である。文字コードとしてはJIS
コード、シフトJISコード、EUCコード、UNIコ
ード等のあらかじめ対象となるシステムがどの文字コー
ド体系によって定められているかによって決まる。また
書体としては、明朝体、ゴシック体、丸ゴシック体等の
システムがあらかじめ内蔵しているデータあるいはオプ
ションとして加えられたデータの中から選ばれる。そし
てこの時のデータの内容は、グレイスケールフォント発
生のための特別なデータは格納されておらず、ビットマ
ップフォント発生のときのデータとまったく同様であ
る。ウエイト情報は、前記書体の線の太さ情報であり、
ここでは極細、細、中、太、極太等の情報が与えられ
る。文字の出力サイズとしては、実際にフォントデータ
を出力する際にどれくらいの大きさで出力するかの情報
であり、x方向、y方向のサイズが要求される。グレイ
のレベルは、グレイスケールフォントを発生させる際に
何階調でグレイスケールフォントを作成するかの情報で
ある。
【0066】これは4階調、16階調、256階調等出
力器の特性に応じて設定される。出力形式は、所望する
フォントの出力データ形式であり、輪郭座標データ出
力、ビットマップフォント出力、グレイスケールフォン
ト出力、1ドットの表現形式等がある。1ドットの表現
形式は例えばグレイスケールフォントの場合は、1ドッ
トを1バイトで表現するのか、あるいは2ドットや4ド
ットを1バイトで表現するのかといった表現形式の指定
である。出力器の特性は、グレイスケールフォントを作
成する際にどのようにしてグレイ値を決定すると対象と
する出力器に対して最も最適なグレイスケールフォント
が得られるかといった情報である。ステップ25−4に
おいては、出力サイズとグレイスケールフォントのグレ
イレベルによって、ステップ25−2で読み込んだ座標
データに対して拡大縮小処理を行う。このとき拡大縮小
するための計算式は、要求出力サイズを(Ax,A
y)、グレイレベルをn、ステップ25−3で得られた
それぞれの座標値を(x,y)、拡大縮小処理後のそれ
ぞれの座標値を(X,Y)、格納されているデータの文
字枠のサイズを(Mx,My)とすると、
【0067】
【数12】(X,Y)=(x×n×Ax/Mx,y×n
×Ay/My) となる。ステップ25−16、及びステップ25−17
においては、ステップ25−15で作成されたビットマ
ップフォントからグレイスケールフォントを作成する処
理を行う。まずステップ25−16においては、入力パ
ラメータとして得られた出力器の特性によって、グレイ
スケール変換テーブルの選択を行う。グレイスケールフ
ォント変換テーブルは図26に示すように、16階調の
場合4×4のマスクであらかじめ出力器の特性を表現す
るための値を格納しておく。図26の(a)の例では出
力器の輝度特性がすべて均一になっている場合の例であ
る。図26(b)の場合は、輝度がドットの中心部が高
く周辺部が低い場合の例である。また図26(c)の場
合は、輝度がドットの周辺部が高く中心部が低い場合の
例である。これらの中から最も出力器の輝度特性に適し
たテーブルを選択する。
【0068】そしてステップ25−17において、ステ
ップ25−16で選択されたテーブルを元にグレイスケ
ールフォントを作成する。この様子を図27を例にとっ
て説明する。図27は、ステップ25−15で求めたビ
ットマップフォントであり、その縦横のサイズはそれぞ
れグレイレベルnに対して、√n倍で作成されている。
従って、縦横をそれぞれ√nで分割して、√n×√nの
ます目を抽出し、そのます目の1つに注目し、そのます
目のビットの値とステップ25−16で求められたテー
ブルのます目の値とをそれぞれ対応するます目どうしを
かけ算する。そしてその結果の合計を取ることによっ
て、対象となるドットのグレイスケール値が求められ
る。図27の例では、16階調のグレイスケールフォン
トを出力する場合の例であり、4×4のます目に対して
図26(b)のテーブルが選択された場合の例を示し
た。この操作をすべてのます目に対して行うことによっ
て、図28に示すようなグレイスケールフォントが生成
される。そしてステップ25−18で出力形式に応じて
グレイスケールフォントを格納して要求側へデータを返
す。このとき出力形式が1ドットに対して1バイトの要
求であればそれぞれのます目の値を1バイトに詰めて格
納する。また隣り合う2点を1バイトに詰める要求であ
れば、1ドットを4ビットに詰めてデータを格納し、要
求側へ返して処理を終了する。
【0069】〔第4実施例〕次に第4の実施例の詳細を
図29のフローチャートを用いて説明する。ここで説明
する例は、ウエイトの異なる同一の書体がシステムに1
つ存在するとき、そのデータを用いて他の異なるウエイ
トのデータを発生させるときの例である。ステップ29
−1において入力パラメータを受け取る。ここで入力パ
ラメータとしては出力すべき文字の文字コード、書体、
ウエイト、出力サイズ、出力形式等がある。文字コード
としてはJISコード、シフトJISコード、EUCコ
ード、UNIコード等のあらかじめ対象となるシステム
がどの文字コード体系によって定められているかによっ
て決まる。また書体としては、明朝体、ゴシック体、丸
ゴシック体等のシステムがあらかじめ内蔵しているデー
タあるいはオプションとして加えられたデータの中から
選ばれる。ウエイトは上述したように書体の線の太さ情
報であり、ここでは極細、細、中、太、極太等の情報が
与えられる。出力サイズは実際にフォントデータを出力
する際にどれ位の大きさで出力するかの情報である。出
力形式は所望とするフォントの出力データ形式であり、
輪郭座標データ出力、ビットマップ出力等の要求が出さ
れる。
【0070】次にステップ29−2において対象文字の
座標データを読み込む。このデータはROM,RAM,
ハードディスク,フロッピーディスク等任意の記憶装置
にあらかじめ格納されており、ステップ29−1で取り
込んだ入力情報の書体情報や文字コード情報から検索し
て必要分読み込む。このとき取り込む入力情報は図30
に示すように文字の輪郭の特徴点を抽出した座標情報で
あり、それぞれの点に対して直線データ/曲線データ判
別フラグ、輪郭開始点/終了点フラグ、線幅を管理する
情報等の属性情報を持つ。そしてここで扱う曲線データ
の補間式は2次あるいは3次Bスプライン曲線であった
り、2次あるいは3次ベジェ曲線であったりするが、ど
の補間式を使用しているかはあらかじめ決定されてい
る。また、文字枠を示す座標の最小値は0、最大値は8
00等で表現されている。また、線幅を管理する情報と
しては、横線及び縦線における標準線幅、横線あるいは
縦線の情報を知らせるための座標点番号である。標準線
幅に関しては、ここで取り込んだ書体全体に対して1つ
の共通の値であってもよいし、1文字単位に設定された
個別の値であってもよい。
【0071】そしてステップ29−3においては取り込
んだ座標データを入力パラメータのウエイト情報に応じ
て太め/細め処理を行う。この時の処理は図38のフロ
ーチャートを用いて後で詳述するが、この太め/細め処
理を行った結果図31に示すように各々の輪郭線を太め
た/細めた座標に変換される。そしてステップ29−4
において、ステップ29−3で得られた太めた/細めた
座標データを入力パラメータの出力サイズに応じて拡大
縮小処理を行う。この時の計算方法は、要求出力サイズ
を(Ax,Ay)、ステップ29−3で得られたそれぞ
れの座標値を(x,y)、拡大縮小処理後のそれぞれの
座標値を(X,Y)、格納されている文字枠のサイズを
(Mx,My)とすると、
【0072】
【数13】 (X,Y)=(x×Ax/Mx,y×Ay/My) となる。上記計算を1文字が持つすべての座標列におい
て計算する。また、このときステップ29−3で得られ
た各座標点における属性フラグは変化しない。そしてス
テップ29−5においては入力パラメータの出力形式で
判定し、出力形式が輪郭座標データ出力であれば、ステ
ップ29−6に進み、ステップ29−4で得られた拡大
縮小後の座標点及び座標点属性のデータ列を要求側へ返
す。図32にその座標出力の例を示す。またステップ2
9−5においてビットマップ出力が要求されていれば、
ステップ29−7へ進む。ステップ29−7からステッ
プ29−13においては、実際に座標データからビット
マップのデータを作成する処理である。ステップ29−
7においては、対象となる座標データが直線であるかあ
るいは曲線であるかを判定する。
【0073】対象となる座標データが直線である場合
は、その座標点を直線のスタート点とし、次の座標点を
直線のエンド点としてステップ29−8へ進む。対象と
なるデータが曲線データである場合はその座標点から曲
線終了フラグが付されている座標データまでを曲線デー
タとしてステップ29−9へ進む。ステップ29−8に
おいては直線を発生させる処理を行う。このときの直線
発生方法はDDAと呼ばれる画像処理方法によって発生
させる。
【0074】そしてこのとき2つの平面に打点を行う。
1つは塗りつぶし用平面であり、図33に示す様に1つ
のY座標に対してX座標を1つのみ打点していく。なぜ
なら塗りつぶしを行うときは各ラインで左側から右側に
スキャンしていき、奇数個目の1から偶数個目までの1
までの間を1で塗りつぶすため1つのY座標に対して1
つのX座標にしておかないとうまく塗りつぶすことがで
きなくなるためである。そしてこの時の打点する方法
は、対象とする座標点における塗りつぶし用平面のドッ
トの値と1の排他的論理和(XOR)の論理演算を行
い、その結果を塗りつぶし用平面の対象点に格納する。
【0075】そしてもう1つの平面は、輪郭OR用平面
であり、図34に示す様にこの平面に対しては1つのY
座標に対して直線にかかっているすべてのX座標を1に
する。なぜなら塗りつぶし用平面で抜けたビットをこの
輪郭OR用平面で補うためである。ステップ29−9に
おいては曲線データを短い直線(ショートベクトル)の
集合に変換する処理を行う。図35に3次ベジェ曲線を
ショートベクトルの集合に変換する様子を示している。
点A,B,C,Dはステップ29−3より得られた座標
変換後の曲線データ(3次ベジェ曲線構成点)であり、
これらの点からまず点a,点b,点cを求める。点aは
点Aと点Bの中点、点bは点Bと点Cの中点、点cは点
Cと点Dの中点である。そして次に点x,点y,点zを
求める。点xは点aと点bの中点、点zは点bと点cの
中点、点yは点xと点zの中点である。そうすると点列
Aaxyが新しい1つの3次ベジェ構成点、そして点列
yzcDがもう1つの3次ベジェ構成点となる。そして
それぞれのベジェ構成点を同様な操作で細分化してい
き、ある判定基準を満たしたらそのとき細分化を中止す
る。そしてそれまでにできた3次ベジェの構成点列がシ
ョートベクトルの集合となる。そしてステップ29−1
0において、ステップ29−9で求めたショートベクト
ルの集合に基づいて2つの平面に打点を行う。この2つ
の平面における打点の方法はステップ29−8で示した
方法とまったく同様であり、すべてのショートベクトル
に対して処理を終了するまで繰り返す。
【0076】そしてステップ29−11において1つの
輪郭の座標データがすべて終了したかどうかを判定し、
処理が終了していればステップ29−13へ進み、処理
が終了していなければステップ29−12に進む。ステ
ップ29−12においては次のデータを処理するために
現在の座標データへのポインタを更新する。直線の場合
であれば次の座標データへポインタを更新し、曲線デー
タであれば曲線の終了座標点までポインタを更新する。
そしてステップ29−7に戻って新たに直線/曲線判定
をして打点を行っていく。ステップ29−13において
は1文字分すべての輪郭データに対して処理を終了した
かどうかを判定し、すべての輪郭に対し処理を終了して
いればステップ29−15に進み、処理を終了していな
ければステップ29−14に進む。そしてステップ29
−14においては、1輪郭が終了した後なので次の輪郭
の先頭にポインタを進めステップ29−7に戻る。ステ
ップ29−15においてはすべての座標データに対して
2つの平面への打点処理が終了しているので、図36に
示す様に塗りつぶし用平面で各スキャンライン単位で左
側からスキャンしていき、奇数個目の1から偶数個目の
1までの間を1で塗りつぶす処理を行う。そしてすべて
のスキャンラインに対して塗りつぶし処理を行う。そし
てステップ29−16においては図37に示す様に、ス
テップ29−15で求められた塗りつぶし平面のデータ
と、ステップ29−8及びステップ29−10において
求められた輪郭OR用平面のデータのORをとって1文
字のビットマップデータを完成させる。そしてステップ
29−17において要求側の指定する領域にステップ2
9−16で求められた1文字分のデータを返して処理を
終了する。
【0077】次に図38のフローチャートを用いて図2
9のステップ29−3における太め/細め処理の詳細を
詳述する。本発明における太め/細めの処理は図30の
(a)に示すような外側の輪郭と図30の(b)に示す
ような内側の輪郭によって太める/細めるパラメータを
変化させるのであるが、輪郭点座標列に外輪郭と内輪郭
の区別がつけられていないので、その判定を行い、外輪
郭に対しては外輪郭太め/細めパラメータを、内輪郭に
対しては内輪郭太め/細めパラメータを適用することに
よってそれぞれの輪郭点座標を変更する。ただし輪郭を
構成する外側の輪郭点列は左回りの場合は、内側の輪郭
点列は右回りで構成されている。また外側の輪郭点列が
右回りの場合は、内側の輪郭点列は左回りで構成されて
いるものとする。
【0078】図38のステップ38−1からステップ3
8−3ではステップ38−4で処理する対象とする輪郭
が外側なのか内側なのかを判定するための前処理を行
う。ここでの処理はスタート点とスタート点の両側の2
点を抽出して図39に示すようにスタート点をS、スタ
ート点の1つ前の点(その輪郭の最終点)をA、スター
ト点の次の点をBとすると、ベクトルAS、及びベクト
ルSBのなす角度を2分割する方向に前処理用の点を設
ける。このとき外輪郭が左回りのときはベクトルの方向
に向かって右側に、外輪郭が右回りのときはベクトルの
方向に向かって左側にある定められた値分スタート点か
ら移動させる。そしてステップ38−4に進み、ステッ
プ38−3で求められた前処理用の点を基に対象とする
輪郭が外輪郭であるのかあるいは内輪郭であるのかを判
定する。
【0079】この処理については図50のフローチャー
トを用いて詳述する。そしてステップ38−5ではウエ
イトに応じて外輪郭の太さ及び内輪郭の太さのパラメー
タを決定する。太さを決定するパラメータは外輪郭及び
内輪郭に対してそれぞれx方向、y方向の独立に値を持
ち、横線の太め量及び縦線の太め量をそれぞれ独立に管
理する。これは例えば図40に示すように明朝体を太め
ようとした場合、明朝体の横線はさほど太くせずに済む
のに縦線は大きく太める必要があるため、x方向及びy
方向に対してそれぞれ異なる値を設定する必要があるか
らである。また図41に示すように丸ゴシック体の場合
は、横方向及び縦方向はほぼ同じ量だけ太らせている。
従って、それぞれの書体に対しても太めるべき値を変化
させる必要がある。そこで図42に示すようにそれぞれ
の書体とウエイトにおける横線と縦線に対して線の中心
から外輪郭あるいは内輪郭までの標準値のデータをあら
かじめテーブルでもたせ、入力された対象座標データの
書体及びウエイトと出力したい座標データのウエイトか
ら外輪郭及び内輪郭の太め量をそれぞれx方向及びy方
向に対して決定する。このときこの太め量が正の値とな
る場合は太め処理が行われ、太め量が負の値となる場合
には細め処理が行われることになる。
【0080】そしてステップ38−6においてステップ
38−5で取り込んだ太め量の値を各ストロークの幅に
あった太め量に調整する。ここでは、ステップ29−2
で取り込んだ太められる元データの水平線及び垂直線そ
れぞれの標準線幅とステップ38−4で取り込んだx方
向及びy方向の太め量を元にして、それぞれのストロー
クの線幅にあった太め量を計算する。このとき以下のよ
うに処理を行う。
【0081】まず、現在対照となる点が横線あるいは縦
線の構成点であるかどうかをチェックする。横線・縦線
の構成点でない場合(ステップ29−2で取り込んだ線
幅管理属性情報に含まれない点)は、特に調整する必要
はないので、何もせずにステップ38−7に進む。そし
て横線・縦線の構成点の場合は以下のような計算を行
う。
【0082】水平線の標準線幅をw、垂直線の標準線幅
をhとし、ステップ38−6で得られたx方向太め量を
nw、y方向の太め量をnhとする。求める太め量の縦
成分をαとし、横成分をβとすると、そして、対照とす
る点が横線の構成点であった場合、元データの横線の線
幅は図55に示される横線の上側と下側の差分をとり、
その値をwhとすると、標準線幅と現在対照としている
横線の線幅との幅の割合は、w:whとなるので、この
割合で太め量の調整を行う。従って、
【0083】
【数14】α=nw×wh/w となる。同様に、対照とする点が縦線の構成点だった場
合、元データの縦線の線幅は、縦線の右側と左側の差分
をとり、その値をwvとすると、標準線幅と現在対照と
している縦線の線幅との幅の割合は、h:wvとなるの
で、この割合で太め量の調整を行う。従って、
【0084】
【数15】β=nh×wv/h となる。そしてステップ38−7においては、ステップ
38−6で求めたx方向及びy方向の太め量に対して調
整を行う。この調整は、図47及びステップ38−23
で説明するように、一時的に文字の領域が太め処理を施
すことによって広がり、それをもとの大きさに戻すため
に縮小をかけ、指定の太め量よりも幅が若干狭くなって
しまう。従って、元の大きさに戻したときに指定の太さ
になるように、一時的な文字の領域での太め量を求める
必要がある。この時、外輪郭の太め量を調整する計算式
を以下に示す。
【0085】太め処理を施す前の文字の横領域をW、縦
領域をH、ステップ39−2で取り込んだ標準の縦線幅
をw、横線幅をh、ステップ38−6で得られた輪郭太
め量の縦線分をα、横線分をβ、図47の領域が広がっ
たときの太め量の縦線分をm、横線分をnとすると、領
域が広がったときのサイズは(W+2m,H+2n)、
また、この時の太まった線幅(w+2m,h+2n)、
また、元のサイズに戻したときの線幅は(w+2α,h
+2β)となる。
【0086】そして元のサイズに戻すための縮小率は、
(W/(W+2m),H/(H+2n))となるので、
【0087】
【数16】w+2α=(w+2m)×W/(W+2m)
【0088】
【数17】h+2β=(h+2n)×H/(H+2n) そしてこの式をm,nについて解くと、
【0089】
【数18】m=αw/(W−w−2α)
【0090】
【数19】n=βh/(H−h−2β) となり、外輪郭に対して調整する値が決定する。
【0091】同様に内輪郭に対しては、太め処理を施す
前の文字の横領域をW、縦領域をH、ステップ29−1
で取り込んだ標準の縦線幅をw、横線幅をh、ステップ
38−6で得られた輪郭太め量の縦線分をγ、横線分を
δ、領域が広がったときの太め量の縦線分をo、横線分
をpとすると、領域が広がったときのサイズは(W+2
m,H+2n)、また、この時の太まった線幅(w+2
o,h+2p)、また、元のサイズに戻したときの線幅
は(w+2γ,h+2δ)となる。
【0092】そして元のサイズに戻すための縮小率は、
(W/(W+2m),H/(H+2n))となるので、
【0093】
【数20】w+2γ=(w+2o)×W/(W+2m)
【0094】
【数21】h+2δ=(h+2p)×H/(H+2n) そしてこの式をo,pについて解くと、
【0095】
【数22】 o=((w+2γ)×(W+2m)/W−w)/2
【0096】
【数23】 p=((h+2δ)×(H+2n)/H−h)/2 となり、内輪郭に対して調整する値が決定する。
【0097】このようにして、調整すべき外輪郭及び内
輪郭の太め量がそれぞれ(m,n),(o,p)で決定
される。そして、ステップ38−8からステップ38−
19までの間で1輪郭構成点のすべての座標点列に対し
て、太め/細め処理を行う。ステップ38−8ではまず
処理を施すための対象点を取り込む。そしてステップ3
8−9で対象点の両隣の点を取り込む。そしてステップ
38−10において対象点とその両隣の点のなす角度を
求める。この時の計算式は以下のようになる。対象点を
点aとし、その両隣の点をそれぞれ点b,点cとする
と、ベクトルabとベクトルacからその間の角度をθ
とすると、
【0098】
【数24】
【0099】となり、θを求めることができる。そして
ステップ38−11に進み、θの角度によって移動すべ
き点の動きを変化させる。この角度が鋭くない角(たと
えばθの値が30度以上)のときはステップ38−12
に進み、また角度が鋭い角(たとえばθの値が30未
満)のときはステップ38−15に進む。
【0100】そしてまずステップ38−12ではθが鋭
くない角のときの太め処理を行う。この様子は図43に
示すように対象点をB、対象点の1つ前の点をA、対象
点の次の点をCとすると、ベクトルAB、及びベクトル
BCをなす角を2分する方向(つまり、単位ベクトルA
B、及び単位ベクトルBCとの合成ベクトル)に対し
て、外輪郭の向きが左回りであれば右側に移動し、外輪
郭の向きが右回りであれば左側に移動する。そしてステ
ップ38−6で求めたx太め量、y太め量に合わせてそ
れぞれ前記合成ベクトルのx成分及びy成分に対してか
け算を行い、それぞれ求められた成分から新たな合成ベ
クトルを求め、その合成ベクトルを太め移動先として決
定する。次にステップ38−13及びステップ38−1
9におけるθが鋭い角ではある場合(θの値が30度未
満)の太めの処理の説明を行う。ただし、太める移動先
が鋭角の外側なのか内側なのかによって処理を変える必
要がある。そこでまずステップ38−13において、移
動先が鋭角の外側なのか内側なのかを判定する。その判
定方法は図44に示すように、移動点Bが、|ab|<
|aB|の関係があれば鋭角の外側と判定し、|ab|
>|aB|の関係があれば鋭角の内側と判定する。
【0101】移動先が鋭角の外側のときはステップ38
−14へ進み、移動先が鋭角の内側である場合にはステ
ップ38−18へ進む。そしてステップ38−14から
ステップ38−16で移動先が鋭角の外側のときの処理
を行う。まずステップ38−14において、単純に鋭く
ない角のときと同様に太め処理のための移動点Bを求め
る。しかし、鋭い角であるためこの移動点は元の点から
大きく移動してしまい、時には文字領域からはみだして
しまう場合がある。よってこれを防ぐために図44に示
すように中間に新たな2点を設けて元の点から極端には
なれないよう処理を施す。そこでステップ38−15に
おいてその新たな2点を計算によって求める処理を行
う。
【0102】この計算方法は、元の輪郭の3点を点a,
点b,点cとするとベクトルbBと同方向に距離が太め
量の2倍の点Dを求め、ベクトルbDに垂直なベクトル
でストロークをカットし、単純に太め処理を行った線分
AB及び線分BCと交わる点をそれぞれ点E及び点Fと
すると、この2つの点E及び点Fを新たな太め処理を行
うための制御点として登録することにする。このように
して求められた点座標、点A,点E,点F,点Cが太め
処理を施した新たな輪郭構成点として登録される。そし
てステップ38−16において対象とする書体が丸ゴシ
ック体のように角を丸める必要がある書体であるのかど
うかを判定する。角を丸める必要がなければ、点A,点
E,点F,点Cをそのまま太め処理後の構成点として登
録しステップ38−20に進み、角を丸める必要がある
書体であれば、ステップ38−15へ進み、角を丸める
処理を行う。
【0103】ステップ38−17においては、この処理
は図45に示す様に線分EFの中間に新たな点Gをとり
その線分EGあるいは線分GFと同じ長さの点をそれぞ
れ線分EA上に点Hを、線分FC上に点Iをとる。そし
て線分HE,線分EG,線分GF及び線分FIの中点そ
れぞれ点J,点K,点L及び点Mとすると、点列H,
J,K,G及び点列G,L,M,Iをそれぞれベジェの
構成点として表現することが可能となり、直線点列A,
H、ベジェ曲線構成点列H,J,K,G、ベジェ曲線構
成点列G,L,M,I、直線点列I,Cが角を丸めた新
たな太め処理を施した輪郭構成点として登録される。以
上ステップ38−14からステップ38−17において
鋭い角度のとき、かつ移動先が鋭角の場合の処理につい
て説明した。次にステップ38−18からステップ38
−19において、移動先が鋭角の内側の場合の処理につ
いて説明する。
【0104】まずステップ38−18において、単純に
鋭くない角のときと同様に太め処理のための移動点Bを
求める。しかし、鋭い角であるためこの移動点は元の点
から大きく移動してしまい、時にはストロークの線分を
なくしてしまう場合がある。よってこれを防ぐために図
46に示す様に点列a,b,cから求められた単純な太
め用移動点列A,B,Cの点Bを点bに近づけるように
配置し、ストロークの特徴を残す必要がある。そこでス
テップ38−19においてその近づけるための計算を行
う。この計算方法は、ベクトルbBと同方向に距離が太
め量の2倍の点Dを求め、この点を新たな太め処理の構
成点とする。つまり点列A,D,Cが鋭い角度のとき、
かつ太め量が負の場合のときのあらたな輪郭構成点とし
て登録される。
【0105】以上の様にしてステップ38−13からス
テップ38−19において、太め処理の対象となる点が
鋭い角をなしているときに太め量が正の場合、負の場合
のそれぞれについて説明した。そしてステップ38−8
からステップ38−19の処理を全輪郭点に対して処理
することになる。そしてステップ38−20において1
輪郭分のすべての座標点において処理を行っていればス
テップ38−22に進み、まだ処理すべき輪郭点が存在
する場合には、ステップ38−21に進み、次の輪郭点
へポインタを進めて再度太め処理を行う。ステップ38
−22においては、1文字分のすべての輪郭において処
理を行ったかどうかを判定し、すべて処理を行っていれ
ばステップ38−23へ進み、まだ処理すべき輪郭が存
在するときは、次の輪郭にポインタを進めて再度太め処
理を行う。そしてすべての輪郭座標点において太め処理
が施されたときに、ステップ38−23に進む。ステッ
プ38−23においては、太め/細め処理を行ったこと
により、図47に示すように文字の全体の枠が太め処理
の場合大きくなり、細め処理の場合は小さくなってしま
う。よって基の文字の全体枠に大きさを調整する必要が
ある。その拡大/縮小量はステップ38−6で求めた調
整後の外輪郭の太め量(細めの場合は負の値)の2倍分
だけ太まっている。そこで、元の文字枠のX幅をW、輪
郭の太め量の横の値はm、Y幅はH、輪郭の太め量の縦
の値はnなので、太め処理を行った座標を(x,y)、
調整後の座標を(X,Y)とすると、
【0106】
【数25】(X,Y)=((x+m)×W/(W+2
m),(y+n)×H/(H+2n)) で計算することができる。そしてこの計算結果を四捨五
入を行い整数化し、1文字分すべての座標点列において
処理する。そしてステップ38−24においては、ステ
ップ38−23における拡大縮小処理によって四捨五入
における線幅の太さのばらつきを調整する処理を行う。
この処理は、図48に示すように3つの場合に分けられ
る。図48(a)の場合は、横線においては基準となる
方が外輪郭で従属する方も外輪郭の場合であり、この時
の調整方法は、基準となる点P13及びP14のy座標
値をUyとすると、従属する点P15及びP16のy座
標値Dyの値は次の計算式によって求められる。
【0107】
【数26】Dy=Uy+(h+2β) 図48(b)の場合は、横線において基準となる方が外
輪郭である従属する方が内輪郭、あるいは基準となる方
が内輪郭で従属する方が外輪郭の場合であり、この時の
調整方法は、基準となる点P1及びP2のy座標値をU
yとすると、従属する点P5及びP6のy座標値Dyの
値は次の計算式によって求められる。
【0108】
【数27】Dy=Uy+(h+β+δ) この計算式は、基準となる点P11及びP12のy座標
値をUyとして、従属する点P3及びP4をDyとした
ときも同様である。
【0109】図48(c)の場合は、横線において基準
となる方が内輪郭であり、従属する方も内輪郭の場合で
あり、この時の調整方法は、基準となる点P6及びP7
のy座標をUyとすると、従属する点P9及びP12の
y座標値Dyは次の計算式によって求められる。
【0110】
【数28】Dy=Uy+(h+2δ) このようにして横線に対する線幅の調整を所望の幅に調
整することが可能となる。また、図49に示すように縦
線に関しても同様で、基準が外輪郭で従属も外輪郭の場
合、基準x座標をLx、従属x座標をRxとすると、
【0111】
【数29】Rx=Lx+(w+2α) 基準が外輪郭で従属が内輪郭の場合、あるいは基準が内
輪郭で従属が外輪郭の場合は、
【0112】
【数30】Rx=Lx+(w+α+γ) 基準が内輪郭で従属が外輪郭の場合、
【0113】
【数31】Rx=Lx+(w+2γ) となり、すべての登録してある線幅に関して、調整処理
を行うことによって、拡大縮小処理における線幅のばら
つきをなくすことが可能となる。このようにして図38
に示した太め処理を終了する。
【0114】次に図50のフローチャートを用いて図3
8のステップ38−14における外輪郭/内輪郭判定処
理の実施例を詳述する。この処理は図51に示すように
輪郭座標点列ABCDに対してある点からそれぞれの2
点に対して左回り角度を正として角度を求めていき合計
の角度が2πになるときは輪郭の内側になると判定す
る。また図52に示すように同様な計算を行って角度の
総和が0になる場合は輪郭の外側にあると判定する。こ
こである点は図38のステップ38−1からステップ3
8−3で求められているので、図50のフローチャート
においては、その点からの角度の総和を求める処理を行
う。ステップ50−1において、まず角度の総和を0と
し初期化を行う。そしてステップ50−2において隣り
合った2点を抽出する。そしてステップ50−3である
点とその抽出した2点をベクトルで結び、間の角度を求
める。ある点をXとして抽出した2点をA,Bとする
と、その計算式は外積の式を用いて求めることができ
る。そしてその値をステップ50−4で角度の総和に加
える。ステップ50−5では1輪郭を2点ずつ抽出した
かどうかを判定し、すべての点において計算を実行した
場合にはステップ50−6に進み、まだ計算すべきデー
タが存在する場合にはステップ50−2に戻って再度計
算を行う。そしてステップ50−6では角度の総和が0
であるか2πになっているかを判定し、0であればステ
ップ50−7に進み、外輪郭フラグを立てて処理を終了
し、2πであればステップ50−8に進み、内輪郭フラ
グを立てて処理を終了する。本実施例において、第2実
施例を適用し、ある書体のウエイト情報を使用して異な
るウエイトの同一書体の文字を作成することができる。
【0115】〔第6実施例〕次に他の実施例について説
明する。この例は第3実施例とは処理が一部異なるグレ
イフォント発生例であり、第1,第2,第4実施例に対
して適用できる。ビットマップフォントの各ドットの値
が0または1の2値のフォントであるのに対して、グレ
イスケールフォントは各ドットが0〜3あるいは0〜1
5あるいは0〜255等多値を扱うことが可能な多値フ
ォントである。そしてこのグレイスケールフォントを生
成するための方法として、一般には図54に示すように
2 階調のグレイスケールフォントを出力するときは、
図3のステップ3−4又は図29のステップ29−4に
おいて出力サイズ要求の縦方向、横方向をそれぞれn倍
して、その出力サイズによってビットマップフォントを
作成する。そして図54に示すように縦横nビットで分
割していきそれぞれのn×nの分割矩形領域の中に何ビ
ット1が含まれているかによってグレイスケールの1ド
ットに対する多値の値が決定される。従って第1の実施
例をグレイスケールフォントに応用した場合、図56に
示すフローチャートのようになる。
【0116】このフローチャートは、前記第1,第4の
実施例で説明したビットマップフォント発生あるいは輪
郭座標出力のフローとほとんど同様であり、それぞれの
ステップは図3,図29のステップとほぼ一致している
ので、ここではグレイスケールフォントを発生させるこ
とによって処理が異なるステップのところのみを説明す
る。異なるステップは56−1,ステップ55−4であ
り、ステップ56−17及びステップ56−18は追加
である。ステップ56−1においては、入力パラメータ
の取り込みであり、入力パラメータにグレイスケール情
報が追加される。パラメータは、文字コード、書体、ウ
エイト情報、文字の出力サイズ、グレイのレベル、出力
形式、出力器の特性等である。文字コードとしてはJI
Sコード、シフトJISコード、EUCコード、UNI
コード等のあらかじめ対象となるシステムがどの文字コ
ード体系によって定められているかによって決まる。
【0117】また書体としては、明朝体、ゴシック体、
丸ゴシック体等のシステムがあらかじめ内蔵しているデ
ータあるいはオプションとして加えられたデータの中か
ら選ばれる。そしてこの時のデータの内容は、グレイス
ケールフォント発生のための特別なデータは格納されて
おらず、ビットマップフォント発生のときのデータとま
ったく同様である。ウエイト情報は、前記書体の線の太
さ情報であり、ここでは極細、細、中、太、極太等の情
報が与えられる。文字の出力サイズとしては、実際にフ
ォントデータを出力する際にどれくらいの大きさで出力
するかの情報であり、x方向、y方向のサイズが要求さ
れる。グレイのレベルは、グレイスケールフォントを発
生させる際に何階調でグレイスケールフォントを作成す
るかの情報である。これは4階調、16階調、256階
調等出力器の特性に応じて設定される。
【0118】出力形式は、所望するフォントの出力デー
タ形式であり、輪郭座標データ出力、ビットマップフォ
ント出力、グレイスケールフォント出力、1ドットの表
現形式等がある。1ドットの表現形式は例えばグレイス
ケールフォントの場合は、1ドットを1バイトで表現す
るのか、あるいは2ドットや4ドットを1バイトで表現
するのかといった表現形式の指定である。出力器の特性
は、グレイスケールフォントを作成する際にどのように
してグレイ値を決定すると対象とする出力器に対して最
も最適なグレイスケールフォントが得られるかといった
情報である。ステップ56−4においては、出力サイズ
とグレイスケールフォントのグレイレベルによって、ス
テップ56−2で読み込んだ座標データに対して拡大縮
小処理を行う。このとき拡大縮小するための計算式は、
要求出力サイズを(Ax,Ay)、グレイレベルをn、
ステップ56−3で得られたそれぞれの座標値を(x,
y)、拡大縮小処理後のそれぞれの座標値を(X,
Y)、格納されているデータの文字枠のサイズを(M
x,My)とすると、
【0119】
【数32】(X,Y)=(x×n×Ax/Mx,y×n
×Ay/My) となる。
【0120】ステップ56−17、及びステップ56−
18においては、ステップ28−16で作成されたビッ
トマップフォントからグレイスケールフォントを作成す
る処理を行う。まずステップ55−17においては、入
力パラメータとして得られた出力器の特性によって、グ
レイスケール変換テーブルの選択を行う。グレイスケー
ルフォント変換テーブルは図57に示すように、16階
調の場合4×4のマスクであらかじめ出力器の特性を表
現するための値を格納しておく。図57の(a)の例で
は出力器の輝度特性がすべて均一になっている場合の例
である。図57(b)の場合は、輝度がドットの中心部
が高く周辺部が低い場合の例である。また図57(c)
の場合は、輝度がドットの周辺部が高く中心部が低い場
合の例である。これらの中から最も出力器の輝度特性に
適したテーブルを選択する。そしてステップ55−18
において、ステップ56−17で選択されたテーブルを
元にグレイスケールフォントを作成する。
【0121】この様子を図58を例にとって説明する。
図57は、ステップ56−16で求めたビットマップフ
ォントであり、その縦横のサイズはそれぞれグレイレベ
ルnに対して、√n倍で作成されている。従って、縦横
をそれぞれ√nで分割して、√n×√nのます目を抽出
し、そのます目の1つに注目し、そのます目のビットの
値とステップ56−17で求められたテーブルのます目
の値とをそれぞれ対応するます目どうしをかけ算する。
そしてその結果の合計を取ることによって、対象となる
ドットのグレイスケール値が求められる。図58の例で
は、16階調のグレイスケールフォントを出力する場合
の例であり、4×4のます目に対して図57(b)のテ
ーブルが選択された場合の例を示した。この操作をすべ
てのます目に対して行うことによって、図59に示すよ
うなグレイスケールフォントが生成される。そしてステ
ップ55−19で出力形式に応じてグレイスケールフォ
ントを格納して要求側へデータを返す。このとき出力形
式が1ドットに対して1バイトの要求であればそれぞれ
のます目の値を1バイトに詰めて格納する。また隣り合
う2点を1バイトに詰める要求であれば、1ドットを4
ビットに詰めてデータを格納し、要求側へ返して処理を
終了する。
【0122】(その他の実施例)以上、太目/細目処
理、すなわち、線幅変更処理について、縦/横、書体、
外周/内周の相違に応じて線幅を異らせる例を示してき
たが、これらを選択的に組み合せ用いることができるこ
とは言うまでもない。
【0123】
【発明の効果】請求項1,13の発明では線幅の程度を
可変設定することにより文字の大きさに適した線幅を得
る。
【0124】請求項2の発明では、ドットパターンその
ものの線幅を修正せず、特徴点の修正を行うので、情報
処理量が少くてすむ。
【0125】請求項3の発明では、縦と横で線幅の太さ
を変えることにより形のよい文字が得られる。
【0126】請求項4の発明では、表示装置やプリンタ
等の出力装置の形態に合わせ好適な文字パターンが得ら
れる。
【0127】請求項5の発明では、書体毎に線幅を変え
ることにより書体に適した文字パターンが得られる。
【0128】請求項6,7,8,9の発明では、角ばっ
た書体について好適な文字パターンが得られる。
【0129】請求項8,9の発明では曲線の多い書体に
ついて好適な文字パターンが得られる。
【0130】請求項10の発明では、「日」のような輪
郭線が内周をもつような文字についても線幅のバランス
のとれた好適な文字パターンが得られる。
【0131】請求項11の発明では、外周データ、内周
データを自動判別するので、データの種別を示す情報が
不要であり、メモリ容量を節約できる。
【0132】請求項12の発明では予め、同一書体の文
字について複数種の線幅の輪郭データを用意して、所望
の線幅に最も近い輪郭データを修正するので形のよい文
字パターンが得られる。
【図面の簡単な説明】
【図1】本発明の内部構成を示すブロック図である。
【図2】本発明の他の内部構成を示すブロック図であ
る。
【図3】本発明の全体の流れを示すフローチャートであ
る。
【図4】本発明に用いるアウトラインフォントを説明す
る図である。
【図5】本発明によって変換されたアウトラインフォン
トを示す図である。
【図6】座標出力の場合の出力フォーマットを示す図で
ある。
【図7】座標データから塗りつぶしテーブルを作成する
様子を示す図である。
【図8】3次ベジェ曲線を分解する様子を示す図であ
る。
【図9】塗りつぶしテーブルからビットマップフォント
を作成する様子を示す図である。
【図10】太め処理の詳細を示すフローチャートであ
る。
【図11】明朝体の太め処理結果を示す図である。
【図12】丸ゴシック体の太め処理を示す図である。
【図13】太めパラメータを決定するために用いるテー
ブルを示す図である。
【図14】太め処理を行っている様子を示す図である。
【図15】太め量が正で鋭い角度のとき点を分割する様
子を示す図である。
【図16】分割した点を丸接合する様子を示す図であ
る。
【図17】太め量が負のときの鋭い角度の対応を示す図
である。
【図18】太め処理によって不都合が生じる様子を示す
図である。
【図19】各ストローク単位で線幅調整を行う様子を示
す図である。
【図20】グレイスケールフォントにするために作成す
るビットマップを示す図である。
【図21】太めパラメータを決定するために用いるテー
ブルを示す図である。
【図22】横線における線幅調整の様子を示す図であ
る。
【図23】縦線における線幅調整の様子を示す図であ
る。
【図24】本発明の他の実施例の全体の流れを示すフロ
ーチャートである。
【図25】本発明の他の実施例の全体の流れを示すフロ
ーチャートである。
【図26】グレイスケールフォントに変換するための基
本概念図である。
【図27】グレイスケールフォントに変換するための様
子を示す図である。
【図28】グレイスケールフォントに変換された様子を
示す図である。
【図29】本発明の全体の流れを示すフローチャートで
ある。
【図30】本発明に用いるアウトラインフォントを説明
する図である。
【図31】本発明によって変換されたアウトラインフォ
ントを示す図である。
【図32】座標出力の場合の出力フォーマットを示す図
である。
【図33】塗りつぶしのために打点を行っている様子を
示す図である。
【図34】輪郭ORのために打点を行っている様子を示
す図である。
【図35】3次ベジェ曲線を分解する様子を示す図であ
る。
【図36】塗りつぶしを行っている様子を示す図であ
る。
【図37】ビットマップフォントの発生する様子を示す
図である。
【図38】太め処理の詳細を示すフローチャートであ
る。
【図39】スタート点の仮移動を示す図である。
【図40】明朝体の太め処理結果を示す図である。
【図41】丸ゴシック体の太め処理を示す図である。
【図42】太めパラメータを決定するために用いるテー
ブルを示す図である。
【図43】太め処理を行っている様子を示す図である。
【図44】太め量が正で鋭い角度のとき点を分割する様
子を示す図である。
【図45】分割した点を丸接合する様子を示す図であ
る。
【図46】太め量が負のときの鋭い角度の対応を示す図
である。
【図47】太め処理によって不都合が生じる様子を示す
図である。
【図48】横線における線幅調整の様子を示す図であ
る。
【図49】縦線における線幅調整の様子を示す図であ
る。
【図50】内輪郭/外輪郭を判定する処理の詳細を示す
フローチャートである。
【図51】内輪郭の特徴を判定するための概念図であ
る。
【図52】外輪郭の特徴を判定するための概念図であ
る。
【図53】太めパラメータを決定するために用いるテー
ブルを示す図である。
【図54】グレイスケールフォントにするために作成す
るビットマップを示す図である。
【図55】本発明におけるストローク単位に太める幅を
調整する様子を示す図である。
【図56】本発明の他の実施例の全体の流れを示すフロ
ーチャートである。
【図57】グレイスケールフォントに変換するための基
本概念図である。
【図58】グレイスケールフォントに変換するための様
子を示す図である。
【図59】グレイスケールフォントに変換された様子を
示す図である。
【符号の説明】
1 CPU 2 ROM 3 RAM 4 KBC 5 KB 6 CRTC 7 CRT 8 DKC 10 PRTC 11 PRT

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 文字のストロークの輪郭線の特徴点の座
    標値を示す複数の輪郭データと、前記ストロークの標準
    線幅を示す線幅管理情報を記憶する記憶手段と、 発生対象の文字のサイズを入力する第1の入力手段と、 文字のストロークの線幅の程度を示すウエイト情報を入
    力する第2の入力手段と、 前記標準線幅を前記ウエイト情報の示す線幅となるよう
    に変更調整する調整手段と、 該調整手段により変更調整された線幅の文字パターンを
    前記発生対象の文字サイズに応じて縮小/拡大した文字
    パターンを発生する文字発生手段とを具えたことを特徴
    とする文字発生装置。
  2. 【請求項2】 請求項1に記載の文字発生装置におい
    て、前記調整手段は前記特徴点の座標値を変更すること
    により線幅の調整を行うことを特徴とする文字発生装
    置。
  3. 【請求項3】 請求項1に記載の文字発生装置におい
    て、前記線幅は縦および横のストロークで異ならせるこ
    とを特徴とする文字発生装置。
  4. 【請求項4】 請求項1に記載の文字発生装置におい
    て、前記文字発生手段は発生の文字パターンをビットマ
    ップフォント、輪郭線データおよびグレイスケールフォ
    ントのいずれかの形態で出力することを特徴とする文字
    発生装置。
  5. 【請求項5】 請求項1に記載の文字発生装置におい
    て、書体を入力する第3の入力手段をさらに有し、前記
    調整手段は、調整された線幅について該書体に応じて部
    分修正することを特徴とする文字発生装置。
  6. 【請求項6】 請求項5に記載の文字発生装置におい
    て、前記書体に応じた部分修正は請求項1に記載の特徴
    点の増設であることを特徴とする文字発生装置。
  7. 【請求項7】 請求項6に記載の文字発生装置におい
    て、請求項5に記載の調整手段は隣接する3つの特徴点
    から定まる2つの線分の交差角度を調べ、該交差角度が
    鋭い角度のとき特徴点の増設を行うことを特徴とする文
    字発生装置。
  8. 【請求項8】 請求項5に記載の文字発生装置におい
    て、前記書体に応じた部分修正は請求項1に記載のスト
    ロークの角の丸め処理であることを特徴とする文字発生
    装置。
  9. 【請求項9】 請求項8に記載の文字発生装置におい
    て、請求項5に記載の調整手段は隣接する3つの特徴点
    から定まる2つの線分の交差角度を調べ、該交差角度が
    鋭角ではないとき前記丸め処理を行うことを特徴とする
    文字発生装置。
  10. 【請求項10】 請求項1に記載の文字発生装置におい
    て、前記輪郭データは文字の外周輪郭線を構成するスト
    ロークについての外周輪郭データと、該文字の内周輪郭
    線を構成するストロークについての内周輪郭データを有
    し、前記外周輪郭データについてのストロークの線幅
    と、前記内周輪郭についてのストロークの線幅とを異な
    らせることを特徴とする文字発生装置。
  11. 【請求項11】 請求項10に記載の文字発生装置にお
    いて、請求項1に記載の調整手段は3つの隣接する特徴
    点により定まる2つの線分の交差角度に基づき、前記外
    周データおよび前記内周データを自動判別することを特
    徴とする文字発生装置。
  12. 【請求項12】 請求項1に記載の文字発生装置におい
    て、前記輪郭データは同一文字について、線幅の異なる
    複数種が用意されており、前記第2の入力手段により入
    力されたウエイト情報の示す線幅の程度に最も近い種類
    の輪郭データを使用して前記調整手段は線幅を変更する
    ことを特徴とする文字発生装置。
  13. 【請求項13】 文字のストロークの輪郭線の特徴点の
    座標値を示す複数の輪郭データと、前記ストロークの標
    準線幅を示す線幅管理情報を記憶装置に記憶しておき、 発生対象の文字のサイズおよび文字のストロークの線幅
    の程度を示すウエイト情報を与え、 前記標準線幅を前記ウエイト情報の示す線幅となるよう
    に変更調整し、 当該変更調整された線幅の文字パターンを前記発生対象
    の文字サイズに応じて縮小/拡大して文字パターンを発
    生することを特徴とする文字発生方法。
JP8152524A 1996-06-13 1996-06-13 文字発生装置および方法 Pending JPH09330073A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8152524A JPH09330073A (ja) 1996-06-13 1996-06-13 文字発生装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8152524A JPH09330073A (ja) 1996-06-13 1996-06-13 文字発生装置および方法

Publications (1)

Publication Number Publication Date
JPH09330073A true JPH09330073A (ja) 1997-12-22

Family

ID=15542327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8152524A Pending JPH09330073A (ja) 1996-06-13 1996-06-13 文字発生装置および方法

Country Status (1)

Country Link
JP (1) JPH09330073A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010264692A (ja) * 2009-05-15 2010-11-25 Ricoh Co Ltd 情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010264692A (ja) * 2009-05-15 2010-11-25 Ricoh Co Ltd 情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム

Similar Documents

Publication Publication Date Title
KR0167618B1 (ko) 문자 발생 장치 및 방법
US5241653A (en) Apparatus and method for adjusting and displaying scaled, rasterized characters
US5959635A (en) Character pattern generator
JP3576611B2 (ja) 文字発生装置ならびに方法
US6753862B1 (en) Outline smoothing method and system
US5771035A (en) Character generation device
JP3009525B2 (ja) ベクトル画像描画装置
US6201553B1 (en) Character generating method and apparatus
JPH09330073A (ja) 文字発生装置および方法
US5519412A (en) Pattern processing method
US6944823B2 (en) Outline forming apparatus and method using inputted weight information
EP0983859B1 (en) Information processing apparatus and recording medium with pattern generation programs recorded thereon
Lejun et al. A new contour fill algorithm for outlined character image generation
JP3376152B2 (ja) 文字発生装置および方法
JPH02270019A (ja) 高品質文字パターン発生方式
JPH07160242A (ja) 文字発生装置
JPH0711771B2 (ja) フォント情報転送方式
JPH07160241A (ja) 文字発生装置
JPH02266480A (ja) 高品質文字パターン発生方式
JP3344538B2 (ja) 文字生成装置
JP3215169B2 (ja) 文字処理装置及び方法
JPH11227301A (ja) 印刷装置のデータ処理方式
JP2001109454A (ja) 文字処理装置
JPH09138679A (ja) データ処理装置
JP2000268186A (ja) 描画処理装置