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

文字発生装置および方法

Info

Publication number
JP3376152B2
JP3376152B2 JP06575495A JP6575495A JP3376152B2 JP 3376152 B2 JP3376152 B2 JP 3376152B2 JP 06575495 A JP06575495 A JP 06575495A JP 6575495 A JP6575495 A JP 6575495A JP 3376152 B2 JP3376152 B2 JP 3376152B2
Authority
JP
Japan
Prior art keywords
character
contour
point
data
thickening
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
JP06575495A
Other languages
English (en)
Other versions
JPH08263042A (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 JP06575495A priority Critical patent/JP3376152B2/ja
Publication of JPH08263042A publication Critical patent/JPH08263042A/ja
Application granted granted Critical
Publication of JP3376152B2 publication Critical patent/JP3376152B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

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

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 太さのパラメータに応じて輪郭点を移動
    し太め処理を行なう太め処理手段と、前記太め処理によ
    る太め処理によって大きくなった文字の枠が元の文字の
    枠の大きさになるように前記太め処理手段により太め処
    理された輪郭点を調整するボディ枠補正手段と、前記ボ
    ディ枠補正手段により調整された輪郭点に基づき文字パ
    ターンを発生する発生手段とを有する文字発生装置であ
    って、 ウエイトに応じて太さのパラメータを決定する決定手段
    と、 前記ボディ枠補正手段による輪郭点の調整後に指定され
    た太さになるように前記決定手段により決定されたパラ
    メータを調整するパラメータ調整手段とを有することを
    特徴とする文字発生装置。
  2. 【請求項2】 前記ボディ枠補正手段による輪郭点の調
    整後の線幅の太さのばらつきを調整する線幅調整手段を
    有することを特徴とする請求項1記載の文字発生装置。
  3. 【請求項3】 太さのパラメータに応じて輪郭点を移動
    し細め処理を行なう細め処理手段と、前記細め処理手段
    による細め処理によって小さくなった文字の枠が元の文
    字の枠の大きさになるように前記細め処理手段により細
    め処理された輪郭点を調整するボディ枠補正手段と、前
    記ボディ枠補正手段により調整された輪郭点に基づき文
    字パターンを発生する発生手段とを有する文字発生装置
    であって、 ウエイトに応じて太さのパラメータを決定する決定手段
    と、 前記ボディ枠補正手段による輪郭点の調整後に指定され
    た太さになるように前記決定手段により決定されたパラ
    メータを調整するパラメータ調整手段とを有することを
    特徴とする文字発生装置。
  4. 【請求項4】 前記ボディ枠補正手段による輪郭点の調
    整後の線幅の太さのばらつきを調整する線幅調整手段を
    有することを特徴とする請求項3記載の文字発生装置。
  5. 【請求項5】 太さのパラメータに応じて輪郭点を移動
    し太め処理を行なう太め処理ステップと、前記太め処理
    ステップによる太め処理によって大きくなった文字の枠
    が元の文字の枠の大きさになるように前記太め処理ステ
    ップにより太め処理された輪郭点を調整するボディ枠補
    正ステップと、前記ボディ枠補正ステップにより調整さ
    れた輪郭点に基づき文字パターンを発生する発生ステッ
    プとを有する文字発生方法であって、 ウエイトに応じて太さのパラメータを決定する決定ステ
    ップと、 前記ボディ枠補正ステップによる輪郭点の調整後に指定
    された太さになるように前記決定ステップにより決定さ
    れたパラメータを調整するパラメータ調整ステップとを
    有することを特徴とする文字発生方法。
  6. 【請求項6】 前記ボディ枠補正ステップによる輪郭点
    の調整後の線幅の太さのばらつきを調整する線幅調整ス
    テップを有することを特徴とする請求項5記載の文字発
    生方法。
  7. 【請求項7】 太さのパラメータに応じて輪郭点を移動
    し細め処理を行なう細め処理ステップと、前記細め処理
    ステップによる細め処理によって小さくなった文字の枠
    が元の文字の枠の大きさになるように前記細め処理ステ
    ップにより細め処理された輪郭点を調整するボディ枠補
    正ステップと、前記ボディ枠補正ステップにより調整さ
    れた輪郭点に基づき文字パターンを発生する発生ステッ
    プとを有する文字発生方法であって、 ウエイトに応じて太さのパラメータを決定する決定ステ
    ップと、 前記ボディ枠補正ステップによる輪郭点の調整後に指定
    された太さになるように前記決定ステップにより決定さ
    れたパラメータを調整するパラメータ調整ステップとを
    有することを特徴とする文字発生方法。
  8. 【請求項8】 前記ボディ枠補正ステップによる輪郭点
    の調整後の線幅の太さのばらつきを調整する線幅調整ス
    テップを有することを特徴とする請求項7記載の文字発
    生方法。
JP06575495A 1995-03-24 1995-03-24 文字発生装置および方法 Expired - Fee Related JP3376152B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06575495A JP3376152B2 (ja) 1995-03-24 1995-03-24 文字発生装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06575495A JP3376152B2 (ja) 1995-03-24 1995-03-24 文字発生装置および方法

Publications (2)

Publication Number Publication Date
JPH08263042A JPH08263042A (ja) 1996-10-11
JP3376152B2 true JP3376152B2 (ja) 2003-02-10

Family

ID=13296140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06575495A Expired - Fee Related JP3376152B2 (ja) 1995-03-24 1995-03-24 文字発生装置および方法

Country Status (1)

Country Link
JP (1) JP3376152B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012006274B4 (de) 2012-04-27 2018-08-23 Mitsubishi Electric Corporation Schriftzeichen-Zeichnungsvorrichtung und Schriftzeichen-Zeichnungsverfahren

Also Published As

Publication number Publication date
JPH08263042A (ja) 1996-10-11

Similar Documents

Publication Publication Date Title
KR0167618B1 (ko) 문자 발생 장치 및 방법
US5959635A (en) Character pattern generator
JP3576611B2 (ja) 文字発生装置ならびに方法
US6753862B1 (en) Outline smoothing method and system
KR100317549B1 (ko) 문자채움처리를위해연쇄코드를사용하는비트맵문자변환방법
US5388166A (en) Image drawing apparatus
JP3376152B2 (ja) 文字発生装置および方法
US6944823B2 (en) Outline forming apparatus and method using inputted weight information
US5553219A (en) Font outline and bit map generator synthesizing filling data with selected outline data or duplicate outline data
JPH02270019A (ja) 高品質文字パターン発生方式
US5563627A (en) High-quality character generator
JP4140363B2 (ja) 画像処理装置および画像処理方法
US20040027617A1 (en) Image processing apparatus, drawing processing method, and computer program
JPH09330073A (ja) 文字発生装置および方法
JPH07160242A (ja) 文字発生装置
JPH07160241A (ja) 文字発生装置
JP3951953B2 (ja) 印刷装置、画像処理装置、印刷方法、画像処理方法及びプログラム
JPH02266480A (ja) 高品質文字パターン発生方式
JP3215169B2 (ja) 文字処理装置及び方法
JP3089906B2 (ja) 描画装置
JP2001109454A (ja) 文字処理装置
JP3452049B2 (ja) 描画装置及び描画方法
US20020186219A1 (en) Apparatus for drawing dotted lines having natural appearance
JP2000066658A (ja) 画像処理装置および記録媒体
JPH0823741B2 (ja) ベクトル文字もしくはベクトル図形の処理方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071129

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081129

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091129

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees