(57)【要約】【課題】小文字フォントの品質を向上させるフォント生成方法を提供する。【解決手段】方法は、開始点と終了点を包含する複数のストロークコードと、複数のストロークコードに対応する複数のストロークプログラムを含むストローク対照表を確立し、文字に対応するストロークコードと、文字のストロークコードに対応する複数のキーポイントを含み、複数の文字を記述するための複数のストローク記述表を確立し、文字コードに基づいて相応のストローク記述表を取得し、文字コードに対応するストローク記述表の中のストロークコード、及び相応の複数のキーポイント、ストロークプログラム、開始点と終了点に基づいて、文字コードに対応する文字を描画するステップからなる。【選択図】図１９
2008046622.tif 000002
【特許請求の範囲】
【請求項１】
フォントを生成する方法であって、
開始点と終了点を包含する複数のストロークコードと、複数のストロークコードに対応する複数のストロークプログラムを含むストローク対照表を確立し、
文字に対応するストロークコードと、文字のストロークコードに対応する複数のキーポイントを含み、複数の文字を記述するための複数のストローク記述表を確立し、
文字コードに基づいて相応のストローク記述表を取得し、
文字コードに対応するストローク記述表の中のストロークコード、及び相応の複数のキーポイント、ストロークプログラム、開始点と終了点に基づいて、文字コードに対応する文字を描画するステップからなることを特徴とするフォント生成方法。
【請求項２】
前記フォント生成方法は更に、ストロークコードのアウトラインフォント幅が０であるときに、相応のストロークを描画し、ストロークの最初のキーポイントを開始点とし、ストロークの最後のキーポイントを終了点とするステップを含むことを特徴とする請求項１記載のフォント生成方法。
【請求項３】
前記フォント生成方法は更に、ストロークコードの純粋アウトラインフォント幅が０であるときに、相応のストロークを描画し、ストロークの最初のキーポイントを開始点とし、ストロークの最後のキーポイントを終了点とするステップを含むことを特徴とする請求項１記載のフォント生成方法。
【請求項４】
前記文字コードに対応する文字の描画は、文字の各ストロークの太さ調整を含むことを特徴とする請求項１記載のフォント生成方法。
【請求項５】
前記文字の各ストロークの太さ調整は、文字の各ストロークを構成する点を複数の方向に移動してストロークを伸ばすことを含むことを特徴とする請求項４記載のフォント生成方法。
【請求項６】
前記文字の各ストロークの太さ調整は、文字の各ストロークを構成する点を円心として中実円を描くことを含むことを特徴とする請求項４記載のフォント生成方法。
【請求項７】
前記文字の各ストロークの太さ調整は、グレースケール値を逓減させながら文字の各ストロークを所定方向に伸ばすことを特徴とする請求項４記載のフォント生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はフォントを生成する方法に関し、特に小文字フォントの表示品質を向上させる方法に関する。
【背景技術】
【０００２】
高品質の漢字フォントは主としてストローク合成技術で生成される。ストローク合成技術は、漢字を複数のストローク（筆画）を組み合わせた図形と、ストロークをアウトラインによって定義される副図形とみなす。漢字を構成するストロークは種類が多くないが、違い文字または文字の中の部位によって、同じストロークでも、その長さ、太さ、ないし角度が変わりうる。ただし、長さ、太さ、角度が異なるとはいえ、同じストローク（例えば「一」）のアウトライン特徴は原則的に一定である。したがって、一つのストロークの長さ、角度、位置を表すキーポイント、及びストロークの太さを表す幅値の確認さえすれば、ストロークプログラムの計算を経て当該ストロークを描画することができる。
【０００３】
ストロークは所定個数のキーポイントと幅値を有し、ストロークプログラムで描画されるものである。図形記述言語で作成されたストロークプログラムは、与えられるキーポイントと幅値に基づき、フレームの中にストロークのアウトラインを描く。フレームの中に所定ストロークを各種ストロークのストロークプログラムで逐一に描けばフォントとなる。
【０００４】
図１を参照する。図１は従来のストローク対照表１０のデータ構造を表す説明図である。ストローク対照表１０には各々ストロークのストロークコード１４、及び各々ストロークに相応しているプログラム１２が含まれる。あるストロークを描画するとき、システムは当該ストロークのストロークコードに基づいて相応のストロークプログラムを読み出した後、当該ストロークプログラムでストロークのキーポイントと幅値に基づき、ストロークのアウトラインをフレームの中に描画する。
【０００５】
図２と図３を参照する。図２はストローク２０のアウトライン、及び各キーポイントと幅値を表す説明図であり、図３はストローク２０のデータ構造２４を表す説明図である。図２に示すストローク２０は３つのキーポイント（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３）と、２つの幅値ｗ１、ｗ２を有し、データ構造２４はストローク２０のストロークコード（ＩＤ７）、各キーポイントと幅値を含んでいる。
【０００６】
図４を参照する。図４は従来のフォント記述ファイル２８のデータ構造を表す説明図である。フォント記述ファイル２８は、文字を構成するストローク、及び各ストロークのストロークコード、キーポイント、幅値などのストロークデータを記録するものであり、インデックス３０と各文字のストローク記述表３２を含む。インデックス３０の中には各文字の文字コード（ＣＩＤ）及び相応のストローク記述表３２のアドレスが記録され、ストローク記述表３２には文字を構成する各ストロークのデータ構造が記録されている。図３に示すデータ構造２４と同じように、図４に示すデータ構造はストロークコード、キーポイントと幅値などのストロークデータを含む。複数のストロークデータは所定の順序（例えば手書きの筆順）で配列されている。文字を描画しようとするとき、文字コードを確認したうえ、システムはフォント記述ファイル２８のインデックス３０により該文字のストローク記述表３２を読み出し、更にストローク対照表１０を参照しながらフレームの中に各ストロークを逐一に描き、文字のアウトラインを生成してから、黒塗りプログラムで文字のアウトライン内部を黒塗りしてフォントを完成させる。
【０００７】
図５を参照する。図５は従来のストローク合成技術を用いて生成した小文字フォントを表す説明図である。図に示すように、小文字フォントにストローク合成技術を応用した場合は、まず文字のアウトラインを生成する。このようなアウトライン文字は、特に小文字フォントの場合では、品質が良くない。
【特許文献１】特開２０００−２４２２６０
【特許文献２】特開平１０−３０７５７３
【特許文献３】特開２００４−１８４９６５
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この発明は前述の問題を解決するためのフォントを生成する方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
この発明はフォントを生成する方法を提供する。該方法は、開始点と終了点を包含する複数のストロークコードと、複数のストロークコードに対応する複数のストロークプログラムを含むストローク対照表を確立し、文字に対応するストロークコードと、文字のストロークコードに対応する複数のキーポイントを含み、複数の文字を記述するための複数のストローク記述表を確立し、文字コードに基づいて相応のストローク記述表を取得し、文字コードに対応するストローク記述表の中のストロークコード、及び相応の複数のキーポイント、ストロークプログラム、開始点と終了点に基づいて、文字コードに対応する文字を描画するステップからなる。
【発明の効果】
【００１０】
この発明によるフォントを生成する方法では、ストロークプログラムはストロークのキーポイント、開始点及び終了点に基づき単線グリフを描いてから、各ストロークの太さを調整してフォントを完成させる。かかる方法の主な特長は、所要データ量が小さい（１．２ＫＢのみ。下記段落００２０を参照する）こと、フォントを快速に生成できること、及び小文字フォントの品質を改善できることにある。なお、この発明は漢字フォントに限らず、その他構造的図形にも適する。
【発明を実施するための最良の形態】
【００１１】
かかる方法の特徴を詳述するために、具体的な実施例を挙げ、図を参照にして以下に説明する。
【００１２】
この発明は、フォントの単線グリフを生成してから各ストロークの太さを調整することで、高品質の小文字フォントを実現させる。
【００１３】
まず、各ストロークの単線グリフの開始点と終了点を取得する。ここでは、従来の合成技術によるフォントデータ、例えばストロークアウトラインフォント（アウトラインの中を一部黒塗りしたもの）、または純粋アウトラインフォント（アウトラインの中を黒塗りせず、アウトラインしか描かれないもの）など大きさの調整可能なフォントを利用することとする。一般的には、３００〜５００のストロークもあれば、漢字全体のフォントデータを確立できる（繁体字中国語の場合）。ストロークの太さを０にすれば単線グリフが得られる。単線グリフの開始点と終了点の選定については下記を参照する。
【００１４】
図６を参照する。図６はストローク「一」のアウトラインを表す説明図である。ストロークアウトラインフォントを描画する場合、従来のストロークプログラムはストロークのキーポイントと幅値に基づきアウトライン曲線を計算する。ストロークの太さが０でない限り、アウトラインは閉曲線を呈する。図６に示すように、アウトラインは点Ａから矢印に沿って描画される。次に図７を参照する。図７は図６に示すストロークの太さを０にする状態を表す説明図である。ストロークの太さを０にした場合、従来の技術は点Ｂから点Ｃへ、更に点Ｃから点Ｂに戻って描画する。つまり、従来のストロークプログラムは、ストロークの太さを考慮せず、ストロークをすべて閉曲線とする。それに反し、この発明は図７に示す単線グリフの開始点をＢに、終了点をＣに設定する。したがって、図７に示す単線グリフを描くとき、ストロークプログラムは本来のキーポイント、所定の開始点Ｂと終了点Ｃに基づき点Ｂから点Ｃへ描き、点Ｃから戻ることなく描画を終了させる。
【００１５】
この発明は、最初のキーポイントをほとんどのストロークの開始点とし、最後のキーポイントをほとんどのストロークの終了点とする。例外の場合は開始点と終了点を人力で定める。図８から図１０を参照する。図８に示すはねるストロークは点Ｄから矢印に沿って描かれ、その太さを０にすれば、図９に示す単線グリフとなる。直線でないストロークの単線グリフを従来の技術で描けば、図８に示すアウトラインの左右２本の曲線を計算して描かなければならないので、図９の破線部９５に示すように、はねるところは１本の曲線にならない。そのため、この発明によるストロークプログラムは本来のキーポイント、所定の開始点Ｅと終了点Ｆに基づいて点Ｅから点Ｆへ描き、点Ｆから戻ることなく描画を終了させ、図１０に示す単線グリフを完成させる。そうすると、図９に示す問題は解決される。
【００１６】
図１１を参照する。図１１はこの発明による方法で描かれた単線グリフを表す説明図である。単線グリフの各ストロークの太さを調整すれば（肉付け）フォントが得られる。肉付けの方法は下記の数種類がある。
【００１７】
図１２を参照する。図１２はこの発明による第一の単色の肉付け方法を示す。本方法は、各点１２１の右と下に別の点１２２を生成することによってストロークを太くする。図に示す暗い部分は、直線グリフ（明るい部分）を元に生成されたものである。
【００１８】
図１３を参照する。図１３はこの発明による第二のグレースケールの肉付け方法を示す。本方法は、対象直線の上下左右の整数点から当該直線までの距離によって異なるグレースケールを生成し、近い部分を暗くし、遠い部分を明るくする。また、これに合わせて閾値を設定し、距離が閾値を超えない部分を黒または最濃色にし、距離が閾値を超えた部分を白または最淡色にすることも可能である。
【００１９】
図１４と図１５を参照する。図１４は図１２に示す方法で処理されたフォントを示し、図１５は図１３に示す方法で処理されたフォントを示す。図１４と図１５に示すように、小文字フォントの品質は図５に示すものより良好であり、換言すれば、従来のフォント品質はこの発明によって改善された。もっとも、肉付けの方法は前述に限らず、ストロークの太さを調整するその他可能な方法はすべてこの発明の範囲に属する。
【００２０】
フォントをスクリーンに表示するとき、表示システムはフォントの大小をまず判断し、大文字フォントなら従来のストローク合成技術で描き、小文字フォントならこの発明による方法で描く。データ量１．２ＭＢの従来の漢字データベース（繁体字中国語用）を例に挙げれば、各ストロークの開始点と終了点のみ記録するこの発明による方法を小文字フォントに利用すれば、データ量は１．２ＫＢ増のみにとどまる。
【００２１】
あるいは、フォントの大小と関係なく、すべてこの発明による方法を利用することも可能である。そうすれば、各ストロークの幅値（図３に示すデータ構造２４のうちの幅値）を記録する必要がなくなる。図１６から図１８を参照する。図１６はこの発明によるストロークのデータ構造４４を示し、図１７はこの発明によるストローク対照表４０を示し、図１８はこの発明によるフォント記述ファイル４８のデータ構造を示す。図１６に示すストロークデータ構造４４と図１８に示すストローク記述表４２には、幅値が記録されていないので、前記データ量は１．２ＭＢから１．０〜１．１ＭＢに減少する。
【００２２】
また、この発明はストロークアウトラインフォントのうち１本の曲線のみ計算し、簡易な方法で肉付けを行うので、閉曲線の中すべての点を計算しなければならない従来の技術よりフォント描画が快速である。
【００２３】
図１９を参照する。この発明によるフォント描画のフローは下記のとおりである。
ステップ１００：表示フォントの大小を判断する。大文字フォントならステップ１０４に移り、小文字フォントならステップ１０２に移る。
【００２４】
ステップ１０２：所要文字の文字コードＣＩＤに基づいて相応のストローク記述表４２を取得し、そこに載せられるストロークの開始点４６、終了点４７、キーポイント及びストロークプログラムに基づき、文字の単線グリフを描画する。その後、ステップ１０６に移る。
【００２５】
ステップ１０４：従来のストローク合成技術でフォントのアウトラインを描画する。その後、ステップ１０８に移る。
【００２６】
ステップ１０６：各ストロークの太さを調整する。その後、ステップ１１０に移る。
【００２７】
ステップ１０８：黒塗りプログラムでアウトライン内部を黒塗りする。その後、ステップ１１０に移る。
【００２８】
ステップ１１０：フォントを出力する。終了。
【００２９】
もっとも、前記ステップ１００を省略し、フォントの大小にかかわらず一律にこの発明による方法を利用して、フォントを作成することも可能である。
【００３０】
以上はこの発明に好ましい実施例であって、この発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、この発明の精神の下においてなされ、この発明に対して均等の効果を有するものは、いずれもこの発明の特許請求の範囲に属するものとする。
【産業上の利用可能性】
【００３１】
この発明は従来のアウトラインを１本の線にし、前記所用の効果を実現させる。
【図面の簡単な説明】
【００３２】
【図１】従来のストローク対照表のデータ構造を表す説明図である。
【図２】従来のストロークのアウトライン、及び各キーポイントと幅値を表す説明図である。
【図３】図２に示すストロークのデータ構造を表す説明図である。
【図４】従来のフォント記述ファイルのデータ構造を表す説明図である。
【図５】従来のストローク合成技術を用いて生成した小文字フォントを表す説明図である。
【図６】ストロークの開始点と終了点選定を表す第一説明図である。
【図７】ストロークの開始点と終了点選定を表す第二説明図である。
【図８】ストロークの開始点と終了点選定を表す第三説明図である。
【図９】ストロークの開始点と終了点選定を表す第四説明図である。
【図１０】ストロークの開始点と終了点選定を表す第五説明図である。
【図１１】この発明による方法で描かれた単線グリフを表す説明図である。
【図１２】この発明による肉付け方法を表す第一説明図である。
【図１３】この発明による肉付け方法を表す第二説明図である。
【図１４】図１２に示す方法で処理されたフォントを表す説明図である。
【図１５】図１３に示す方法で処理されたフォントを表す説明図である。
【図１６】この発明によるストロークのデータ構造を表す説明図である。
【図１７】この発明によるストローク対照表を表す説明図である。
【図１８】この発明によるフォント記述ファイルのデータ構造を表す説明図である。
【図１９】この発明によるフォント描画のフローチャートである。
【符号の説明】
【００３３】
１０、４０      ストローク対照表
１２            ストロークプログラム
１４            ストロークコード
２０            ストローク
２４、４４      ストロークのデータ構造
２８、４８      フォント記述ファイル
３０            インデックス
３２、４２      ストローク記述表
４６            開始点
４７            終了点
９５            破線
【図１】
2008046622.tif 000003
【図２】
2008046622.tif 000004
【図３】
2008046622.tif 000005
【図４】
2008046622.tif 000006
【図５】
2008046622.tif 000007
【図６】
2008046622.tif 000008
【図７】
2008046622.tif 000009
【図８】
2008046622.tif 000010
【図９】
2008046622.tif 000011
【図１０】
2008046622.tif 000012
【図１１】
2008046622.tif 000013
【図１２】
2008046622.tif 000014
【図１３】
2008046622.tif 000015
【図１４】
2008046622.tif 000016
【図１５】
2008046622.tif 000017
【図１６】
2008046622.tif 000018
【図１７】
2008046622.tif 000019
【図１８】
2008046622.tif 000020
【図１９】
2008046622.tif 000021