(57)【要約】【課題】フォント拡縮技術の改善【解決手段】フォントの筆画を調整する方法は、視覚的に不鮮明にみえる筆画を改良するために複雑なフォントを拡縮するために提供される。フォントを生成する時、フォントエンジンはフォントの筆画データに従いフォントの２つの隣り合う筆画間の不十分な空間単位を先ず計算する。その後フォントエンジンはフォントの微調整情報を取得し、フォントの筆画調整値を生成するために不十分空間単位と微調整情報に従い筆画の最適配分を計算する。最後に、文字は、フォントの筆画データと筆画調整値に従い出力される。【選択図】図３
2010224514.tif 000002
【特許請求の範囲】
【請求項１】
フォントの筆画を微調整する方法であって、
前記フォントの筆画データを提供する段階と、
前記筆画データに基づいて、前記フォントにおいて隣接した２本の筆画の間に不足空間を計算する段階と、
前記フォントの微調整情報を取得する段階と、
前記フォントの筆画調整値を生成するために前記不足空間と前記微調整情報に基づいて最適空間配置を計算する段階と、
前記筆画データと前記筆画調整値に基づいて前記フォントを出力する段階とを含む、フォント筆画の微調整方法。
【請求項２】
前記フォントの筆画データを提供する段階は、
前記フォントの各筆画の筆画ＩＤを提供する段階と、
前記フォントの各筆画の開始位置を提供する段階とを含む、請求項１に記載のフォント筆画の微調整方法。
【請求項３】
前記筆画データに基づいて、フォントにおいて隣接した２本の筆画の間の不足空間を計算する段階は、前記筆画データに基づいて第一方向と第二方向に沿って、前記隣接した２本の筆画の間の前記不足空間を計算する段階を含む、請求項１に記載のフォント筆画の微調整方法。
【請求項４】
前記微調整情報は微調整指示を含む、請求項１に記載のフォント筆画の微調整方法。
【請求項５】
前記微調整指示は、２本の筆画を合併するものと、筆画を下に移すものと、筆画を上に移すものと、筆画を削除するものとを含む、請求項４に記載のフォント筆画の微調整方法。
【請求項６】
前記方法は更に、
前記隣接した２本の筆画の重複部分が所定値より高いかどうかを判断する段階を含む、請求項１に記載のフォント筆画の微調整方法。
【請求項７】
前記方法は更に、
前記重複部分が前記所定値より高い場合、前記隣接した２本の筆画の微調整情報を一緒に処理する段階を含む、請求項６に記載のフォント筆画の微調整方法。
【請求項８】
前記方法は更に、
前記重複部分が前記所定値より高くない場合、前記隣接した２本の筆画の微調整情報を個別に処理する段階を含む、請求項６に記載のフォント筆画の微調整方法。
【請求項９】
前記方法は更に、
前記フォントの筆画データに前記微調整情報を追加する段階を含む、請求項１に記載のフォント筆画の微調整方法。
【請求項１０】
前記フォントの筆画データに前記微調整情報を追加する段階は、筆画省略規則に従い前記フォントの前記筆画データに前記微調整情報を追加する段階を含む、請求項９に記載のフォント筆画の微調整方法。
【請求項１１】
前記フォントの微調整情報を取得する段階は、前記フォントの前記筆画データから前記フォントの前記微調整情報を取得する段階を含む、請求項９に記載のフォント筆画の微調整方法。
【請求項１２】
前記フォントの筆画データを提供する段階は、グレイレベルタイプのフォントの前記筆画データを提供する段階を含む、請求項１に記載のフォント筆画の微調整方法。
【請求項１３】
前記フォントの筆画データを提供する段階は、繁体字中国語フォントと、簡体字中国語フォントと、日本語フォントの前記筆画データを提供する段階を含む、請求項１に記載のフォント筆画の微調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフォントを生成する方法に関し、特にフォントの筆画を調整する方法に関する。
【背景技術】
【０００２】
フォントを小サイズに縮小するとき、縮小されたフォントにおいて本来分離すべき特定の筆画が、拡縮空間の制限により重なり合うことで、縮小されたフォントがぼやけて視覚的な品質が低下する結果になる。従来のフォント拡縮技術は主としてヨーロッパ諸語のフォント（例えばＴｒｕｅＴｙｐｅフォント）に対応し、かつヨーロッパ諸語のアルファベットの文字数は相対的に限られているので、各々の文字を極めて細かく調整して視覚的な品質が高いフォントを生成することができる。しかし、漢字体系の複雑性のゆえ、このような方法は漢字フォントに適用できない。なぜならば、それは多くの労力を要するのみならず、漢字フォントの微調整データを全部組み込みシステムで実施することは実際的ではないからである。
【０００３】
図１を参照する。図１は従来のフォント生成技術のフローチャートである。各段階は以下のとおりである。
ステップ１１０：筆画データはフォントの各筆画の筆画ＩＤ（識別子）と開始位置とを含む、フォントの筆画データを提供する。
ステップ１２０：フォントの筆画を出力する。
ステップ１３０：フォントのすべての筆画が出力されたかどうかを判断する。そうであればステップ１５０に進み、さもなければステップ１４０に進む。
ステップ１４０：フォントの筆画データに基づいて筆画を生成する。ステップ１２０に進む。
ステップ１５０：フォント出力が完成する。
【０００４】
図２を参照する。図２は従来のフォント拡縮技術によりフォントを縮小するときに、筆画が重なり合う状態を表す説明図である。フォント２００は６本の横画１〜６を含む。図に示すようにフォント２００を拡縮するとき、使える空間の制限によりフォント２００において隣接した特定の筆画が重なり合って（例えば筆画２と３は１６×１６の空間では重なり合っている）、それが原因で縮小されたフォント２００はぼやけて見える。構造がより複雑なフォント（例えば画数の多いフォント）の場合、フォントが縮小されるにつれ、筆画が重なり合ってフォントがぼやける現象はますます問題となる。一方、フォントを拡大するとき、各筆画の幅が広くなり、より大きな空間を占めるので、空間の不足により筆画が重なり合う現象は依然として存在する。フォント２００サイズが１２×１２の場合、フォントの横画が重なり合って３つの塊（筆画１と２、筆画２と３、及び筆画４と５）になり、フォント２００サイズが１３×１３の場合、フォントの横画が重なり合って２つの塊（筆画１と２、及び筆画３と４）になり、フォント２００サイズが１４×１４の場合、フォントの横画が重なり合って１つの塊（筆画２と３）になり、フォント２００サイズが１５×１５の場合、フォントの横画が重なり合って１つの塊（筆画４と５）になり、フォント２００サイズが１６×１６の場合、フォントの横画が重なり合って１つの塊（筆画２と３）になる。
【０００５】
したがって、前述から明らかなように、従来のフォント拡縮技術によりフォントサイズを１２×１２または１６×１６に拡縮するとき、１フォントの筆画は使える空間の制限により重なり合い、縮小されたフォントはぼやけて視覚的な品質が低下して読みづらくなる。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明ではフォントの筆画を微調整する方法を開示する。同方法は、フォントの筆画データを提供する段階と、筆画データに基づいてフォントにおいて隣接した２本の筆画の間に不足空間を計算する段階と、フォントの微調整情報を取得する段階と、フォントの筆画調整値を生成するために不足空間と微調整情報に基づいて最適空間配置を計算する段階と、筆画データと筆画調整値に基づいてフォントを出力する段階とを含む。
【図面の簡単な説明】
【０００７】
【図１】従来のフォント生成技術方法のフローチャートである。
【図２】従来のフォント拡縮技術によりフォントを縮小するときに、筆画が重なり合う状態を表す説明図である。
【図３】本発明によるフォントの筆画を微調整する方法のフローチャートである。
【図４】フォントの筆画データを表す説明図である。
【図５】従来の方法と本発明による方法により１２×１２に拡縮されたフォントを表す説明図である。
【図６】従来の方法と本発明による方法によるフォントの横画の筆画調整値の比較を表す説明図である。
【図７】１２×１２と２５６×２５６に拡縮されたフォントの横画の位置の比較を表す説明図である。
【図８】本発明によるフォントの筆画を調整する方法の実行時、フォントの横画を別々の組に分けるのを示すフローチャートである。
【図９】本発明によるフォントの筆画を調整する方法の実行時、フォントの横画を別々の組に分ける１実施例を表す説明図である。
【図１０】筆画省略規則の実施例を表す説明図である。
【図１１】複数種のフォントを表す説明図である。
【図１２】フォントが筆画構成でないフォントとして定義される時、本発明によるフォントの筆画を調整する方法を表す説明図である。
【発明を実施するための形態】
【０００８】
図３を参照する。図３は本発明によるフォントの筆画を微調整する方法のフローチャートである。本発明では、フォントは複数の筆画とそれに対応する筆画データを含み、筆画データはフォントの各筆画の筆画ＩＤと開始位置を含むと仮定する。本発明は更にフォントの筆画データに対応する微調整情報を補う。このように、筆画データに基づいてフォントを生成するとき、フォントエンジンは更にフォントの各筆画の位置とサイズを調整／微調整することができるので、縮小されたフォントは、複雑な画数からなるフォントでさえ、重なり合った筆画によりぼやけて見えることなく、フォントエンジンにより縮小された後でもフォントの高視覚品質を達成できる。本発明によるフォントの筆画を調整／微調整する方法は以下のステップを含む。
ステップ３１０：筆画データがフォントの各筆画の筆画ＩＤと開始位置とを含むフォントの筆画データを提供する；
ステップ３２０：隣接した２本の筆画が２本の横画または２本の縦画である可能性があり、隣接した２本の筆画が重なり合う時それは、その隣接した２本の筆画の間に１空間ユニットが足りないことを意味する、筆画データに従いフォントの各隣接した２本の筆画の不足な空間ユニットを計算する；
ステップ３３０：例えば、「マージ」（ｍｅｒｇｅ）という微調整指示は２本の筆画を重ね合わせ、「削除」（ｄｅｌｅｔｅ）という微調整指示は１本の筆画を削除して２空間ユニットを生成し、「下に移動」（ｍｏｖｅ  ｄｏｗｎ）という微調整指示は筆画を下に移動して１空間ユニットを生成し、「上に移動」（ｍｏｖｅ  ｕｐ）という微調整指示は筆画を上に移動して１空間ユニットを生成する、微調整情報はフォントに用いる微調整指示を保存する、フォントの微調整情報を取得する；
ステップ３４０：不足な空間ユニットと微調整情報に基づいて、フォントの各筆画の位置の最適空間配分を計算する；
ステップ３５０：フォントの各筆画の筆画調整値を生成する；
ステップ３６０：フォントの１本の筆画を出力する；
ステップ３７０：フォントのすべての筆画が出力されたならステップ３９０に進み、さもなければステップ３８０に進む事を判断する；
ステップ３８０：フォントの対応する筆画データと対応する筆画調整値とに基づいて１本の筆画を生成し、ステップ３６０に進む；
ステップ３９０：フォント出力が完成する；
ステップ３１０によれば、フォントの筆画データは、フォントの各筆画の筆画ＩＤと開始位置を含む。フォントの筆画データに基づいてフォントエンジンがフォントを生成するとき、フォントエンジンは以下の表に示すようにフォントが出力される順番に従って、フォントの筆画データを取得する。
【０００９】
【表１】
2010224514.tif 000003
図４を参照する。図４はフォント４００の筆画データを表す説明図である。図４に示すように、フォント４００は連続した筆画４０１〜４０５を含み、○は各筆画の開始位置を示す。フォント４００の筆画データは下表に示すとおりである。
【００１０】
【表２】
2010224514.tif 000004
図５、図６、及び図７を参照する。図５は従来の方法と本発明による方法により１２×１２に拡縮されたフォント５００を表す説明図であり、図６は従来の方法と本発明による方法によるフォント５００の横画の筆画調整値の比較を表す説明図であり、図７は従来の方法と本発明による方法により１２×１２（フォント５２０）と２５６×２５６（フォント７１０）に拡縮されたフォント５００の横画の位置の比較を表す説明図である。図５〜図７に示す実施例では、本発明によるフォントの筆画を微調整する方法の実施例としてフォント５００を取り上げる。図５に示すように、フォント５１０は従来の方法により１２×１２に拡縮されたフォント５００を示し、フォント５２０は本発明による方法により１２×１２に拡縮されたフォント５００を示す。図から明らかなように、フォント５２０は視覚的にぼやけが軽減され、フォント５１０において重なり合った筆画１、２、３と重なり合った筆画４、５は、フォント５２０では分離されている。前記ステップ３２０によれば、隣接した２本の横画が重なり合うことは、この隣接した２本の筆画の間に１空間ユニット足りないことを意味する。したがって、フォント５１０の横画１、２、３が重なり合い、横画４、５が重なり合うことは、重なり合った筆画の間に３空間ユニット足りないことを示す（重なり合った横画１、２の間には１空間ユニット足りず、重なり合った横画２、３の間には１空間ユニット足りず、重なり合った横画４、５の間には１空間ユニット足りない）。また、ステップ３３０によれば、フォント５００の微調整情報は、「下に移動」という微調整指示と、「上に移動」という微調整指示と、「マージ」という微調整指示とを含む。したがって、横画４、５は「マージ」という微調整指示により１本の横画として合併され、それにより２空間ユニットが生成される（筆画省略規則について後述を参照する）。横画６は「下に移動」という微調整指示により下に移動され、それにより１空間ユニットが生成される。結果として、フォント５１０では「マージ」と「下に移動」という微調整指示により３空間ユニットが生成される。
【００１１】
前記ステップ３４０と３５０では、横画１〜６の最適空間配置を計算する。図６に示すように、従来の方法によるフォント５１０に比べて、本発明の方法によるフォント５２０は以下のように空間配置が最適化される。つまり、横画１をＹ４位置に残し、横画２をＹ５位置からＹ６位置に移動し、横画３をＹ６位置からＹ８位置に移動し、横画４をＹ８位置からＹ１０位置に移動し、横画５をＹ９位置からＹ１０位置に移動し、横画６をＹ１１位置からＹ１２位置に移動する。したがって、フォント５２０の筆画調整値は（０、１、２、２、１、１）である。前記ステップ３６０〜３９０では、フォントエンジンはフォント５１０の筆画データと筆画調整値に基づいてフォント５２０を出力する。また、図７に示すように、フォント５００（解像度２５６×２５６のフォント７１０に等しい）の横画１〜６は本発明による方法により、フォント５２０における対応する位置に基づいて微調整される。フォント５００の他筆画は、フォント５２０における微調整された筆画の位置と、フォント７１０における筆画の位置との関係に基づいて、フォント５２０において対応する位置に微調整される。例えば、フォント７１０においてＹ１５６位置〜Ｙ１８５位置にある筆画は、フォント５２０に拡縮される時Ｙ１０位置に微調整される。
【００１２】
図８と図９を参照する。図８は本発明によるフォントの筆画を調整する方法の実行時、フォントの横画を別々の組に分けるのを示すフローチャートであり、図９は本発明によるフォントの筆画を調整する方法の実行時、フォントの横画を別々の組に分ける実施例を表す説明図である。図９に示すように、最も多くの横画を含んでいるフォント９１０の部首９２０は、最も微調整を要する部分である。しかし、横画９３１、９３２を部首９２０とともに調整すれば、（Ａ）に示すように横画９３１、９３２と部首９２０の間に干渉が生じる。このような干渉を回避するために、本発明によるフォントの筆画を調整／微調整する方法は更に以下のステップを含む。
ステップ８１０：開始。
【００１３】
ステップ８２０：フォントの次の連続横画を取得する。
【００１４】
ステップ８３０：取得された横画がフォントの最後の連続横画であるかどうかを判断する。
【００１５】
ステップ８４０：取得された横画と、フォントにおいて１組に分けられた筆画を比較し、重複部分の有無を判断する。
【００１６】
ステップ８５０：前記重複部分が所定値より高いかどうかを判断する。そうであればステップ８６０に進み、さもなければステップ８７０に進む。
【００１７】
ステップ８６０：取得された横画をフォントの前記組に追加する。
【００１８】
ステップ８７０：新しい組を追加する。
【００１９】
ステップ８８０：各組に含まれる筆画の数量に基づいてフォントのすべての組を整理する。
【００２０】
ステップ８９０：終了。
【００２１】
ステップ８４０では、部首９２０の横画は第一組をなす。横画９３１は第一組の横画と重複しない（重複部分が所定値より小さい）ので、第二組は確立される。横画９３２は第一組の横画と重複するので、重複部分が所定値より小さいが、第三組は確立される。したがって、フォント９１０の横画は処理のために３組に分けられる。部首９２０、横画９３１、及び横画９３２は別々の組に属するので、部首９２０の横画は横画９３１、９３２とともに微調整されない。そのため、（Ｂ）に示すように筆画の微調整は改善される。
【００２２】
図１０を参照する。図１０は筆画省略規則の実施例を表す説明図である。本発明ではフォントの筆画データに簡単な微調整情報を追加する。そのため、フォントエンジンはフォントを生成するとき、微調整情報に基づいてフォントの各筆画の位置とサイズを調整／微調整することができる。微調整情報には使用可能なフォントの微調整指示が保存されている。しかし、「マージ」（２本の筆画を合併する）や「削除」（１本の筆画を削除する）などの微調整情報を利用するために、フォントは筆画省略規則に合致しなければならない。図１０に示すように、部首９４１、９４２、９４３はいずれも筆画省略規則に合致している。フォントが部首９４１を含めば、部首９４１の下の横画はその下の隣接した横画と合併して１本の筆画になる。フォントが部首９４２を含めば、部首９４２の上の横画がその上の隣接した横画と合併して１本の筆画になるか、または部首９４２の下の横画がその下の隣接した横画と合併して１本の筆画になる。フォントが部首９４３を含めば、部首９４３の上の横画がその上の隣接した横画と合併して１本の筆画になるか、または部首９４３の下の横画がその下の隣接した横画と合併して１本の筆画になる。
【００２３】
図１１を参照する。図１１は複数種のフォントを表す説明図である。前掲実施例では、本発明によるフォント（例えばフォント５００）の横画を調整する方法は、図１１に示すようにフォント（例えばフォント９５１）の縦画の調整にも適用できる。本発明によるフォントの筆画を調整する方法は、フォントの筆画データに基づいて縦画と横画の不足な空間ユニットを計算し、縦画の不足な空間ユニットに基づいて（すなわち水平方向で）フォントの縦画の空間配置を微調整し、更に横画の不足な空間ユニットに基づいて（すなわち垂直方向で）フォントの横画の空間配置を微調整する。また、グレイレベルタイプまたは他種のフォントも本発明による方法により微調整できる。例えば、グレイレベルタイプのフォント９５２は、垂直でも水平でもない筆画のみに対してグレイレベル効果を加える。したがって、縦画と横画を対応する単一のグレイレベルとすれば、本発明による方法はグレイレベルタイプのフォント（すなわちフォント９５２）に適用できる。なお、本発明による方法は、簡体字中国語フォント９５３や日本語フォント９５４など他言語にも適用できる。
【００２４】
図１２を参照する。図１２は筆画により構成されないフォントに適用される本発明によるフォントの筆画を調整する方法を表す説明図である。図１２に示すように、フォント９６０は筆画により構成されないものとされ、より詳しく言えば、フォント９６０は複数の閉ループ輪郭線（ｃｌｏｓｅｄ  ｌｏｏｐ  ｃｏｎｔｏｕｒ）から構成される。それにもかかわらず、フォントエンジンはフォント９６０の７本の横画９６１〜９６７を容易に識別できる。前記筆画省略規則によれば、フォントが部首９４４を含めば、部首９４４の上の横画がその上の隣接した横画と合併するか、部首９４４の下の横画がその下の隣接した横画と合併するか、または部首９４４の２番目の横画が削除され、１番目の横画が部首９４４の中央部に移動する。したがって、好ましい実施例では、筆画により構成されないフォント９６０をフォント９７０に拡縮するとき、フォントエンジンはまずフォント９６０の７本の横画９６１〜９６７を判断し、それから筆画省略規則に基づいて「マージ」という微調整指示により筆画９６３、９６４を合併して横画９７４とし、更に６本の横画９７１〜９７７の最適空間配置を計算してフォント９７０を生成する。
【００２５】
まとめて言えば、本発明ではフォントの拡縮時に筆画が重なり合うのを避けるようにフォントの筆画を調整する方法を開示する。フォントを生成するとき、フォントエンジンはフォントの筆画データに基づいて隣接したいずれか２本の筆画の間に不足な空間ユニットを計算し、更にフォントの微調整情報を取得し、フォントの筆画調整値を生成するために不足な空間ユニットと微調整情報に基づいて最適空間配置を計算し、最終的に筆画データと筆画調整値に基づいてフォントを出力する。筆画により構成されたフォントの場合、本発明によるフォントの筆画を微調整する方法では、視覚的な品質が高いフォントを生成するために簡単な筆画調整値を追加する。また、筆画により構成されないフォントの場合、本発明によるフォントの筆画を微調整する方法では、字の横画と縦画を判断し、横画と縦画の位置を微調整することで、フォントの視覚的な品質を向上させる。
【００２６】
本発明の教示を保持しつつ本装置及び方法の多くの修正及び改造を為す事ができることを当業者は容易に観察するであろう。
【図１】
2010224514.tif 000005
【図２】
2010224514.tif 000006
【図３】
2010224514.tif 000007
【図４】
2010224514.tif 000008
【図５】
2010224514.tif 000009
【図６】
2010224514.tif 000010
【図７】
2010224514.tif 000011
【図８】
2010224514.tif 000012
【図９】
2010224514.tif 000013
【図１０】
2010224514.tif 000014
【図１１】
2010224514.tif 000015
【図１２】
2010224514.tif 000016