JPH06149211A - キャラクタ作成/出力方法および装置 - Google Patents
キャラクタ作成/出力方法および装置Info
- Publication number
- JPH06149211A JPH06149211A JP4294477A JP29447792A JPH06149211A JP H06149211 A JPH06149211 A JP H06149211A JP 4294477 A JP4294477 A JP 4294477A JP 29447792 A JP29447792 A JP 29447792A JP H06149211 A JPH06149211 A JP H06149211A
- Authority
- JP
- Japan
- Prior art keywords
- line width
- convergence
- character
- elements
- rate
- 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.)
- Granted
Links
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【目的】 キャラクタの線幅を縮小する。
【構成】 キャラクタを構成する要素の主要な線幅を
(Fx,Fy)、全要素に共通の収束目標値(Tx,T
y)、およびこの収束目標値に近づける割合(Rx,R
y)を入力し、これら主要な線幅(Fx,Fy)、収束
目標値(Tx,Ty)および割合(Rx,Ry)より、
線幅を縮小する比率を要素毎に計算し、この比率を各要
素の複数部分の線幅を表わす値に乗じることにより、線
幅減少の際に中字もしくは細字のデザイン・ルールを満
足するように各要素の線幅を変化する。
(Fx,Fy)、全要素に共通の収束目標値(Tx,T
y)、およびこの収束目標値に近づける割合(Rx,R
y)を入力し、これら主要な線幅(Fx,Fy)、収束
目標値(Tx,Ty)および割合(Rx,Ry)より、
線幅を縮小する比率を要素毎に計算し、この比率を各要
素の複数部分の線幅を表わす値に乗じることにより、線
幅減少の際に中字もしくは細字のデザイン・ルールを満
足するように各要素の線幅を変化する。
Description
【0001】
【産業上の利用分野】本発明は、プリンタおよびディス
プレイ等の出力手段に用いるキャラクタを作成し、およ
び/または出力する方法および装置に関する。
プレイ等の出力手段に用いるキャラクタを作成し、およ
び/または出力する方法および装置に関する。
【0002】
【従来の技術】従来キャラクタを印刷するプリンタ、キ
ャラクタを表示するディスプレイ等の出力手段(装置)
に多く用いられているフォントの種類としては、図10
(a)ないし(c)に示すような、(a)ビット・マッ
プ・フォント,(b)ランレングス・フォント,(c)
アウトライン・フォント等がある。
ャラクタを表示するディスプレイ等の出力手段(装置)
に多く用いられているフォントの種類としては、図10
(a)ないし(c)に示すような、(a)ビット・マッ
プ・フォント,(b)ランレングス・フォント,(c)
アウトライン・フォント等がある。
【0003】しかしこれらのキャラクタはいずれも、太
さ(線幅)の変更が困難である。
さ(線幅)の変更が困難である。
【0004】線幅を変える方法としては、従来、図11
(a)ないし(d)に示すような、(a)(円)内挿
法,(b)輪郭増減法,(c)インターポレーション
法,(d)骨格点線幅法(アウトラインスケルトン法)
等がある。
(a)ないし(d)に示すような、(a)(円)内挿
法,(b)輪郭増減法,(c)インターポレーション
法,(d)骨格点線幅法(アウトラインスケルトン法)
等がある。
【0005】例えば、(c)のインターポレーション法
では、太字と細字の2種類のアウトラインフォントを作
成し、輪郭を対応させて、太字と細字の間の任意の太さ
のフォントのアウトラインを作成する。しかし、この方
法では、2種類のアウトラインフォントを作成する必要
があるので、フォントの開発コストおよび開発期間が2
倍必要になる。
では、太字と細字の2種類のアウトラインフォントを作
成し、輪郭を対応させて、太字と細字の間の任意の太さ
のフォントのアウトラインを作成する。しかし、この方
法では、2種類のアウトラインフォントを作成する必要
があるので、フォントの開発コストおよび開発期間が2
倍必要になる。
【0006】また例えば(d)の骨格点線幅法において
文字を拡大・縮小するときは、フォントの骨格点(スケ
ルトン)の座標値に、定数(文字枠制御情報という)を
乗じる。また線幅の変更は、線幅ベクトルに対して、定
数(線幅制御情報という)を乗じる。なお、骨格点線幅
法については特開昭62−159279号を参照された
い。
文字を拡大・縮小するときは、フォントの骨格点(スケ
ルトン)の座標値に、定数(文字枠制御情報という)を
乗じる。また線幅の変更は、線幅ベクトルに対して、定
数(線幅制御情報という)を乗じる。なお、骨格点線幅
法については特開昭62−159279号を参照された
い。
【0007】図12に、図11(d)の骨格点線幅法に
より作成した「百」および「蘭」のオリジナルキャラク
タA1およびB1を示す。A1およびB1は線幅制御情
報W=100%の場合を示し、A2およびB2はW=7
0%の場合を示し、そしてA3およびB3はW=40%
の場合を示す。A1,B1は太字、A2,B2は中字、
A3,B3は細字である。これらの自動的に作り出され
た、中字,細字の質を、フォントデザイナに判断しても
らった結果、中字(A2,B2)は使用できるが(厳密
には問題がある)、細字は文字要素間および文字相互間
の線幅のバランスが悪く、正常と認められないというこ
とであった。
より作成した「百」および「蘭」のオリジナルキャラク
タA1およびB1を示す。A1およびB1は線幅制御情
報W=100%の場合を示し、A2およびB2はW=7
0%の場合を示し、そしてA3およびB3はW=40%
の場合を示す。A1,B1は太字、A2,B2は中字、
A3,B3は細字である。これらの自動的に作り出され
た、中字,細字の質を、フォントデザイナに判断しても
らった結果、中字(A2,B2)は使用できるが(厳密
には問題がある)、細字は文字要素間および文字相互間
の線幅のバランスが悪く、正常と認められないというこ
とであった。
【0008】そこで、太字(オリジナルキャラクタと呼
ぶ)または細字を、フォントデザイナがデザインする際
の方針をそれぞれ調べた。
ぶ)または細字を、フォントデザイナがデザインする際
の方針をそれぞれ調べた。
【0009】〔太字デザインの方針〕 (1) キャラクタの線幅をできるだけ太くする。
【0010】(2) 画数の多いキャラクタ(例えば
「蘭」)の線幅は、あまり太くすると線が重なってしま
うため、画数の少ないキャラクタと比較して全体的に若
干線幅を細くする。
「蘭」)の線幅は、あまり太くすると線が重なってしま
うため、画数の少ないキャラクタと比較して全体的に若
干線幅を細くする。
【0011】(3) 画数の多いキャラクタは、内側の
線ほど細くデザインする。例えば
線ほど細くデザインする。例えば
【0012】
【外1】
【0013】「門」の「口」の中の横線、および「東」
の「口」の中の横線等は
の「口」の中の横線等は
【0014】
【外2】
【0015】このように太字では同一文字の中でも線幅
が大きく異なる。
が大きく異なる。
【0016】(4) 以上(1),(2),(3)を考
慮して、キャラクタの線幅をできるだけ太くするが、そ
の場合、スキマ(線に囲まれた白の部分)は、一定の間
隔に見えるようにデザインする。
慮して、キャラクタの線幅をできるだけ太くするが、そ
の場合、スキマ(線に囲まれた白の部分)は、一定の間
隔に見えるようにデザインする。
【0017】以上(1)ないし(4)を考慮してデザイ
ンされた太字の「蘭」の字は、各線幅は、異なるにもか
かわらず、字形の複雑な部分で、スキマが狭く、一定で
あるため、線幅の違いが気にならない。また太字の
「百」と「蘭」では、平均の線幅は、「蘭」の方が細
い。しかし「蘭」では、画数が多く、黒の部分が多いの
で、「百」に比べて「蘭」の線幅が細いのは気にならな
い。
ンされた太字の「蘭」の字は、各線幅は、異なるにもか
かわらず、字形の複雑な部分で、スキマが狭く、一定で
あるため、線幅の違いが気にならない。また太字の
「百」と「蘭」では、平均の線幅は、「蘭」の方が細
い。しかし「蘭」では、画数が多く、黒の部分が多いの
で、「百」に比べて「蘭」の線幅が細いのは気にならな
い。
【0018】〔細字デザインの方針〕 (1) キャラクタ線幅(太さ)をできるだけ細くす
る。
る。
【0019】(2) 同一キャラクタの中で各線幅をほ
ぼ同一にするばかりでなく、画数の多いキャラクタも、
少ないキャラクタも、フォントセット全体の線幅がほぼ
同一になるようにデザインする。
ぼ同一にするばかりでなく、画数の多いキャラクタも、
少ないキャラクタも、フォントセット全体の線幅がほぼ
同一になるようにデザインする。
【0020】(3) 細字では、スキマ(白の部分)が
大きいので、各部分のスキマの大きさの違いが明確に認
識される。従って太字のようにスキマを同一に見せるよ
うにはしない。
大きいので、各部分のスキマの大きさの違いが明確に認
識される。従って太字のようにスキマを同一に見せるよ
うにはしない。
【0021】細字デザインのための、上記(1),
(2),(3)の観点から、図12の細字の(A3,B
3)の品質を検討すると、以下の問題が発見された。
(2),(3)の観点から、図12の細字の(A3,B
3)の品質を検討すると、以下の問題が発見された。
【0022】太字の「蘭」の全ての線幅ベクトルにW=
40%を乗じて作られた細字の「蘭」(B3)は、細幅
は細くなったとしても、線幅のバラツキの割合は、太字
の「蘭」と同じになる。
40%を乗じて作られた細字の「蘭」(B3)は、細幅
は細くなったとしても、線幅のバラツキの割合は、太字
の「蘭」と同じになる。
【0023】すなわち、細字の「蘭」(B3)という字
では、各線幅の違いがはっきりわかる。これは、上記細
字のデザインの方針の「線幅を揃える」に合致しない。
では、各線幅の違いがはっきりわかる。これは、上記細
字のデザインの方針の「線幅を揃える」に合致しない。
【0024】細字の「蘭」(B3)では、線幅が細くな
り、白部分がおおくなったので、ストロークの太さのバ
ラツキがはっきり見え、文字の質が低くなる。
り、白部分がおおくなったので、ストロークの太さのバ
ラツキがはっきり見え、文字の質が低くなる。
【0025】細字の「百」(A3)と「蘭」(B3)
は、細字のデザイン方針の「フォントセット全体の線幅
を揃える」に合致しない。もともと、太字の「百」(A
1)と「蘭」(B1)では、「百」の方が線幅が太い。
太字では黒部分が多く、スキマ部分が小さいため、両方
とも全体的に黒っぽく見え、線幅の違いが気付かれにく
いが、これら2つの太字の全ての線幅ベクトルに、W=
40%を乗じて作られた2つの細字では、白部分が多
く、線幅のバラツキがはっきり見え、好ましくない。
は、細字のデザイン方針の「フォントセット全体の線幅
を揃える」に合致しない。もともと、太字の「百」(A
1)と「蘭」(B1)では、「百」の方が線幅が太い。
太字では黒部分が多く、スキマ部分が小さいため、両方
とも全体的に黒っぽく見え、線幅の違いが気付かれにく
いが、これら2つの太字の全ての線幅ベクトルに、W=
40%を乗じて作られた2つの細字では、白部分が多
く、線幅のバラツキがはっきり見え、好ましくない。
【0026】なお、「細字のデザインの方針」に従っ
て、細字のフォントをデザインし、全ての線幅ベクトル
に、W=100%以上の値、例えば、W=300%を乗
じて、太字を機械的に作り出す方法も考えられるが、
画数の多い字では線が重なる、白部分のスキマが一定
にならない等の問題が生じ、妥当でない。
て、細字のフォントをデザインし、全ての線幅ベクトル
に、W=100%以上の値、例えば、W=300%を乗
じて、太字を機械的に作り出す方法も考えられるが、
画数の多い字では線が重なる、白部分のスキマが一定
にならない等の問題が生じ、妥当でない。
【0027】
【発明が解決しようとする課題】以上述べたことから明
らかなように、太字の全ての線幅ベクトルに、一定の値
を乗じて作られた細字では、同一のキャラクタの中で
比較した場合、同一のフォントセットの異なるキャラ
クタを比較した場合の2つの場合において、線幅のバラ
ツキが生じるという問題があった。
らかなように、太字の全ての線幅ベクトルに、一定の値
を乗じて作られた細字では、同一のキャラクタの中で
比較した場合、同一のフォントセットの異なるキャラ
クタを比較した場合の2つの場合において、線幅のバラ
ツキが生じるという問題があった。
【0028】そこで、本発明の目的は、キャラクタ相互
間およびキャラクタの要素間の線幅のバランスの不揃い
を防止しつつ線幅に応じた最適なキャラクタを作成する
方法および装置を提供することにある。
間およびキャラクタの要素間の線幅のバランスの不揃い
を防止しつつ線幅に応じた最適なキャラクタを作成する
方法および装置を提供することにある。
【0029】本発明の他の目的は、キャラクタ相互間お
よびキャラクタの要素間の線幅のバランスの不揃いを防
止しつつ線幅に応じた最適なキャラクタを作成および出
力する方法、および装置を提供することにある。
よびキャラクタの要素間の線幅のバランスの不揃いを防
止しつつ線幅に応じた最適なキャラクタを作成および出
力する方法、および装置を提供することにある。
【0030】
【課題を解決するための手段】このような目的を達成す
るために、請求項1に記載のキャラクタ作成装置は、1
以上の要素から構成されるキャラクタの、線幅を変更す
るキャラクタ作成装置において、前記1以上の要素のそ
れぞれの主要部の線幅を記憶する手段と、前記1以上の
要素に共通する前記主要部の線幅の収束目標値を指定す
る手段と、前記主要部の線幅を前記収束目標値に近づけ
る割合を示す収束率を指定する手段と、前記収束率およ
び前記収束目標値に基づいて、前記主要部の線幅を増加
または減少する割合を示す収束倍率を要素毎に計算する
手段と、前記収束倍率をそれぞれの要素の複数部分の線
幅を表わす値に乗じて前記1以上の要素の線幅を変更す
る手段とを具えることを特徴とする。
るために、請求項1に記載のキャラクタ作成装置は、1
以上の要素から構成されるキャラクタの、線幅を変更す
るキャラクタ作成装置において、前記1以上の要素のそ
れぞれの主要部の線幅を記憶する手段と、前記1以上の
要素に共通する前記主要部の線幅の収束目標値を指定す
る手段と、前記主要部の線幅を前記収束目標値に近づけ
る割合を示す収束率を指定する手段と、前記収束率およ
び前記収束目標値に基づいて、前記主要部の線幅を増加
または減少する割合を示す収束倍率を要素毎に計算する
手段と、前記収束倍率をそれぞれの要素の複数部分の線
幅を表わす値に乗じて前記1以上の要素の線幅を変更す
る手段とを具えることを特徴とする。
【0031】また、請求項2に記載のキャラクタ出力装
置は、1以上の要素から構成されるキャラクタの、線幅
を変更し出力するキャラクタ出力装置において、線幅の
増加または減少を行う基となるオリジナルキャラクタの
データベースを記憶する手段と、該データベースの1つ
のキャラクタを特定する手段と、前記1つのキャラクタ
を構成する要素のそれぞれの主要部の線幅を記憶する手
段と、線幅の増加または減少倍率を入力する手段と、前
記1以上の要素に共通する前記主要部の線幅の収束目標
値を、前記増加または減少倍率に基づいて決定する手段
と、前記主要部の線幅を前記収束目標値に近づける割合
を示す収束率を、前記増加または減少倍率に基づいて決
定する手段と、前記収束率および前記収束目標値に基づ
いて、前記主要部の線幅を増加または減少する割合を示
す収束倍率を要素毎に計算する手段と、前記収束倍率を
それぞれの要素の複数部分の線幅を表わす値に乗じて前
記1以上の要素の線幅を変更する手段と、線幅を変更し
たキャラクタを出力する出力手段とを具えたことを特徴
とする。
置は、1以上の要素から構成されるキャラクタの、線幅
を変更し出力するキャラクタ出力装置において、線幅の
増加または減少を行う基となるオリジナルキャラクタの
データベースを記憶する手段と、該データベースの1つ
のキャラクタを特定する手段と、前記1つのキャラクタ
を構成する要素のそれぞれの主要部の線幅を記憶する手
段と、線幅の増加または減少倍率を入力する手段と、前
記1以上の要素に共通する前記主要部の線幅の収束目標
値を、前記増加または減少倍率に基づいて決定する手段
と、前記主要部の線幅を前記収束目標値に近づける割合
を示す収束率を、前記増加または減少倍率に基づいて決
定する手段と、前記収束率および前記収束目標値に基づ
いて、前記主要部の線幅を増加または減少する割合を示
す収束倍率を要素毎に計算する手段と、前記収束倍率を
それぞれの要素の複数部分の線幅を表わす値に乗じて前
記1以上の要素の線幅を変更する手段と、線幅を変更し
たキャラクタを出力する出力手段とを具えたことを特徴
とする。
【0032】さらに、請求項3に記載のキャラクタ作成
方法は、1以上の要素から構成されるキャラクタの、線
幅を変更するキャラクタ作成方法において、前記1以上
の要素のそれぞれの主要部の線幅を記憶するステップ
と、前記1以上の要素に共通する前記主要部の線幅の収
束目標値を指定するステップと、前記主要部の線幅を前
記収束目標値に近づける割合を示す収束率を指定するス
テップと、前記収束率および前記収束目標値に基づい
て、前記主要部の線幅を増加または減少する割合を示す
収束倍率を要素毎に計算するステップと、前記収束倍率
をそれぞれの要素の複数部分の線幅を表わす値に乗じて
前記1以上の要素の線幅を変更するステップとを具える
ことを特徴とする。
方法は、1以上の要素から構成されるキャラクタの、線
幅を変更するキャラクタ作成方法において、前記1以上
の要素のそれぞれの主要部の線幅を記憶するステップ
と、前記1以上の要素に共通する前記主要部の線幅の収
束目標値を指定するステップと、前記主要部の線幅を前
記収束目標値に近づける割合を示す収束率を指定するス
テップと、前記収束率および前記収束目標値に基づい
て、前記主要部の線幅を増加または減少する割合を示す
収束倍率を要素毎に計算するステップと、前記収束倍率
をそれぞれの要素の複数部分の線幅を表わす値に乗じて
前記1以上の要素の線幅を変更するステップとを具える
ことを特徴とする。
【0033】さらにまた、請求項4に記載のキャラクタ
出力方法は、1以上の要素から構成されるキャラクタ
の、線幅を変更し出力するキャラクタ出力方法におい
て、線幅の増加または減少を行う基となるオリジナルキ
ャラクタのデータベースを記憶するステップと、該デー
タベースの1つのキャラクタを特定するステップと、前
記1つのキャラクタを構成する要素のそれぞれの主要部
の線幅を記憶するステップと、線幅の増加または減少倍
率を入力するステップと、前記1以上の要素に共通する
前記主要部の線幅の収束目標値を前記増加または減少倍
率に基づいて指定するステップと、前記主要部の線幅を
前記収束目標値に近づける割合を示す収束率を前記増加
または減少倍率に基づいて指定するステップと、前記収
束率および前記収束目標値に基づいて、前記主要部の線
幅を増加または減少する割合を示す収束倍率を要素毎に
計算するステップと、前記収束倍率をそれぞれの要素の
複数部分の線幅を表わす値に乗じて前記1以上の要素の
線幅を変更するステップと、線幅を変更したキャラクタ
を出力する出力ステップとを具えたことを特徴とする。
出力方法は、1以上の要素から構成されるキャラクタ
の、線幅を変更し出力するキャラクタ出力方法におい
て、線幅の増加または減少を行う基となるオリジナルキ
ャラクタのデータベースを記憶するステップと、該デー
タベースの1つのキャラクタを特定するステップと、前
記1つのキャラクタを構成する要素のそれぞれの主要部
の線幅を記憶するステップと、線幅の増加または減少倍
率を入力するステップと、前記1以上の要素に共通する
前記主要部の線幅の収束目標値を前記増加または減少倍
率に基づいて指定するステップと、前記主要部の線幅を
前記収束目標値に近づける割合を示す収束率を前記増加
または減少倍率に基づいて指定するステップと、前記収
束率および前記収束目標値に基づいて、前記主要部の線
幅を増加または減少する割合を示す収束倍率を要素毎に
計算するステップと、前記収束倍率をそれぞれの要素の
複数部分の線幅を表わす値に乗じて前記1以上の要素の
線幅を変更するステップと、線幅を変更したキャラクタ
を出力する出力ステップとを具えたことを特徴とする。
【0034】
【作用】本発明によれば、キャラクタを構成する1以上
の要素のそれぞれの主要部の線幅を記憶し、前記1以上
の要素に共通する前記主要部の線幅の収束目標値を指定
し、前記主要部の線幅を前記収束目標値に近づける割合
を示す収束率を指定し、前記収束率および前記収束目標
値に基づいて、前記主要部の線幅を増加または減少する
割合を示す収束倍率を要素毎に計算し、前記収束倍率を
それぞれの要素の複数部分の線幅を表わす値に乗じて前
記1以上の要素の線幅を変更するので、中字もしくは細
字のデザイン・ルールを満足するようにキャラクタを構
成するストロークの線幅を変化することができる。
の要素のそれぞれの主要部の線幅を記憶し、前記1以上
の要素に共通する前記主要部の線幅の収束目標値を指定
し、前記主要部の線幅を前記収束目標値に近づける割合
を示す収束率を指定し、前記収束率および前記収束目標
値に基づいて、前記主要部の線幅を増加または減少する
割合を示す収束倍率を要素毎に計算し、前記収束倍率を
それぞれの要素の複数部分の線幅を表わす値に乗じて前
記1以上の要素の線幅を変更するので、中字もしくは細
字のデザイン・ルールを満足するようにキャラクタを構
成するストロークの線幅を変化することができる。
【0035】従って本発明によれば、高品質な細字を作
ることができると共に、太字と細字の間の中字をも、無
段階かつ高品位に作成できる。
ることができると共に、太字と細字の間の中字をも、無
段階かつ高品位に作成できる。
【0036】
【実施例】以下、図面を参照して、本発明の実施例を詳
細に説明する。
細に説明する。
【0037】実施例1 図1および図2は、それぞれ、本発明キャラクタ作成装
置の外観図およびハードウエアブロック図の一実施例を
示すブロック図である。
置の外観図およびハードウエアブロック図の一実施例を
示すブロック図である。
【0038】図1および図2において、1はフォントデ
ザイナからの入力を行うキーボードである。
ザイナからの入力を行うキーボードである。
【0039】2は作成中のキャラクタ等をフォントデザ
イナに対して出力するディスプレイであり、たとえば回
動可能に保持され、非使用時はキーボード1に重なるよ
うに折りたたんで収納されるようにすることができる。
イナに対して出力するディスプレイであり、たとえば回
動可能に保持され、非使用時はキーボード1に重なるよ
うに折りたたんで収納されるようにすることができる。
【0040】3はフロッピーディスク駆動装置であり、
フロッピーディスクの読み取り、書き込み等に用いられ
る。
フロッピーディスクの読み取り、書き込み等に用いられ
る。
【0041】4はハードディスクであり、本発明キャラ
クタ作成方法を実行させるプログラム等のファイルが記
録されている。
クタ作成方法を実行させるプログラム等のファイルが記
録されている。
【0042】このファイルは、フロッピーディスクに記
録されたファイルをフロッピーディスク駆動装置3で読
み取り、ハードディスク4に転送して記録したものでも
よい。
録されたファイルをフロッピーディスク駆動装置3で読
み取り、ハードディスク4に転送して記録したものでも
よい。
【0043】ハードディスク4にはフォントデザイナに
より作られたキャラクタデータベース8およびキャラク
タを構成する要素の要素データベース9等も記憶され
る。
より作られたキャラクタデータベース8およびキャラク
タを構成する要素の要素データベース9等も記憶され
る。
【0044】5はキャラクタ作成に必要な処理を行うC
PUであり、本装置の内部に格納されている。
PUであり、本装置の内部に格納されている。
【0045】6はROMであり、キャラクタ作成装置の
起動に必要なイニシャルプログラム等が記録されてい
る。
起動に必要なイニシャルプログラム等が記録されてい
る。
【0046】なお、前記キャラクタデータベース8,要
素データベース9,キャラクタ発生方法を実行させるプ
ログラム等のファイルの一部または全部は、ハードディ
スクに代えてROM6に記録しておいても良い。
素データベース9,キャラクタ発生方法を実行させるプ
ログラム等のファイルの一部または全部は、ハードディ
スクに代えてROM6に記録しておいても良い。
【0047】7はRAMであり、プログラムの動作に必
要なスタックデータの他、ディスプレイ2に表示する画
像データが記録される。
要なスタックデータの他、ディスプレイ2に表示する画
像データが記録される。
【0048】なお、画像データを記録する画像メモリ
は、物理的にはスタックデータ等を記録するRAM7と
分離していても良い。さらに前記画像メモリは、ディス
プレイ2に直結する構成で配置されていても良い。
は、物理的にはスタックデータ等を記録するRAM7と
分離していても良い。さらに前記画像メモリは、ディス
プレイ2に直結する構成で配置されていても良い。
【0049】以上の構成における要素データベース9に
格納するデータ構成の一例を図3に示す。
格納するデータ構成の一例を図3に示す。
【0050】図3において、91は要素を特定する要素
コードである。要素の呼び出しは要素コードの指定によ
り行う。92は要素をデザインする外枠の外形をx,y
方向のドット数で示すデザインボックスサイズ(DB
S)である。DBS92は、通常キャラクタに用いられ
る大きさでデザインする。
コードである。要素の呼び出しは要素コードの指定によ
り行う。92は要素をデザインする外枠の外形をx,y
方向のドット数で示すデザインボックスサイズ(DB
S)である。DBS92は、通常キャラクタに用いられ
る大きさでデザインする。
【0051】93は要素のx方向の主要部の線幅および
y方向の主要部の線幅を示すフラグデータである。94
は要素の1つまたは複数の骨格点(スケルトン)の座標
値を示す。95は各骨格点から要素の外周上の1または
複数の点までのベクトルを示すベクトル情報である。
y方向の主要部の線幅を示すフラグデータである。94
は要素の1つまたは複数の骨格点(スケルトン)の座標
値を示す。95は各骨格点から要素の外周上の1または
複数の点までのベクトルを示すベクトル情報である。
【0052】要素コード91ないしベクトル情報95
は、要素設計またはフォント設計の際にフォントデザイ
ナにより決定され、要素データベース9に格納される。
は、要素設計またはフォント設計の際にフォントデザイ
ナにより決定され、要素データベース9に格納される。
【0053】要素のどの部分を主要部とするかは、字体
(明朝体,ゴジック体など)とキャラクタのデザインフ
ィロソフィに関係しており、最終的にはフォントデザイ
ナが決定する。
(明朝体,ゴジック体など)とキャラクタのデザインフ
ィロソフィに関係しており、最終的にはフォントデザイ
ナが決定する。
【0054】ただし、一般的なガイドとしては(例外は
あるが)、各要素の太さを最も強く印象付ける部分が要
素の主要部であり、これは要素の末端と曲り角等を除い
た最も太い部分である場合が多い。本発明はフラグデー
タを基準として各要素の線幅を変化させるので、他の要
素の線幅に比例させて線幅変更を行いたい要素のフラグ
データは、前記「他の要素」のフラグデータと同じにす
ればよい。
あるが)、各要素の太さを最も強く印象付ける部分が要
素の主要部であり、これは要素の末端と曲り角等を除い
た最も太い部分である場合が多い。本発明はフラグデー
タを基準として各要素の線幅を変化させるので、他の要
素の線幅に比例させて線幅変更を行いたい要素のフラグ
データは、前記「他の要素」のフラグデータと同じにす
ればよい。
【0055】キャラクタは1つまたは複数の要素を合成
することにより作られている。この合成手段について
は、公知(特開昭63−224965号)であるので詳
細な説明は省略する。
することにより作られている。この合成手段について
は、公知(特開昭63−224965号)であるので詳
細な説明は省略する。
【0056】図4にフラグデータを付した要素41,4
2,43および44を合成して作成した「百」というキ
ャラクタを示す。フラグ中のXは主要部のX方向の幅、
Yは主要部のY方向の幅を示す。XまたはYが0の場合
は、この要素が主にX方向に延び、または主にY方向に
延びることを示す。
2,43および44を合成して作成した「百」というキ
ャラクタを示す。フラグ中のXは主要部のX方向の幅、
Yは主要部のY方向の幅を示す。XまたはYが0の場合
は、この要素が主にX方向に延び、または主にY方向に
延びることを示す。
【0057】図4の「百」というキャラクタは、
【0058】
【外3】
【0059】伸縮されて、2回使用される。横棒は非常
に基本的な要素であるため、1つのフォントセットで何
千回も、同一のものが使用される。しかし、フォントデ
ザイナは、横棒の要素にフラグの値を1回記入するだけ
でよい。横棒がキャラクタに合成されるときには、通常
伸縮されるが、この伸縮と同一の割合でフラグの内容が
変更されるからである。従って図4の2つの横方向の要
素42および43のフラグの値が異なっている。図4に
示すように、直線状でしかも一画しかない単純な
に基本的な要素であるため、1つのフォントセットで何
千回も、同一のものが使用される。しかし、フォントデ
ザイナは、横棒の要素にフラグの値を1回記入するだけ
でよい。横棒がキャラクタに合成されるときには、通常
伸縮されるが、この伸縮と同一の割合でフラグの内容が
変更されるからである。従って図4の2つの横方向の要
素42および43のフラグの値が異なっている。図4に
示すように、直線状でしかも一画しかない単純な
【0060】
【外4】
【0061】フラグの値(主要部の線幅)は、線幅ベク
トルの長さ(すなわち骨格点から輪郭部までの長さ)の
2倍の値になる。
トルの長さ(すなわち骨格点から輪郭部までの長さ)の
2倍の値になる。
【0062】
【外5】
【0063】フォントデザイナがx方向の主要部および
y方向の主要部を視覚的に判断して、主要部のXおよび
Y方向の線幅をフラグに記入する。
y方向の主要部を視覚的に判断して、主要部のXおよび
Y方向の線幅をフラグに記入する。
【0064】明朝体の場合のフラグの決定は簡単に決定
できる場合と、できない場合がある。例えば、図5
(A)の「月」の場合は各要素の主要部の位置が明らか
なので、ゴシック体と同様の方法で、容易にフラグの値
を決定できる。また図5(B)「火」の場合は、要素5
1の主要部は上部の縦線の部分であるから、フラグの値
は決定できる。要素52,53および54は、字形の輪
郭がすべて曲線であるため、どの部分を要素の主要部と
すべきかの判断が困難である。この場合要素52,53
および54は要素51と連動して太さの変わる縦方向の
ストロークと考えて、各フラグの値を要素51と同一に
する。
できる場合と、できない場合がある。例えば、図5
(A)の「月」の場合は各要素の主要部の位置が明らか
なので、ゴシック体と同様の方法で、容易にフラグの値
を決定できる。また図5(B)「火」の場合は、要素5
1の主要部は上部の縦線の部分であるから、フラグの値
は決定できる。要素52,53および54は、字形の輪
郭がすべて曲線であるため、どの部分を要素の主要部と
すべきかの判断が困難である。この場合要素52,53
および54は要素51と連動して太さの変わる縦方向の
ストロークと考えて、各フラグの値を要素51と同一に
する。
【0065】次に図6を用いて本発明の線幅変化の原理
を説明する。線幅変化を行うためには、まずフォントデ
ザイナが収束目標値T(X,Y)および収束率R(X,
Y)を定める。ここに収束目標値Tおよび収束率Rは全
文字の全要素に共通の値である。また、収束率Rはフラ
グの値FxまたはFyを収束目標値Tに近づける割合を
示す。すなわち、収束目標値に近づけられた収束値Dは
次式で表わされる。
を説明する。線幅変化を行うためには、まずフォントデ
ザイナが収束目標値T(X,Y)および収束率R(X,
Y)を定める。ここに収束目標値Tおよび収束率Rは全
文字の全要素に共通の値である。また、収束率Rはフラ
グの値FxまたはFyを収束目標値Tに近づける割合を
示す。すなわち、収束目標値に近づけられた収束値Dは
次式で表わされる。
【0066】D=T+(F−T)(1−R) である。このとき、収束倍率Qは、 Q=D/F で与えられる。
【0067】このように、1つの要素の予め決められた
フラグの値(FxまたはFy)と、収束目標値(Txま
たはTy)と、収束率(RxまたはRy)とを用いて計
算することにより、この1つの要素に対する収束倍率Q
が得られる。
フラグの値(FxまたはFy)と、収束目標値(Txま
たはTy)と、収束率(RxまたはRy)とを用いて計
算することにより、この1つの要素に対する収束倍率Q
が得られる。
【0068】次にこの要素の各骨格点からの線幅ベクト
ルのX成分およびY成分のそれぞれに収束倍率Qを乗算
することにより、各骨格点からの変更された線幅ベクト
ルが計算される。そしてこれら変更された線幅ベクトル
を用いることにより要素のパターンが形成される。
ルのX成分およびY成分のそれぞれに収束倍率Qを乗算
することにより、各骨格点からの変更された線幅ベクト
ルが計算される。そしてこれら変更された線幅ベクトル
を用いることにより要素のパターンが形成される。
【0069】このように収束倍率は、1つの要素の複数
の線幅ベクトルを変更するために、共通に用いられる値
である。
の線幅ベクトルを変更するために、共通に用いられる値
である。
【0070】図4の要素44を例として、この要素44
の線幅を減少する方法を説明する。図6に示されるよう
に、収束目標値T(X,Y)=10ドット,収束率R=
40%=0.4とする(収束目標値のXとYが同じ値で
ある場合は少ないが、説明を簡単にするため同一として
おく)。収束倍率の計算は、フラグの値を用いて行う。
要素44のフラグFの値はX=28であるので、x方向
の収束値Dxは次式により計算される。
の線幅を減少する方法を説明する。図6に示されるよう
に、収束目標値T(X,Y)=10ドット,収束率R=
40%=0.4とする(収束目標値のXとYが同じ値で
ある場合は少ないが、説明を簡単にするため同一として
おく)。収束倍率の計算は、フラグの値を用いて行う。
要素44のフラグFの値はX=28であるので、x方向
の収束値Dxは次式により計算される。
【0071】 Dx=Tx+(Fx−Tx)(1−Rx) =10+(28−10)(1−0.4) =10+10.8=20.8 これは、フラグの値X=28が収束目標体Tx=10に
対して、40%収束すると、収束値Dx=20.8にな
ることを表わす。そしてx方向の収束倍率Qxは、 Qx=20.8÷28=0.74 となる。
対して、40%収束すると、収束値Dx=20.8にな
ることを表わす。そしてx方向の収束倍率Qxは、 Qx=20.8÷28=0.74 となる。
【0072】同様に、Y方向の収束値Dyは次式により
計算される。
計算される。
【0073】 Dy=Ty+(Fy−Ty)(1−Ry) =10+(23−10)(1−0.4) =10+7.8=17.8 y方向の収束倍率Qy=17.8÷23=0.77とな
る。
る。
【0074】次に、要素44に対して得られたこの収束
倍率QxおよびQyの値を各々、要素44のすべての線
幅ベクトルのX軸成分とY軸成分に乗じる。その結果、
要素44の線幅は、縦,横ともに、収束倍率Qに応じて
細くなる。そして要素41,42および43に対して、
同様の計算を行う。
倍率QxおよびQyの値を各々、要素44のすべての線
幅ベクトルのX軸成分とY軸成分に乗じる。その結果、
要素44の線幅は、縦,横ともに、収束倍率Qに応じて
細くなる。そして要素41,42および43に対して、
同様の計算を行う。
【0075】収束変化の範囲は、0〜100%であり、
収束率Rが100ならば完全に収束が行われ、対象とな
る要素の主要線幅は、収束目標値Tと同じ太さになる。
他方、収束率Rが0ならば収束変化は行われなかったこ
とを示し、オリジナルキャラクタ(太字)のまま線幅は
変化しない。図6に示すように、収束率が大きいほど、
キャラクタの各要素の主要の線幅は、収束目標値に近づ
く。
収束率Rが100ならば完全に収束が行われ、対象とな
る要素の主要線幅は、収束目標値Tと同じ太さになる。
他方、収束率Rが0ならば収束変化は行われなかったこ
とを示し、オリジナルキャラクタ(太字)のまま線幅は
変化しない。図6に示すように、収束率が大きいほど、
キャラクタの各要素の主要の線幅は、収束目標値に近づ
く。
【0076】図6は、フラグ(Fx,Fy)が16〜2
8の間の値にあり、収束目標値が10であり、そして収
束率が20%,40%および60%の場合の収束値を示
す。さらに、図4のフラグの値21,23,24および
28に対する値を示すために水平方向の点線が引かれて
いる。図6を一般的に説明すると、直線61はフラグF
の値FxもしくはFyを表わし、直線62は収束率Rx
もしくはRyが40%の場合の収束値DxもしくはDy
を表わし、直線63は、収束率RxもしくはRyが20
%の場合の収束値DxもしくはDyを表わし、そして直
線64は、収束率DxもしくはDyが80%の場合の収
束値DxもしくはDyを表わす。
8の間の値にあり、収束目標値が10であり、そして収
束率が20%,40%および60%の場合の収束値を示
す。さらに、図4のフラグの値21,23,24および
28に対する値を示すために水平方向の点線が引かれて
いる。図6を一般的に説明すると、直線61はフラグF
の値FxもしくはFyを表わし、直線62は収束率Rx
もしくはRyが40%の場合の収束値DxもしくはDy
を表わし、直線63は、収束率RxもしくはRyが20
%の場合の収束値DxもしくはDyを表わし、そして直
線64は、収束率DxもしくはDyが80%の場合の収
束値DxもしくはDyを表わす。
【0077】最細字でも線幅にバラツキがほしい場合
は、収束目標値を最細字の線幅より小さく設定し(例え
ば10ではなく5くらいにする)、同時に収束率を少し
小さくする(100%でなく80%くらいにする)。こ
れにより生成されるキャラクタの平均の線幅が10ドッ
ト程度であっても、若干のバラツキを有することができ
る。
は、収束目標値を最細字の線幅より小さく設定し(例え
ば10ではなく5くらいにする)、同時に収束率を少し
小さくする(100%でなく80%くらいにする)。こ
れにより生成されるキャラクタの平均の線幅が10ドッ
ト程度であっても、若干のバラツキを有することができ
る。
【0078】以上、線幅の収束変化の原理を述べた。こ
の例では、収束目標値を、オリジナルキャラクタ(太
字)の半分ぐらいの細い状態に設定したので収束率が0
→100%に変化し、収束目標値に収束するに従って、
字形の線幅が細くなる。
の例では、収束目標値を、オリジナルキャラクタ(太
字)の半分ぐらいの細い状態に設定したので収束率が0
→100%に変化し、収束目標値に収束するに従って、
字形の線幅が細くなる。
【0079】実施例2 実施例1では収束目標値または収束率を変更すると、収
束倍率が変化するので、最適な収束目標値と収束率の決
定が困難である。そこでキャラクタの平均線幅の変更
と、収束率の変更を次のように独立に行う方法も考えら
れる。
束倍率が変化するので、最適な収束目標値と収束率の決
定が困難である。そこでキャラクタの平均線幅の変更
と、収束率の変更を次のように独立に行う方法も考えら
れる。
【0080】例えば、オリジナルキャラクタ(太字)の
縦方向ストロークの平均の線幅は、20ドットであり、
フォントデザイナが10ドットのフォントセットを要求
した場合は、線幅制御情報Wx=10/20ドット=5
0%を対象となるキャラクタの全ての線幅ベクトルのX
軸成分に乗じる。横方向ストロークについても、同様に
Wyの値を定めて、Y軸成分に乗じる。同時に、このW
x,Wyの値を対象となるキャラクタの各要素のフラグ
のX,Yの値に乗じて、フラグの内容を更新する。
縦方向ストロークの平均の線幅は、20ドットであり、
フォントデザイナが10ドットのフォントセットを要求
した場合は、線幅制御情報Wx=10/20ドット=5
0%を対象となるキャラクタの全ての線幅ベクトルのX
軸成分に乗じる。横方向ストロークについても、同様に
Wyの値を定めて、Y軸成分に乗じる。同時に、このW
x,Wyの値を対象となるキャラクタの各要素のフラグ
のX,Yの値に乗じて、フラグの内容を更新する。
【0081】次にフォントデザイナの要求するフォント
セットの縦および横方向ストロークの平均の線幅を収束
目標値(X,Y)とし、フォントデザイナの要求する収
束率に従って収束変化を行う。
セットの縦および横方向ストロークの平均の線幅を収束
目標値(X,Y)とし、フォントデザイナの要求する収
束率に従って収束変化を行う。
【0082】実施例1では、平均の線幅は収束目標値よ
り大きかったので、収束変化すると、全ての線幅ベクト
ルは細くなった。しかし、上記のように、平均の線幅を
収束目標値とすると、フォントセット全体では、この収
束目標値を中心として、太い線幅と細い線幅の文字要素
が平均的に分布する。また収束変化すると、太い線幅は
細く、細い線幅は太くなり、平均の線幅は変更しない。
り大きかったので、収束変化すると、全ての線幅ベクト
ルは細くなった。しかし、上記のように、平均の線幅を
収束目標値とすると、フォントセット全体では、この収
束目標値を中心として、太い線幅と細い線幅の文字要素
が平均的に分布する。また収束変化すると、太い線幅は
細く、細い線幅は太くなり、平均の線幅は変更しない。
【0083】従って文字幅の減少と収束とを独立して行
うことができるので、線幅制御情報(Wx,Wy)、収
束目標値、および収束率の値を決定し易い。
うことができるので、線幅制御情報(Wx,Wy)、収
束目標値、および収束率の値を決定し易い。
【0084】図7にフォントデザイナの要求からキャラ
クタの発生までのCPU5のフローチャートを示す。な
お、すでにオリジナルキャラクタ(最大幅のキャラク
タ)のデータベース8およびフラグの付いた要素のデー
タベース9が完成しているとする。ステップS1ではフ
ォントデザイナの要求を入力する。かかる要求には、明
朝体,ゴシック体などの書体の種類101、キャラクタ
を特定するキャラクタコード102、キャラクタの大き
さを示す文字枠制御情報103、キャラクタの平気の太
さを示す線幅制御情報104、収束目標値105、収束
率106等が含まれる。
クタの発生までのCPU5のフローチャートを示す。な
お、すでにオリジナルキャラクタ(最大幅のキャラク
タ)のデータベース8およびフラグの付いた要素のデー
タベース9が完成しているとする。ステップS1ではフ
ォントデザイナの要求を入力する。かかる要求には、明
朝体,ゴシック体などの書体の種類101、キャラクタ
を特定するキャラクタコード102、キャラクタの大き
さを示す文字枠制御情報103、キャラクタの平気の太
さを示す線幅制御情報104、収束目標値105、収束
率106等が含まれる。
【0085】ステップS2ではステップS1で入力した
書体の種類101,キャラクタコード102を用いて明
朝体,ゴシック体等のフォントデータベースから1文字
分のデータを抽出する。
書体の種類101,キャラクタコード102を用いて明
朝体,ゴシック体等のフォントデータベースから1文字
分のデータを抽出する。
【0086】ステップS3では、ステップS1で入力し
た文字枠制御情報を、ステップS2で抽出したキャラク
タの各スケルトンの座標値に乗じてキャラクタの拡大ま
たは縮小を行う。
た文字枠制御情報を、ステップS2で抽出したキャラク
タの各スケルトンの座標値に乗じてキャラクタの拡大ま
たは縮小を行う。
【0087】ステップS4では、ステップS1で入力し
た線幅制御情報104を、キャラクタの各線幅ベクトル
に乗じて線幅を変更する。このとき、キャラクタを構成
する各要素のフラグにも線幅制御情報104を乗じて、
フラグの値を各要素の主要線幅に更新する。
た線幅制御情報104を、キャラクタの各線幅ベクトル
に乗じて線幅を変更する。このとき、キャラクタを構成
する各要素のフラグにも線幅制御情報104を乗じて、
フラグの値を各要素の主要線幅に更新する。
【0088】ステップS5では、ステップS1で入力し
た収束目標値105,収束率106および更新したフラ
グの値を用いて、各要素の収束倍率を計算する。次に、
各要素の収束倍率をそれぞれの線幅ベクトルに乗じる。
た収束目標値105,収束率106および更新したフラ
グの値を用いて、各要素の収束倍率を計算する。次に、
各要素の収束倍率をそれぞれの線幅ベクトルに乗じる。
【0089】ステップS6では、ステップS3で得たス
ケルトンの座標値およびステップS5で得た線幅ベクト
ルを用いてフォントを作成する。
ケルトンの座標値およびステップS5で得た線幅ベクト
ルを用いてフォントを作成する。
【0090】ステップS7では、作成したフォントをメ
モリに格納する。
モリに格納する。
【0091】ステップS8では、作成したフォントをデ
ィスプレイ2に表示する。
ィスプレイ2に表示する。
【0092】図8に、ゴジック体のフォントを収束変化
させた結果を示す。
させた結果を示す。
【0093】図8でA1,B1は、オリジナルキャラク
タ(太字)であり、他は細字である。オリジナルキャラ
クタは最も太い字であるので、線幅制御情報Wx,Wy
=100%である。オリジナルキャラクタ以外はすべ
て、線幅の平均の太さをオリジナルキャラクタの40%
すなわち線幅制御情報Wx,Wy=40%とした。A
3,B3の「百」,「蘭」は、収束変化しない場合の細
字である。この場合は、図12のA3,B3ですでに述
べたように、「百」と「蘭」では「百」の線幅が太く、
「百」と「蘭」の線幅が釣合いが取れない。また「蘭」
だけを見た場合、線幅の不揃いが大きすぎる。これを改
良するために、収束変化をした例がA4,B4である。
ここで収束目標値をX=11ドット,Y=9ドットとし
た。これらの値は、オリジナルキャラクタの平均の線幅
の約40%にあたり、A3の「百」の線幅に近い。ここ
で収束率X,Y=40%(中程度より少し弱い収束であ
る)とした。A4,B4の「百」と「蘭」を比べると、
線幅が揃い、釣合いが取られてきている。また「蘭」だ
けを見ると、各ストロークの線幅が均一値に近づいてい
く。ここでは「百」と「蘭」だけを見たが、フォントセ
ット全体においても、線幅の釣合いが取れる。これらA
4,B4の「百」,「蘭」は、なお、線幅が微妙に違っ
ているが、この程度の違いがある方が美しく見える。次
にA5,B5は、収束倍率および収束目標値はA4,B
4と同じである。A5,B5ではA4,B4により収束
変化を強くして、収束率X,Y=80%とした。これに
より、A5,B5の「百」,「蘭」は、全てのストロー
クの線幅が、ほとんど同一になった。この場合「蘭」は
画数が多いため「百」より黒っぽく見え、文字も大きく
見える。従ってこの場合は収束が強すぎる。ただしより
細い極細字の場合ならばこの程度の収束率でも良い。
タ(太字)であり、他は細字である。オリジナルキャラ
クタは最も太い字であるので、線幅制御情報Wx,Wy
=100%である。オリジナルキャラクタ以外はすべ
て、線幅の平均の太さをオリジナルキャラクタの40%
すなわち線幅制御情報Wx,Wy=40%とした。A
3,B3の「百」,「蘭」は、収束変化しない場合の細
字である。この場合は、図12のA3,B3ですでに述
べたように、「百」と「蘭」では「百」の線幅が太く、
「百」と「蘭」の線幅が釣合いが取れない。また「蘭」
だけを見た場合、線幅の不揃いが大きすぎる。これを改
良するために、収束変化をした例がA4,B4である。
ここで収束目標値をX=11ドット,Y=9ドットとし
た。これらの値は、オリジナルキャラクタの平均の線幅
の約40%にあたり、A3の「百」の線幅に近い。ここ
で収束率X,Y=40%(中程度より少し弱い収束であ
る)とした。A4,B4の「百」と「蘭」を比べると、
線幅が揃い、釣合いが取られてきている。また「蘭」だ
けを見ると、各ストロークの線幅が均一値に近づいてい
く。ここでは「百」と「蘭」だけを見たが、フォントセ
ット全体においても、線幅の釣合いが取れる。これらA
4,B4の「百」,「蘭」は、なお、線幅が微妙に違っ
ているが、この程度の違いがある方が美しく見える。次
にA5,B5は、収束倍率および収束目標値はA4,B
4と同じである。A5,B5ではA4,B4により収束
変化を強くして、収束率X,Y=80%とした。これに
より、A5,B5の「百」,「蘭」は、全てのストロー
クの線幅が、ほとんど同一になった。この場合「蘭」は
画数が多いため「百」より黒っぽく見え、文字も大きく
見える。従ってこの場合は収束が強すぎる。ただしより
細い極細字の場合ならばこの程度の収束率でも良い。
【0094】次に、明朝体フォントの収束変化を、図9
を用いて検討する。
を用いて検討する。
【0095】図9で、A1,B1,C1,D1は、オリ
ジナルキャラクタであり、これ以外はすべて細字であ
る。オリジナルキャラクタは最も太い字であるので、線
幅制御情報Wx,Wy=100%である。オリジナルキ
ャラクタ以外は線幅を平均の太さを、オリジナルキャラ
クタの40%とした。従って、A2,B2,C2,D2
とA3,B3,C3,D3は、線幅制御情報Wx,Wy
=40%である。A2,B2,C2,D2は収束変化を
しない場合である。従って、
ジナルキャラクタであり、これ以外はすべて細字であ
る。オリジナルキャラクタは最も太い字であるので、線
幅制御情報Wx,Wy=100%である。オリジナルキ
ャラクタ以外は線幅を平均の太さを、オリジナルキャラ
クタの40%とした。従って、A2,B2,C2,D2
とA3,B3,C3,D3は、線幅制御情報Wx,Wy
=40%である。A2,B2,C2,D2は収束変化を
しない場合である。従って、
【0096】
【外6】
【0097】オリジナルキャラクタ(太字)において
も、
も、
【0098】
【外7】
【0099】しかし、オリジナルキャラクタ(太字)の
場合、ストロークが非常に太く、スキマが狭く、黒部分
が多いので、
場合、ストロークが非常に太く、スキマが狭く、黒部分
が多いので、
【0100】
【外8】
【0101】したがって、このままで良い。しかし、オ
リジナルキャラクタ(太字)のすべての線幅ベクトル
に、線幅制御情報Wx,Wy=40%を乗じたA2,B
2,C2,D2のケースでは
リジナルキャラクタ(太字)のすべての線幅ベクトル
に、線幅制御情報Wx,Wy=40%を乗じたA2,B
2,C2,D2のケースでは
【0102】
【外9】
【0103】オリジナルキャラクタ(太字)と同じにも
かかわらず、
かかわらず、
【0104】
【外10】
【0105】これは、白部分が多くなったため、線の太
さの違いがはっきりわかるためである。これを改良する
ために、収束変化を行わないケース(A2,B2,C
2,D2)を基準として、収束変化をした例がA3,B
3,C3,D3である。ここでは、収束目標値をX=1
0ドット,Y=3ドット,収束率X,Y=60%とし
た。この場合の収束目標値は、収束変化=なしの場合の
「道」,「県」(A2,B2)の線幅にきわめて近い。
従って収束変化なしの場合とありの場合では「道」,
「県」の線幅は、ほとんど変わらないが、
さの違いがはっきりわかるためである。これを改良する
ために、収束変化を行わないケース(A2,B2,C
2,D2)を基準として、収束変化をした例がA3,B
3,C3,D3である。ここでは、収束目標値をX=1
0ドット,Y=3ドット,収束率X,Y=60%とし
た。この場合の収束目標値は、収束変化=なしの場合の
「道」,「県」(A2,B2)の線幅にきわめて近い。
従って収束変化なしの場合とありの場合では「道」,
「県」の線幅は、ほとんど変わらないが、
【0106】
【外11】
【0107】これで、収束変化を行った場合は4つの文
字の線幅が揃ってきて、バランスが改善されたことがわ
かる。図8(ゴシック体の収束変化)はわかりにくい
が、図9(明朝体の収束変化)がわかりやすいのは、明
朝体の場合は横線の線幅が、どのキャラクタでもほとん
ど同じだからである。
字の線幅が揃ってきて、バランスが改善されたことがわ
かる。図8(ゴシック体の収束変化)はわかりにくい
が、図9(明朝体の収束変化)がわかりやすいのは、明
朝体の場合は横線の線幅が、どのキャラクタでもほとん
ど同じだからである。
【0108】
【発明の効果】以上から明らかなように、本発明キャラ
クタ作成/出力方法および装置によれば、キャラクタを
構成する1以上の要素のそれぞれの主要部の線幅を記憶
し、前記1以上の要素に共通する前記主要部の線幅の収
束目標値を指定し、前記主要部の線幅を前記収束目標値
に近づける割合を示す収束率を指定し、前記収束率およ
び前記収束目標値に基づいて、前記主要部の線幅を増加
または減少する割合を示す収束倍率を要素毎に計算し、
前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更するので、
中字もしくは細字のデザイン・ルールを満足するように
キャラクタを構成するストロークの線幅を変化すること
ができる。
クタ作成/出力方法および装置によれば、キャラクタを
構成する1以上の要素のそれぞれの主要部の線幅を記憶
し、前記1以上の要素に共通する前記主要部の線幅の収
束目標値を指定し、前記主要部の線幅を前記収束目標値
に近づける割合を示す収束率を指定し、前記収束率およ
び前記収束目標値に基づいて、前記主要部の線幅を増加
または減少する割合を示す収束倍率を要素毎に計算し、
前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更するので、
中字もしくは細字のデザイン・ルールを満足するように
キャラクタを構成するストロークの線幅を変化すること
ができる。
【0109】従って本発明によれば、高品質な細字を作
ることができると共に、太字と細字の間の中字をも、無
段階かつ高品位に作成/出力できる。
ることができると共に、太字と細字の間の中字をも、無
段階かつ高品位に作成/出力できる。
【0110】さらに本発明によれば、オリジナルキャラ
クタを一種類記憶するのみで線幅の変更ができるので、
太字と細字の2種類のフォントを用いる方法と比較して
フォントの開発コストおよび開発期間を半減することが
できる。
クタを一種類記憶するのみで線幅の変更ができるので、
太字と細字の2種類のフォントを用いる方法と比較して
フォントの開発コストおよび開発期間を半減することが
できる。
【図1】本発明キャラクタ作成/出力方法および装置の
一実施例を示す外観図である。
一実施例を示す外観図である。
【図2】本発明キャラクタ作成/出力方法および装置の
ハードウエアの一実施例を示すブロック図である。
ハードウエアの一実施例を示すブロック図である。
【図3】本発明における要素データベースのデータ構成
の説明図である。
の説明図である。
【図4】フラグを付けた要素を合成するキャラクタを示
す説明図である。
す説明図である。
【図5】明朝体フォントの各要素にフラグを付けた説明
図である。
図である。
【図6】本発明線幅変化の方法を示す図である。
【図7】本発明における線幅を変更したキャラクタの作
成プロセスのフローチャートである。
成プロセスのフローチャートである。
【図8】ゴシック体フォントに本発明を適用した効果を
示す説明図である。
示す説明図である。
【図9】明朝体フォントに本発明を適用した効果を示す
説明図である。
説明図である。
【図10】従来多く用いられているフォントの種類の説
明図である。
明図である。
【図11】従来の線幅コントロール方法の4例の説明図
である。
である。
【図12】従来の技術で線幅変換を行った結果の説明図
である。
である。
1 キーボード 2 ディスプレイ 3 フロッピーディスク駆動装置 4 ハードディスク 5 CPU 6 ROM 7 RAM 8 キャラクタデータベース 9 要素データベース 91 要素コード 92 デザインボックスサイズ(DBS) 93 フラグデータ(x,y) 94 スケルトン 95 ベクトル情報
Claims (4)
- 【請求項1】 1以上の要素から構成されるキャラクタ
の、線幅を変更するキャラクタ作成装置において、 前記1以上の要素のそれぞれの主要部の線幅を記憶する
手段と、 前記1以上の要素に共通する前記主要部の線幅の収束目
標値を指定する手段と、 前記主要部の線幅を前記収束目標値に近づける割合を示
す収束率を指定する手段と、 前記収束率および前記収束目標値に基づいて、前記主要
部の線幅を増加または減少する割合を示す収束倍率を要
素毎に計算する手段と、 前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更する手段と
を具えることを特徴とするキャラクタ作成装置。 - 【請求項2】 1以上の要素から構成されるキャラクタ
の、線幅を変更し出力するキャラクタ出力装置におい
て、 線幅の増加または減少を行う基となるオリジナルキャラ
クタのデータベースを記憶する手段と、 該データベースの1つのキャラクタを特定する手段と、 前記1つのキャラクタを構成する要素のそれぞれの主要
部の線幅を記憶する手段と、 線幅の増加または減少倍率を入力する手段と、 前記1以上の要素に共通する前記主要部の線幅の収束目
標値を、前記増加または減少倍率に基づいて決定する手
段と、 前記主要部の線幅を前記収束目標値に近づける割合を示
す収束率を、前記増加または減少倍率に基づいて決定す
る手段と、 前記収束率および前記収束目標値に基づいて、前記主要
部の線幅を増加または減少する割合を示す収束倍率を要
素毎に計算する手段と、 前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更する手段
と、 線幅を変更したキャラクタを出力する出力手段とを具え
たことを特徴とするキャラクタ出力装置。 - 【請求項3】 1以上の要素から構成されるキャラクタ
の、線幅を変更するキャラクタ作成方法において、 前記1以上の要素のそれぞれの主要部の線幅を記憶する
ステップと、 前記1以上の要素に共通する前記主要部の線幅の収束目
標値を指定するステップと、 前記主要部の線幅を前記収束目標値に近づける割合を示
す収束率を指定するステップと、 前記収束率および前記収束目標値に基づいて、前記主要
部の線幅を増加または減少する割合を示す収束倍率を要
素毎に計算するステップと、 前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更するステッ
プとを具えることを特徴とするキャラクタ作成方法。 - 【請求項4】 1以上の要素から構成されるキャラクタ
の、線幅を変更し出力するキャラクタ出力方法におい
て、 線幅の増加または減少を行う基となるオリジナルキャラ
クタのデータベースを記憶するステップと、 該データベースの1つのキャラクタを特定するステップ
と、 前記1つのキャラクタを構成する要素のそれぞれの主要
部の線幅を記憶するステップと、 線幅の増加または減少倍率を入力するステップと、 前記1以上の要素に共通する前記主要部の線幅の収束目
標値を前記増加または減少倍率に基づいて指定するステ
ップと、 前記主要部の線幅を前記収束目標値に近づける割合を示
す収束率を前記増加または減少倍率に基づいて指定する
ステップと、 前記収束率および前記収束目標値に基づいて、前記主要
部の線幅を増加または減少する割合を示す収束倍率を要
素毎に計算するステップと、 前記収束倍率をそれぞれの要素の複数部分の線幅を表わ
す値に乗じて前記1以上の要素の線幅を変更するステッ
プと、 線幅を変更したキャラクタを出力する出力ステップとを
具えたことを特徴とするキャラクタ出力方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4294477A JPH0711749B2 (ja) | 1992-11-02 | 1992-11-02 | キャラクタ作成/出力方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4294477A JPH0711749B2 (ja) | 1992-11-02 | 1992-11-02 | キャラクタ作成/出力方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06149211A true JPH06149211A (ja) | 1994-05-27 |
JPH0711749B2 JPH0711749B2 (ja) | 1995-02-08 |
Family
ID=17808283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4294477A Expired - Lifetime JPH0711749B2 (ja) | 1992-11-02 | 1992-11-02 | キャラクタ作成/出力方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0711749B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001038680A (ja) * | 1999-07-30 | 2001-02-13 | Sanyo Electric Co Ltd | カッティングプリンタ |
-
1992
- 1992-11-02 JP JP4294477A patent/JPH0711749B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001038680A (ja) * | 1999-07-30 | 2001-02-13 | Sanyo Electric Co Ltd | カッティングプリンタ |
Also Published As
Publication number | Publication date |
---|---|
JPH0711749B2 (ja) | 1995-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4418044B2 (ja) | デジタルフォントにおけるキャラクタを表示する方法、デジタルフォントのキャラクタを画定する方法、及びデジタルフォントにおけるキャラクタを発生する方法 | |
JP3545409B2 (ja) | ページ記述言語フォーマットで指定された印刷ページにトラップを付与する方法 | |
EP1762983B1 (en) | Glyph adjustment in high resolution raster while rendering | |
KR100891428B1 (ko) | 컬러 그라디언트 생성을 위한 시스템 및 방법, 컬러 그라디언트를 용이하게 하는 보간 방법, 컬러 그라디언트를 용이하게 하는 데이터 패킷을 저장하는 컴퓨터 판독가능 기록 매체 | |
US5301267A (en) | Intelligent font rendering co-processor | |
US7580039B2 (en) | Glyph outline adjustment while rendering | |
US7639258B1 (en) | Winding order test for digital fonts | |
JP3941525B2 (ja) | 印刷制御装置、および、プログラム | |
JP3142550B2 (ja) | 図形処理装置 | |
US5524198A (en) | Character or graphic processing method and apparatus | |
JPH06208370A (ja) | エイリアシング阻止および格子適合を結合した文字表示ラスタ化方法 | |
KR101159387B1 (ko) | 강조된 앤티-에일리어싱 비트맵을 생성하기 위한 입력 흑백비트맵의 사용 | |
JPH06149211A (ja) | キャラクタ作成/出力方法および装置 | |
JP4143613B2 (ja) | 描画方法、描画装置 | |
JP2003162728A (ja) | 画像処理装置及び画像出力装置 | |
JP3170155B2 (ja) | フォント展開装置 | |
JP5492911B2 (ja) | 文字作成方法、および文字作成装置 | |
JP3787380B2 (ja) | 文字データ処理装置及び方法及びコンピュータ制御装置 | |
KR940003701B1 (ko) | 컴퓨터를 사용한 문자도형 발생방법 | |
JP2018019212A (ja) | 情報処理装置及び描画処理方法、コンピュータプログラム | |
JP2908194B2 (ja) | 文字の変形制御方式 | |
JP2841829B2 (ja) | データ変換装置 | |
JPH11110150A (ja) | 画像処理システム及び画像処理方法並びに画像処理制御プログラムが記録されたコンピュータ読み取り可能な記録媒体 | |
JPH0668247A (ja) | ディジタル画像データ変倍方法および装置 | |
JP2000218921A (ja) | 連続階調表現用集合模様の作成方法及び該作成方法をプログラム化して記録した記録媒体 |