JP3224142B2 - ヒンティング処理方法 - Google Patents

ヒンティング処理方法

Info

Publication number
JP3224142B2
JP3224142B2 JP12755692A JP12755692A JP3224142B2 JP 3224142 B2 JP3224142 B2 JP 3224142B2 JP 12755692 A JP12755692 A JP 12755692A JP 12755692 A JP12755692 A JP 12755692A JP 3224142 B2 JP3224142 B2 JP 3224142B2
Authority
JP
Japan
Prior art keywords
hinting
point
line width
points
processing
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 - Lifetime
Application number
JP12755692A
Other languages
English (en)
Other versions
JPH05323937A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP12755692A priority Critical patent/JP3224142B2/ja
Publication of JPH05323937A publication Critical patent/JPH05323937A/ja
Application granted granted Critical
Publication of JP3224142B2 publication Critical patent/JP3224142B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、アウトラインフォント
ファイルにおけるヒンティング処理方法に関する。
【0002】
【従来の技術】デスクトップパブリッシング、パーソナ
ルコンピュータ、ワードプロセッサ、ディジタルファッ
クス等においては、その装置内に文字フォントデータが
用意されている。斯るフォントデータは、通常、ドット
パターン方式、アウトライン方式、あるいはそれらの併
用方式の何れかの方式によって保持されている。そし
て、アウトラインフォントを表示、印刷するために、そ
のフォント表現はドットパターンに変換される。
【0003】従来、アウトラインフォントをドットイメ
ージに変換するラスタライズにおいては、フォントファ
イルによって輪郭点の座標データと各輪郭点のヒンティ
ングに関する属性データが与えられ、実際のヒンティン
グ処理は、これら座標データと属性データを用いてラス
タライザが行っていた。
【0004】ここで、ヒンティング処理とは、アウトラ
インを美しく整形するための処理をいい、ヒンティング
に際して輪郭点を適当な位置に移動することによって行
う。従来、このヒンティング処理は、四捨五入や切り捨
てなどの丸め処理を行っているために、本来滑らかにつ
ながるようにデザインされた複数の曲線がヒンティング
処理後には凸凹になり易いという傾向があった。
【0005】
【発明が解決しようとする課題】上記した点を改善する
技術としては、例えば、特開平2−223988号公報
に記載の文字処理装置が提案されている。この装置は、
文字パターンを分類分けし、分類されたパターンについ
て条件に合った平滑化処理を施すものであるが、その処
理は非常に複雑である。
【0006】ところで、この種の技術分野においては、
アウトラインフォントのサイズが大きくなるにしたがっ
て線が細くなって見えるという問題があることが良く知
られている。これは、ステムなどの黒部分が太くなるの
と同時に、その隙間の白部分も広くなり、この結果、人
間の目には白部分のみが強調されて相対的に線が細く見
えてしまうと説明される。
【0007】そこで、これを解決した技術として、特公
昭63−6874号公報に記載の文字・図形の発生方法
があるが、この方法は一つの文字の輪郭部について2つ
のパターンを文字メモリに格納して処理しているので、
処理データ量が通常の2倍近くになるという欠点があっ
た。
【0008】本発明の目的は、デザイン時の輪郭点の相
対的な位置を保持し、かつ簡単な処理と、より少ないデ
ータ量で輪郭線を制御し、また、変倍後のサイズに適応
して線幅を変化させ、サイズに応じて高品質に処理する
ヒンティング処理方法を提供することにある。
【0009】
【課題を解決するための手段】前記目的を達成するため
に、請求項1記載の発明では、複数のグリフデータを有
し、該各グリフデータは、輪郭点の集合であるアウトラ
イン情報と該アウトライン情報を制御するヒンティング
情報によって構成されてなるアウトラインフォントファ
イルにおいて輪郭線を制御し、線幅を補正するヒンティ
ング処理方法であって、縦横ステムを構成する輪郭点、
曲線の始点と終点、曲線中の方向変化を生じる部分に対
しては、線幅補正、線消え防止およびかすれ防止を含む
第1のヒンティング処理を施し、それ以外の輪郭点に対
しては、前記第1のヒンティング処理された点との相対
位置を保つように移動する第2のヒンティング処理を施
すことを特徴としている。
【0010】請求項2記載の発明では、長方形をなす輪
郭線において、前記長方形の対角線上の2点に対して前
記第1のヒンティング処理を施し、他の2点に対して前
記第2のヒンティング処理を施すことを特徴としてい
る。
【0011】請求項3記載の発明では、前記線幅を補正
する第1のヒンティング処理において、変倍後のアウト
ラインフォントのサイズと該サイズに応じた線幅が所定
の関 数関係にあり、前記所定の関数関係を参照して線幅
を決定することを特徴としている。
【0012】請求項4記載の発明では、前記線幅を補正
する第1のヒンティング処理において、変倍後のアウト
ラインフォントのサイズと該サイズに応じた線幅との対
応を記憶したテーブルを参照して線幅を決定すること
特徴としている。
【0013】
【作用】輪郭線の始点と終点の点番号をNs,Neに保
持し、NsとNeのx座標の差をXに、y座標の差をY
に保持する。X(N)を点Nのx座標、Y(N)を点N
のy座標とし、X’(N)を点Nの移動後のx座標、
Y’(N)を点Nの移動後のy座標とし、始点の次の点
をNに設定し、点Nが終点Nsになるまで、X’(N)
とY’(N)を計算し、NをN+1にして繰り返す。こ
れにより、点Nsと点Neに挾まれた点が、最初の相対
位置を保つように移動処理され、ヒンティング処理後の
グリフの形状を美しくすることができる。
【0014】
【実施例】以下、本発明の一実施例を図面を用いて具体
的に説明する。本実施例においては、各輪郭点は、その
グリフ内で一意に定まる連続した番号で参照され、図9
に示すようにその番号は輪郭線をたどる順に1ずつ増え
るものとする。また、曲線の表現としては二次スプライ
ン(これはいわゆるコニック曲線である)を用いて説明
するが、本実施例はこれに限定されるものではなく、他
の曲線の表現であってもよい。
【0015】また、本実施例の前提となるアウトライン
フォントファイル構成は、図15に示すように、n個の
グリフデータ1(グリフ1,グリフ2,・・・グリフ
n)と共有データ2によって構成されている。
【0016】また、図16に示すようにグリフデータ
は、アウトライン情報11とヒンティング情報12から
なっている。そして、アウトライン情報11は、連続的
に番号を付けられた輪郭点とその座標データからなり、
ヒンティング情報12は、アウトライン情報11を制御
する命令列(例えば、点1を右に1ドットシフトすると
いう命令など)から構成されている。図17は、共有デ
ータ2の中に輪郭点を制御するためのサブルーチン群
(サブルーチン1からサブルーチンm)が含まれている
図である。
【0017】なお、本実施例で用いる従来のヒンティン
グ処理について簡単に説明する。 (1)線幅補正 変倍されたフォントのアウトラインをそのままラスタラ
イズすると、その置かれた位置によっては、本来同じ幅
にデザインされていても、生成されるドットイメージと
しては異なる幅になってしまうことがある。これを補正
処理するのがいわゆる線幅補正である。これは以下のよ
うにして処理する。
【0018】 1.縦ステムの左側の縦線、横ステムの下側の横線をピ
クセル境界やピクセル中心などの特定の位置に移動し、
そこから特定の距離の位置に対応する線を移動する。 2.縦横ステムの中心線をピクセル境界やピクセル中心
などの特定の位置に移動し、そこから特定の距離の位置
に輪郭線を移動する。 3.各文字に複数の特徴点を設定し、各ステムの位置を
その特徴点からの距離として管理する。この制御点をピ
クセル境界やピクセル中心などの特定の位置に移動し、
そこから特定の距離の位置に各ステムを移動する。
【0019】(2)線消えの防止 変倍によってそのサイズが小さくなると、あるステムが
ピクセルとピクセルの間に入ってしまうことがある。そ
のためにそのステムはドットとしては現われない。これ
を防止するために、次の方法が用いられる。
【0020】 1.アウトラインのそのステムに関わる部分のみを移動
してドットとして現われるようにする。 2.ステムの最小幅を例えば1に規定しておくことによ
り、必ずそのステムが現われるようにする。 3.ラスタライザの機能として、このような線消えが起
きないようにする。このような処理は、斜線や曲線によ
って構成される縦横に尖った部分についても適用され
る。
【0021】(3)かすれの防止 変倍によってそのサイズが小さくなると、斜線や曲線に
おいてその一部がピクセルとピクセルの間に入ってしま
うことがある。その結果、かすれて見えることになり、
美しさが損なわれる。これを防止するために、次の方法
が用いられる。
【0022】 1.斜線や曲線の最小幅を例えば1に規定しておくこと
により、必ずその斜線や曲線が現われるようにする。 2.ラスタライザの機能として、このようなかすれが起
きないようにする。
【0023】〈実施例1〉 本発明は、上記ヒンティング情報12における輪郭点の
制御方法に係り、図1は、本実施例に係る相対位置を保
存して移動処理するヒンティング処理のフローチャート
である。図1において、まず輪郭線の始点と終点の点番
号をNs,Neにそれぞれ保持する(ステップ10
1)。NsとNeのx座標の差をXに、y座標の差をY
に保持する(ステップ102)。このときXまたはYが
0であれば例外として処理する(ステップ108)。
【0024】X(N)を点Nのx座標、Y(N)を点N
のy座標とし、X’(N)を点Nの移動後のx座標、
Y’(N)を点Nの移動後のy座標とする。始点の次の
点をNに設定する(ステップ104)。そして、点Nが
終点Nsになるまで、 X’(N)={(X(N)−X(Ns))*(X’(Ne)−X’(Ns)) /X}+X’(Ns) Y’(N)={(Y(N)−Y(Ns))*(Y’(Ne)−Y’(Ns)) /Y}+Y’(Ns) を計算し、NをN+1にして繰り返す(ステップ10
5,106,107)。
【0025】上記移動後の位置の計算は、比例配分の方
法であり、これにより、点Nsと点Neに挾まれた点
を、最初の相対位置を保つように移動することができ
る。本実施例の処理を用いて実際に図形を移動する例を
図2を用いて説明する。なお、ここでは元の図形をある
サイズに縮小してあるものとして説明する。
【0026】図2(a)は、初期状態を示す図であり、
点aで始まり点bをオフポイント(曲線の始点と終点に
はさまれた、曲線を制御するための点をいう)として点
cに至る曲線と、点cに始まり点dをオフポイントとし
て点eに至る曲線が滑らかに接続している状態を表して
いる。各点の相対位置は、 X(b)−X(a):X(c)−X(b):X(d)−X(c):X(e) −X(d)=2:5:5:4 Y(b)−Y(a):Y(c)−Y(b):Y(d)−Y(c):Y(e) −Y(d)=7:3:3:−2 である。
【0027】図2(b)は、従来のヒンティング処理に
よって、これらの輪郭点が整数座標上に丸められた図を
示し、この図から明らかなように、曲線の接続が正しく
保存されていない。
【0028】そこで、本実施例では、点aと点eのみに
従来のヒンティング処理を施し、残る点に対して、前述
した相対位置を保つように点を移動することによって、
図2(c)に示す曲線が得られる。図2(c)の曲線か
ら明らかなように、曲線の接続が正しく保存されている
ことが分かる。このように、実施例1では、デザイン時
の輪郭点の相対的な位置が保存されるので、ヒンティン
グ処理後もグリフの形状が極端に歪むことが防止され、
特に連続した曲線においてその効果が顕著に現われる。
また、ウロコやトメといったグリフの特徴的な形状を統
一することができる。
【0029】〈実施例2〉 漢字のように画数の多い文字を表示する際に重要なこと
は、ウロコやトメの如き特徴を少なくともそのグリフ内
で統一して表示することである。図4は、グリフの一例
を示す図で、点nと点iの部分の形状がグリフ内におい
て統一されている必要がある。勿論、フォント全体を通
じて形状が統一されていることが望ましいが、そのため
に相当な処理を要する。そこで、本実施例では、一つの
グリフ中においては同じ形状になるように処理するもの
である。
【0030】図4のグリフにおいて、点oと点j、点m
と点hに対して、それぞれ同じヒンティング処理が施さ
れる。従って、本実施例では、それらの点との相対位置
を保つことによって、点nと点iの部分が同一の形状の
ドットイメージを生成するようにしたものである。
【0031】図3は、実施例2の処理フローチャートで
ある。なお、ここでは説明を簡単にするために、輪郭線
の始点はオフポイントではないものとする。まず、輪郭
線の始点をPnとする(ステップ201)。Pnがオフ
ポイントでなければ(ステップ204)、通常のヒンテ
ィング処理を施す(ステップ205)。その後PnをP
n+1にする(ステップ206)。この処理をPnが輪
郭線の終点を越えるまで繰り返す(ステップ203)。
【0032】再び、輪郭線の始点をPnとし、その直前
の点(この時点では輪郭線の終点)をPpとする(ステ
ップ207)。Pnがオフポイントでなければ何もしな
い。Pnがオフポイントである間、PnをPn+1にす
ることを繰り返す(ステップ210,211,21
2)。このとき、輪郭線の終点に至った場合には始点に
戻る(ステップ215)。Pnがオフポイントでなくな
った時点で、PpとPnで挾まれた点に対して図1に示
した相対位置を保つ移動処理を施す(ステップ21
3)。PnをPn+1に、Ppをその直前の点にする
(ステップ214)。以上の処理をPnが輪郭線の終点
を越えるまで繰り返す。
【0033】このように、実施例2によれば、トメなど
の一つの曲線で表される形状については、グリフ内でそ
の形状を統一することができる。
【0034】〈実施例3〉 明朝体のように縦横ステムに特徴のあるフォントにおい
ては、それらに対するヒンティング処理が重要となる。
つまり、逆にいえばそれ以外の点については、ヒンティ
ング処理はさほど重要ではないことになる。
【0035】本実施例では、図4に示すグリフにおい
て、縦横ステムを構成する点a,b,c,g,h,j,
k,l,m、oに対して従来のヒンティング処理(例え
ば、線幅の補正処理など)を施し、それ以外の点d,
e,f,i,nに対しては、本実施例の図1の相対位置
を保つ移動処理を施すだけで、十分に美しい形状を得ら
れるようにしたものである。
【0036】図5、図6は、実施例3の処理フローチャ
ートである。図5、図6において、輪郭線の始点をP
s、Psの次の点をPeとする(ステップ301)。P
sとPeのx座標が同じであるならば、PsからPeに
至る線分は垂直線である(ステップ302)。そして、
その線分は、縦ステムの左右端の何れかであるが(ステ
ップ307)、もし、Psのy座標がPeのそれよりも
大きければ右端、そうでなければ左端と判定され、これ
らに対しては縦ステムの幅を所定幅にするようなヒンテ
ィング処理を施す(ステップ308,309)。
【0037】PsとPeのx座標が異なり、y座標が等
しい場合も(ステップ303)全く同様に横ステムの上
端であるか下端であるかを判定する(ステップ30
4)。そして、これらに対しては横ステムの幅を所定幅
にするようなヒンティング処理を施す(ステップ30
5,306)。
【0038】PsからPeに至る線分が、上記いずれの
ステムでもなければ何もしない。Psが輪郭線の終点に
なるまで、つまり輪郭線上のすべての線分について以上
の処理を行う(ステップ310,311,312,31
3)。
【0039】再び、輪郭線の始点をPsとして、Psの
次の点をPeとする(ステップ314)。PsからPe
に至る線分が水平または垂直であるならば、何もしない
(ステップ324以下)。そうでなければ、その始点P
sをPcに保持する(ステップ316)。PsをPeと
し、Psの次の点をPeとする(ステップ317,31
8、320)。PsからPeに至る線分が水平または垂
直でない間、この処理を繰り返す(ステップ322)。
【0040】PsからPeに至る線分が水平または垂直
になったら、PcとPsに挾まれた一連の点に対して、
図1の相対位置を保つ移動処理を施す(ステップ32
2,323)。なお、繰返し中に輪郭線の終点が来たと
きはエラーであるが、ここで図1の相対位置を保つ移動
処理を施して処理を終了する(ステップ321)。その
後、PsをPeとし、Psの次の点をPeとする(ステ
ップ327)。そして、ステップ315に戻る。このと
きPsが輪郭線の終点に来れば処理を終了する(ステッ
プ325)。
【0041】本実施例によれば、縦横ステムに従来のヒ
ンティング処理を施すだけで、グリフ全体として整った
形状にすることができ、また縦横ステム以外の部分に
は、移動処理のヒンティング処理を施しているので、そ
の処理データ量を大幅に削減することが可能となる。
【0042】〈実施例4〉 図9(a)のグリフに対して、上記した実施例3の処理
を適用した場合、点0,1,2の如きステム上の点に対
しては従来のヒンティング処理が施される。これに対し
て、点13から点19に至る曲線群や点23から点27
に至る曲線群は、その縦横ステムのヒンティング処理に
伴って図1の相対位置を保つ移動処理が施される。この
ため、ステムに対する従来のヒンティング処理によって
ステムの太さに変化が生じたとき、曲線部の太さとの統
一性が失われる可能性がある。
【0043】そこで、本実施例では、点13,19や点
23,27を上下に移動するようなヒンティング処理を
施し、その後、図1の相対位置を保つ移動処理を施すこ
とによって、曲線部を滑らかにしつつ全体の太さを調整
するようにしたものである。
【0044】図7,図8は、実施例4の処理フローチャ
ートである。この処理は、基本的には図5,図6の処理
と同じものである。ただし、ここでは縦横ステムに対す
る従来のヒンティング処理(図5のステップ305,3
06,308,309)を「補正処理(ステップ40
3)」としてまとめている。
【0045】まず、Psを輪郭線の始点とし、PeをP
sの次の点とする(ステップ401)。PsからPeに
至る直線が縦横ステムを構成するならば、そのためのヒ
ンティング処理を施す(ステップ403)。そうでなけ
れば、PsからPeに至る直線が縦横ステムとなるま
で、逐次PsとPeを増やしながら輪郭線をたどる(ス
テップステップ407、ステップ413までの処理)。
【0046】輪郭線の終点に至ったところで(ステップ
405、ステップ411)、再びPsを輪郭線の始点と
し、PeをPsの次の点とする(ステップ414)。P
sが曲線部の開始点であれば(ステップ415)、Pc
にPsを保持する(ステップ420)。Peが曲線部の
終点になるまでPsとPeを増やしながら輪郭線をたど
る(ステップ421以下を繰り返す)。曲線部の始点、
終点であるPcとPeに必要なヒンティング処理を施
す。その後、これらPcとPeに挾まれた点に対して、
図1の移動処理を施す(ステップ426)。Psが曲線
部の終点でない間、PsとPeを増やしながら輪郭線を
たどり、以上の処理を繰り返す。
【0047】本実施例によれば、縦横ステムと曲線(ま
たは曲線群)の始点、終点だけに従来のヒンティング処
理を施すことにより、美しいヒンティング処理結果を得
ることができる。特に、本実施例の簡単な移動処理によ
って曲線部全体にわたってヒンティング処理が施される
ことになる。
【0048】〈実施例5〉 本実施例は、方向変化を生じる部分に対してヒンティン
グ処理を施すようにしたものである。図9(b)は、漢
字の一部を示し、点5から点6に至る直線と点16から
点17に至る直線は、横ステムを構成している。このよ
うな図に対して、従来は前述した技術を組み合わせてヒ
ンティング処理を施している。すなわち、点5から点6
に至る直線と、点16から点17に至る直線によって構
成される横ステムに対しては、線幅補正と線消え対策が
施され、また点8から点10に至る曲線や点12から点
14に至る曲線に対しては、一種の線消え対策が施され
ている。
【0049】ところが、これらの処理を独立に行うと、
曲線の接続が滑らかでなくなる恐れがあり、また全体の
形状がゆがんでしまいやすい。そこで、上記実施例4で
説明した方式に従って、曲線部に対して移動処理を施す
ことを考える。点6と点16に対しては従来のヒンティ
ング処理が施される。この処理の結果、これらの点は上
下に移動することになる。
【0050】そして、点6と点16の間の曲線に対し
て、移動処理を施すと、点7から点15までの点は、そ
の相対位置を保つように移動される。その結果、これら
の曲線群は滑らかにつながったまま、その位置を変える
ことができる。
【0051】ところが、点6と点16は、上下方向にし
か移動しないため、この移動処理によっては例えば、点
8から点10に至る曲線に一種の線消え対策が施されて
いない。そのため点8から点10に至る曲線部分がドッ
トとしては表示されなくなってしまう可能性がある。点
12から点14に至る曲線についても同様である。
【0052】従って、このような場合には、点8から点
10に至る曲線と点12から点14に至る曲線に対して
は、従来のヒンティング処理を施した後、移動処理を実
行すればよいことになる。すなわち、曲線や斜線が、そ
の方向を大きく変えるときに、従来のヒンティング処理
を施せばよい。
【0053】本実施例では、点をたどる方向の変化が9
0度を下回る(急な角をなす)ものについて従来のヒン
ティング処理を適用する例について示した。しかし、ど
のような条件のときにこれを適用するかについては種々
の方法があり、例えば、90度ではなく、120度を下
回るときに適用するようにしたり、あるいはまた急な傾
きの部分からなだらかな傾きに変わる部分や、その逆の
部分にこれを適用することもできる。
【0054】本実施例によれば、縦横ステムと曲線(ま
たは曲線群)の始点、終点と方向の変化点にヒンティン
グ処理を施すことにより、美しいヒンティング処理結果
を得ることができる。特に、簡単な処理によって曲線部
全体にわたってヒンティング処理が施されることにな
る。
【0055】〈実施例6〉 図10に示す、長方形の輪郭線に対してヒンティング処
理を施すことを考える。例えば、点aを基準にしてヒン
ティング処理をする。点bは、その縦方向には点aと同
じ処理を行い、横方向には縦ステムの線幅を補正するた
めの処理をする。点dは、横方向には点aと同じ処理を
行い、縦方向には横ステムの線幅を補正するための処理
をする。
【0056】残った点cは、縦横方向ともに線幅補正の
ための処理を行わなければならず、処理に相当の時間を
要する。ところが、前述した本実施例の相対位置を保存
する移動処理を用いることによって、この点に対するヒ
ンティング処理を不要にすることができる。つまり、本
実施例の相対位置を保存する移動処理は、元もと等しい
x,y座標は移動処理後も等しいことを保証するからで
ある。同様の理由から、点aについてもヒンティング処
理が不要になり、結局長方形に関しては対角線上の2点
に対してのみヒンティング処理を施せば十分である。
【0057】本実施例によれば、従来4つの輪郭点すべ
てに施していたヒンティング処理が、対角線上の2点だ
けにヒンティング処理を施せば済み、処理時間、データ
量ともに格段に削減することができる。
【0058】〈実施例7〉 本実施例は、ウロコの頂点に対して、相対位置を保存す
る移動処理を施す実施例である。すなわち、図11は、
あるグリフのウロコ部分に対するヒンティング処理の前
後の図であり、(a)は、変倍された原図形、(b)
は、各輪郭点を整数座標上に四捨五入した従来のヒンテ
ィング処理後の図である。従来から行われてきたヒンテ
ィング処理は、そのほとんどが切り捨て、切り上げなど
の方法を採っているので、ヒンティング処理後の輪郭線
の形状は、その置かれた位置によって全く異なったもの
となり、当然ラスタライズされた結果も全く異なったも
のになる。
【0059】そこで、本実施例では、ウロコの頂点にの
み、相対位置を保存する移動処理を施すことにより、図
11(c)に示すように、ウロコの形状を統一すること
ができる。このように、本実施例によれば、簡単な処理
によって、一つのグリフ内でウロコの形状を統一するこ
とが可能になる。
【0060】〈実施例8〉 従来、線幅補正を行う際の線幅は、一定のサイズでデザ
インされたものを、その表示サイズにしたがって変倍す
ることによって得ていた。つまり、その線幅の変化は、
図12に示すように線形に変化していた。このため、従
来技術で説明したように、小サイズでは線が太く、大サ
イズでは線が細くなるという印象を与えることになる。
また、サイズが十分小さくなると、ステムが消えてしま
うことにもなる。
【0061】そこで、本実施例では、図13に示すよう
な各種の関数を用いて線幅を決定するものである。すな
わち、図13(a)は、極小サイズではある最小幅(例
えば、1ドット)になるようにし、それ以上のサイズで
は従来と同様に線形に変化する関数にしたものである。
(b)は、例えば2次曲線のような、小サイズでは変化
が小さく、大サイズでは変化が大きくなる関数の例であ
る。(c)は、(a)と(b)をつなげた関数であり、
すなわち、極小サイズではある最小幅(例えば、1ドッ
ト)になり、ある大サイズまでは2次曲線のように変化
し、それより大きなサイズでは直線的に変化する関数で
ある。なお、本実施例は特定の関数に限定されるもので
はなく、各種の関数が適用可能である。
【0062】本実施例によれば、少ない記憶容量で、種
々の特性の線幅処理を行うことができる。
【0063】〈実施例9〉 本実施例は、上記関数をテーブルを用いて実現した実施
例である。図14(a)は、サイズと線幅とが1対1の
対応関係にあるテーブルの構成例を示し、(b)は、あ
る範囲のサイズを与えたときの対応する線幅を生成する
多対1の対応関係にあるテーブルの構成例を示す図であ
る。なお、これらの数値は、単なる例示にすぎない。
【0064】本実施例によれば、テーブルを用いること
により、記憶容量は増えるものの、関数計算に比べて高
速の処理が可能になる。
【0065】〈実施例10〉 本実施例は、上記した実施例8と9を組み合わせた実施
例である。すなわち、例えば30〜50ドットという、
よく使用されるサイズ、あるいは20〜30ドットとい
う、きめ細かな処理が必要となるサイズに対してはテー
ブルを用いて線幅計算し、その他のサイズに対しては関
数を用いる。これによって、必要なサイズにおいては処
理速度が速く、使用頻度の低いサイズにおいては記憶容
量が少なくて済む。
【0066】〈実施例11〉 上述した本実施例1から7は、相対位置を保存する移動
処理の用い方に関する実施例であり、特に実施例1は一
般的なもの、実施例2から5は曲線やステムに関するも
の、実施例6は長方形の処理、実施例7はウロコの処理
に関するものである。従って、これらの処理の内の幾つ
かを組み合わせて用いることが可能となる。さらに、実
施例8から11に示した線幅の決定方法も同時に適用す
ることにより、更に美しいフォントを得ることができ
る。このように、本実施例では、前述した各実施例の全
ての長所を選択的に使用することができる。
【0067】本発明は、一般のアウトラインフォントフ
ァイルのヒンティング処理方法について開示した。しか
し、この方法は、True Typeのようにそれ自身
にプログラムとしてヒンティング情報が含まれているシ
ステムで用いれば、より一層効果的である。特に、Tr
ue Typeではフォントファイル内で共有されるデ
ータ群を有し、その中には各グリフのヒンティング手順
から呼びだされるサブルーチン群を含むように構成され
ているので、上記した本実施例の処理方法の共通部分や
繰返し使用される部分などをサブルーチンとして登録す
ることにより、一層のデータ量の削減が可能になる。
【0068】
【発明の効果】以上、説明したように、本発明によれ
ば、以下のような効果が得られる。 (1) ヒンティング処理後においてもデザイン時の輪郭
点の相対的な位置が保存されるので、グリフの形状が極
端に歪むことがなくなる。
【0069】(2)グリフ内でトメなどの形状を統一す
ることができる。
【0070】(3)縦横ステムに第1のヒンティング処
理を施すだけでグリフ全体として整った形状にすること
ができ、またその処理量を大幅に削減することが可能と
なる。
【0071】(4)縦横ステムと曲線の始点、終点に第
1のヒンティング処理を施しているので、美しいヒンテ
ィング処理結果が得られる。
【0072】(5)縦横ステムと曲線の始点、終点と方
向の変化点に対して第1のヒンティング処理を施してい
るので、美しいヒンティング処理結果が得られる。
【0073】(6)長方形の対角線上の2点だけに第1
のヒンティング処理を施せば済むので、処理時間、デー
タ量ともに大幅に削減することができる。
【0074】(7)一つのグリフ内でウロコの形状を統
一することが可能になる。
【0075】(8)少ない記憶容量で、種々の特性の線
幅処理を行うことができ、サイズに適応した美しいフォ
ントを得ることができる。
【0076】(9)テーブルを参照することにより高速
の処理が可能になる。
【0077】(10)必要なサイズにおいては処理速度
が速く、使用頻度の低いサイズにおいては記憶容量が少
なくて済むとともに、サイズに適応して美しく処理する
ことができる。
【0078】(11)全ての長所を選択的に使用するこ
とができるので、更に美しいフォントを得ることができ
る。
【図面の簡単な説明】
【図1】本実施例に係る相対位置を保存して移動処理す
るヒンティング処理のフローチャートである。
【図2】(a)は、初期状態の曲線を示す図であり、
(b)は、従来のヒンティング処理によって輪郭点が整
数座標上に丸められた図であり、(c)は、本実施例に
よって処理された曲線を示す図である。
【図3】実施例2の処理フローチャートである。
【図4】グリフの一例を示す図である。
【図5】実施例3の処理フローチャートである。
【図6】図5の処理フローチャートの続きである。
【図7】実施例4の処理フローチャートである。
【図8】図7の処理フローチャートの続きである。
【図9】(a)、(b)は、本発明が適用されるグリフ
の他の例である。
【図10】長方形の輪郭線に対して本発明が適用される
例である。
【図11】ウロコ部分に対するヒンティング処理の前後
の図であり、(a)は、変倍された原図形、(b)は、
各輪郭点を整数座標上に四捨五入した従来のヒンティン
グ処理後の図、(c)は、本実施例のウロコの頂点にの
み相対位置を保存する移動処理を施した図である。
【図12】従来のサイズと線幅の変化を示す図である。
【図13】(a),(b),(c)は、本実施例の線幅
を決定する各種の関数である。
【図14】(a)、(b)は、線幅を生成するテーブル
の構成を示す図である。
【図15】アウトラインフォントファイルの構成を示す
図である。
【図16】グリフデータの構成を示す図である。
【図17】共有データの中に輪郭点を制御するためのサ
ブルーチンが含まれている図である。
【符号の説明】
1 グリフデータ 2 共有データ 11 アウトライン情報 12 ヒンティング情報

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のグリフデータを有し、該各グリフ
    データは、輪郭点の集合であるアウトライン情報と該ア
    ウトライン情報を制御するヒンティング情報によって構
    成されてなるアウトラインフォントファイルにおいて輪
    郭線を制御し、線幅を補正するヒンティング処理方法で
    あって、縦横ステムを構成する輪郭点、曲線の始点と終
    点、曲線中の方向変化を生じる部分に対しては、線幅補
    正、線消え防止およびかすれ防止を含む第1のヒンティ
    ング処理を施し、それ以外の輪郭点に対しては、前記第
    1のヒンティング処理された点との相対位置を保つよう
    に移動する第2のヒンティング処理を施すことを特徴と
    するヒンティング処理方法。
  2. 【請求項2】 長方形をなす輪郭線において、前記長方
    形の対角線上の2点に対して前記第1のヒンティング処
    理を施し、他の2点に対して前記第2のヒンティング処
    理を施すことを特徴とする請求項1記載のヒンティング
    処理方法。
  3. 【請求項3】 前記線幅を補正する第1のヒンティング
    処理において、変倍後のアウトラインフォントのサイズ
    と該サイズに応じた線幅が所定の関数関係にあり、前記
    所定の関数関係を参照して線幅を決定することを特徴と
    する請求項1記載のヒンティング処理方法。
  4. 【請求項4】 前記線幅を補正する第1のヒンティング
    処理において、変倍後のアウトラインフォントのサイズ
    と該サイズに応じた線幅との対応を記憶したテーブルを
    参照して線幅を決定することを特徴とする請求項1記載
    のヒンティング処理方法。
JP12755692A 1992-05-20 1992-05-20 ヒンティング処理方法 Expired - Lifetime JP3224142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12755692A JP3224142B2 (ja) 1992-05-20 1992-05-20 ヒンティング処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12755692A JP3224142B2 (ja) 1992-05-20 1992-05-20 ヒンティング処理方法

Publications (2)

Publication Number Publication Date
JPH05323937A JPH05323937A (ja) 1993-12-07
JP3224142B2 true JP3224142B2 (ja) 2001-10-29

Family

ID=14962942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12755692A Expired - Lifetime JP3224142B2 (ja) 1992-05-20 1992-05-20 ヒンティング処理方法

Country Status (1)

Country Link
JP (1) JP3224142B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0172581B1 (ko) 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
US7797631B2 (en) 2002-09-18 2010-09-14 Canon Kabushiki Kaisha Document printing control apparatus and method
US7187382B2 (en) * 2004-01-26 2007-03-06 Microsoft Corporation Iteratively solving constraints in a font-hinting language
US7265757B2 (en) * 2004-05-28 2007-09-04 Microsoft Corporation Appropriately rendering a graphical object when a corresponding outline lacks control points
JP5777726B2 (ja) * 2011-11-09 2015-09-09 三菱電機株式会社 描画装置及び描画プログラム

Also Published As

Publication number Publication date
JPH05323937A (ja) 1993-12-07

Similar Documents

Publication Publication Date Title
US5796409A (en) Method for producing contrast-controlled grayscale characters
EP0693740B1 (en) Method of font rendering employing greyscale processing of grid-fitted fonts
US5159668A (en) Method and apparatus for manipulating outlines in improving digital typeface on raster output devices
US5301267A (en) Intelligent font rendering co-processor
US5241653A (en) Apparatus and method for adjusting and displaying scaled, rasterized characters
US5325479A (en) Method and apparatus for moving control points in displaying digital typeface on raster output devices
US5929866A (en) Adjusting contrast in anti-aliasing
JP3119805B2 (ja) 多階調データ生成装置
JP2009520238A (ja) フォント・ヒンティングにおけるストローク・コントラスト
WO2013091559A1 (en) Character display method and device
JPH08106276A (ja) スクリーン上でのテキスト表示方法
US6614432B1 (en) Image rendering technique
JP3224142B2 (ja) ヒンティング処理方法
WO1994006094A1 (en) Glyph rasterization method combining anti-aliasing and grid fitting
US8355025B2 (en) System and method for displaying text
KR100361387B1 (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
JPH02270019A (ja) 高品質文字パターン発生方式
JP3034140B2 (ja) 文字生成方法及びその装置
JP3338484B2 (ja) アウトラインフォント変形装置
JP3039015B2 (ja) 文字処理装置
JP3417753B2 (ja) 階調キャラクタ生成方法ならびにその装置
JPH0392897A (ja) パターン発生装置
JPH0519739A (ja) 文字パターン生成装置
JP2771981B2 (ja) 高品質文字パターン発生方式
JPH0627929A (ja) アウトラインフォント座標変換方法

Legal Events

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

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 11