(57)【特許請求の範囲】
【請求項１】
文字の輪郭を定義するアウトラインフォントを記憶する記憶部と、
前記記憶部から読み出したアウトラインフォントによって示される文字の輪郭部分に矩形を生成し、該生成した矩形の幅を文字の太さに応じて調整するとともに、該生成した矩形内の文字の輪郭に対する内側と外側で異なる幅に設定し、該調整した後の矩形によって囲まれた文字の内部の領域と矩形とに透過率を設定し、前記矩形のつなぎ目に円形を描画して文字を描画する演算プロセッサ
とを備えた文字描画装置。
【請求項２】
前記演算プロセッサは、文字の輪郭部分に生成した矩形を、アンチエイリアス処理を施す範囲とすることを特徴とする請求項１記載の文字描画装置。
【請求項３】
前記演算プロセッサは、文字の輪郭部分に生成した矩形の、前記文字の輪郭に対する内側の幅を小さくすることを特徴とする請求項２記載の文字描画装置。
【請求項４】
前記演算プロセッサは、文字の輪郭部分に生成した矩形の、前記文字の輪郭に対する外側の幅を大きくすることを特徴とする請求項２記載の文字描画装置。
【請求項５】
前記演算プロセッサは、文字の輪郭部分に生成した矩形の幅を大きくして文字を描画した後、矩形を小さくした文字を重ねて描画することを特徴とする請求項１記載の文字描画装置。
【請求項６】
文字の輪郭を定義するアウトラインフォントによって示される文字の輪郭部分に矩形を生成し、該生成した矩形の幅を文字の太さに応じて調整するとともに、該生成した矩形内の文字の輪郭に対する内側と外側で異なる幅に設定し、該調整した後の矩形によって囲まれた文字の内部の領域と矩形とに透過率を設定し、前記矩形のつなぎ目に円形を描画して文字を描画する文字描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、種々のウェイトで文字を描画したり、文字修飾を施したりする文字描画装置および文字描画方法に関するものである。
【背景技術】
【０００２】
従来の文字描画装置では、異なるウェイトの複数種類のフォントを用意しておき、太い文字または細い文字といった太さの異なる文字を表示する場合は、描画する文字の太さに応じてフォントを切り換えて描画を行っている。しかしながら、この文字描画装置では、複数種類のフォントを持つ必要があるので、フォントを格納するための大容量のメモリが必要になるという問題がある。
【０００３】
そこで、１種類のウェイトのフォントのみを搭載し、太い文字を表示する場合は、フォントデータを太字に対応したウェイトの大きいフォントデータに変換して描画を行う技術が知られている（例えば、特許文献１参照）。この技術では、最大ウェイトおよび最小ウェイトのフォントを搭載し、それらの中間のウェイトのフォントを用いる場合には２つのフォントを補間して中間のウェイトのフォントが生成される。
【０００４】
また、太字に対応したウェイトの大きいフォントを作成するのではなく、描画時にウェイトの大きな文字を描画するために、通常の文字を描画した後に輪郭部分を太線で囲むように描画する方法も知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２６３０４２号公報
【特許文献２】特開平９−３４４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、文字描画装置として、複数種類のフォントを持つ必要からフォント格納用のメモリが増加するという課題を解決するために、全てのウェイトのフォントを搭載するのではなく、１種類のウェイトのフォントのみを搭載し、このフォントから他のウェイトのフォントを作成するものが知られている。
【０００７】
例えば、１種類のウェイトのフォントのみを持ち、太い文字を描画する場合はフォントの輪郭部分を輪郭に対して垂直方向に外側に移動させ、細い文字を描画する場合は輪郭部分を輪郭に対して垂直方向に内側に移動させる文字描画装置も知られている。この場合、文字の輪郭のバランスを崩さないように、フォントの輪郭を記述している直線またはベジェ曲線に対して厳密な計算を行う必要があり、文字描画時にリアルタイムで実施するには処理時間がかかりすぎるという課題がある。
【０００８】
また、他の文字描画装置として、ウェイトの大きな文字を描画する場合または太文字を描画する際には、最初に通常サイズの文字を描画し、その輪郭部分を太線で囲むことにより実現するものも知られている。この技術では、輪郭部分を重ね合わせて描画することが行われるため、ウェイトの大きな文字を描画する場合には適用できるが、ウェイトの小さな文字を描画する場合には適用できない。また、文字を透過する場合に、重なり合った部分と重なり合わない部分とで透過率が異なり、均一な文字を描画できないという課題がある。
【０００９】
この発明は、上述した課題を解決するためになされたものであり、少ないメモリ容量で、異なるウェイトの文字の描画または太文字の描画を高速に行うことができる文字描画装置および文字描画方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る文字描画装置は、文字の輪郭を定義するアウトラインフォントを記憶する記憶部と、記憶部から読み出したアウトラインフォントによって示される文字の輪郭部分に矩形を生成し、該生成した矩形の幅を文字の太さに応じて調整するとともに、該生成した矩形内の文字の輪郭に対する内側と外側で異なる幅に設定し、該調整した後の矩形によって囲まれた文字の内部の領域と矩形とに透過率を設定し、矩形のつなぎ目に円形を描画して文字を描画する演算プロセッサを備えている。
【発明の効果】
【００１１】
この発明に係る文字描画装置によれば、少ないメモリ容量で、異なるウェイトの文字の描画または太文字の描画を高速に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１に係る文字描画装置の構成を示すブロック図である。
【図２】この発明の実施の形態１に係る文字描画装置において行われる描画処理を示すフローチャートである。
【図３】この発明の実施の形態１に係る文字描画装置における描画処理で行われる文字の輪郭部分の線分化を説明するための図である。
【図４】この発明の実施の形態１に係る文字描画装置における描画処理で行われるアンチエイリアス処理を説明するための図である。
【図５】この発明の実施の形態１に係る文字描画装置における描画処理で行われる文字の内部透過率幅設定を説明するための図である。
【図６】この発明の実施の形態１に係る文字描画装置における描画処理でウェイトの大きい文字の作成を説明するための図である。
【図７】この発明の実施の形態１に係る文字描画装置における描画処理でウェイトの小さい文字の作成を説明するための図である。
【図８】この発明の実施の形態１に係る文字描画装置における描画処理で幅の異なる矩形の算出を説明するための図である。
【図９】この発明の実施の形態１に係る文字描画装置における描画処理で太線と太線とのつなぎ目で生じる隙間を埋める方法を説明するための図である。
【図１０】この発明の実施の形態１に係る文字描画装置における描画処理でアンチエイリアス処理を施す範囲を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
実施の形態１．
図１は、この発明の実施の形態１に係る文字描画装置の構成を示すブロック図である。この文字描画装置は、演算プロセッサ１１とシステムメモリ１２とがバス１３で接続されることにより構成されている。
【００１４】
演算プロセッサ１１は、例えばＣＰＵ（Central Processing Unit）から構成されており、アプリケーション２１およびイメージメモリ２２を含んでいる。アプリケーション２１は、この文字描画装置が有する機能を実現するためのプログラムから構成されている。イメージメモリ２２は、文字イメージデータを記憶する。
【００１５】
システムメモリ１２は、この発明の「記憶部」に対応し、演算プロセッサ１１のプログラムを構成する命令コードおよび種々の処理に使用されるデータを保持している。このシステムメモリ１２に保持されるデータは、文字の輪郭を定義するアウトラインフォントを含む。なお、アウトラインフォントは、システムメモリ１２に限らず、演算プロセッサ１１の内部の記憶部に格納しておくように構成することもできる。
【００１６】
次に、上記のように構成される実施の形態１に係る文字描画装置の動作を説明する。上記演算プロセッサ１１にはオペレーティングシステム（ＯＳ）などが実装され、このＯＳ上で複数のアプリケーション２１または複数のタスクが動作するように構成されており、その１つとして文字描画装置としての機能を実現するための処理が行われる。
【００１７】
図２は、文字描画装置において行われる描画処理を示すフローチャートである。なお、以下に説明する描画処理は、演算プロセッサ１１に含まれるアプリケーション２１によって実行される。
【００１８】
描画処理では、まず、フォントデータの読み出しが行われる（ステップＳＴ２１）。すなわち、演算プロセッサ１１は、システムメモリ１２に格納されているアウトラインフォントから文字の輪郭情報であるフォントデータを読み出す。
【００１９】
次いで、パスデータの取り出しが行われる（ステップＳＴ２２）。すなわち、演算プロセッサ１１は、ステップＳＴ２１で読み出したフォントデータから、文字の輪郭を定義するパスデータを取り出す。フォントデータに含まれる文字のパスデータは、例えば図３（ａ）に示すような、直線および／またはパラメトリック曲線で定義されている。パラメトリック曲線としては、２次のベジェ曲線または３次のベジェ曲線が用いられる。
【００２０】
次いで、パスデータの直線化が行われる（ステップＳＴ２３）。すなわち、演算プロセッサ１１は、直線または曲線から構成されるパスデータを全て直線に分解する直線化を行う。このステップＳＴ２３では、特にパラメトリック曲線が直線に分割される。例えば「Ｄ」という文字の輪郭部分は、図３（ａ）に示すような直線とパラメトリック曲線にて定義されている。
【００２１】
次いで、直線データ対応の矩形生成が行われる（ステップＳＴ２４）。すなわち、演算プロセッサ１１は、ステップＳＴ２３において直線化されたパスデータから、幅のある矩形を生成する。具体的には、図３（ｂ）に破線で示すように、輪郭を線分化した部分が矩形として定義される。
【００２２】
次いで、矩形の幅設定が行われる（ステップＳＴ２５）。すなわち、演算プロセッサ１１は、ステップＳＴ２４で生成された矩形の幅を決める。
【００２３】
次いで、イメージメモリに矩形部分の透過率が設定される（ステップＳＴ２６）。すなわち、演算プロセッサ１１は、矩形部分の文字の透過率を矩形のイメージデータとしてイメージメモリ２２に書き込む。ここで書き込む透過率は、文字の輪郭部分のアンチエイリアス効果を考慮した値とすることができる。
【００２４】
アンチエイリアス処理は、直線を描画した際のギザギザを取り除く技術であり、図４（ａ）はエイリアスが存在する直線を示しており、図４（ｂ）はアンチエイリアス処理が施された直線を示している。文字の輪郭部分にアンチエイリアス処理を施すことによりギザギザが取り除かれた滑らかな輪郭の文字を描画することができる。
【００２５】
アンチエイリアスを実現するために、輪郭部分に形成された矩形を、アンチエイリアス処理を施す範囲とし、その矩形の内部に薄い色を混ぜるべく、例えば０ｘ００〜０ｘＦＦの範囲の透過率が設定される。文字の色を明瞭に出す部分を０ｘＦＦ、文字の色を出さない部分を０ｘ００として書き込むことによりアンチエイリアス処理を施す矩形部分の透過率を設定できる。アンチエイリアスに対応する透過率の計算方法としては、既存のスーパーサンプリング方式、または、輪郭とピクセルの距離に応じる方式などを用いることができる。
【００２６】
次いで、全パスが終了したかどうかが調べられる（ステップＳＴ２７）。すなわち、ステップＳＴ２１で読み出したフォントデータの全てのパスに対する処理が終了したか否かの判定が行われる。このステップＳＴ２７において、全パスが終了していないことが判断されると、シーケンスはステップＳＴ２２に戻り、残りのパスに対する処理を実行するべく、上述した処理が繰り返される。
【００２７】
一方、上記ステップＳＴ２７において、全パスが終了したことが判断されると、次いで、文字の内部透過率幅設定が行われる（ステップＳＴ２８）。すなわち、演算プロセッサ１１は、図５に示すように、ステップＳＴ２６において輪郭部分に形成された矩形部分に透過率が書き込まれたイメージデータの文字の内部に対して透過率を書き込む。
【００２８】
次いで、文字の全体の色が設定される（ステップＳＴ２９）。すなわち、演算プロセッサ１１は、透過率が書き込まれたイメージデータに色付けし、色付きの文字を生成する。具体的には、演算プロセッサ１１は、ステップＳＴ２８までの処理で完成された文字の透過率の情報をもとに文字の色を設定し、最終的な文字を作成する。その後、描画処理は終了する。
【００２９】
この実施の形態１に係る文字描画装置においてウェイトの異なる文字を作成する場合は、上述したステップＳＴ２５において矩形の幅を調整することにより太い文字を作成することができる。図６に示すように、矩形の幅を太くすることによりウェイトの大きな文字を生成することが可能となる。このように、矩形の幅の変更を可能とすることにより従来の文字描画ロジックをそのまま使用することができる。このため、ウェイトごとのフォントデータを新規に作り出すような処理時間が不要となり、太くなる分のドット生成に要する時間は増えるが、基本処理の大幅な増加を避けることができる。
【００３０】
また、ウェイトが小さい文字を生成する場合には、ステップＳＴ２５における矩形の幅の設定において、内側の幅と外側の幅を独立に設定できるようにする。図７（ａ）は通常の文字幅であるが、図７（ｂ）に示すように外側の幅を小さくすることにより全体的に小さな文字である、ウェイトの小さな文字を生成することができる。この場合もフォントの基本処理は増加しないため、処理時間が大きく変わることもない。
【００３１】
幅の異なる矩形は、図８（ａ）に示す頂点Ａと頂点Ｂを結ぶベクトルと垂直な垂直ベクトルを求め、図８（ａ）に示すように内側と外側の各方向に設定された幅だけ移動した点を算出することにより作成できる。この矩形の計算は直線に対する計算であり、フォント自体を大きくするためにパラメトリック曲線を外側または内側に移動させるために行う計算量よりはるかに少ない。
【００３２】
また、実施の形態１に係る文字描画装置における描画の方法では、図９に円形の破線で囲まれた部分に示すように、太線と太線のつなぎ目において隙間が空いてしまうが、この隙間は、つなぎ目に円形を描画することにより解消することができる。また、２つの太線の角を結ぶ蓋をするような三角形を描画したり、２つの太線のエッジの延長線の交点と太線の端とを結ぶ四角形を描画したりすることにより隙間を解消することができる。
【００３３】
また、矩形の範囲がアンチエイリアス処理を施す範囲とすると、図１０（ａ）に示すように、文字の外側幅と内側幅の間でアンチエイリアス処理を施すことにより滑らかな輪郭を表示する。この場合、図１０（ｂ）に示すように、内側の幅を小さくすることにより、文字の内側の領域が増えるため、文字全体のサイズは変わらないが、内側の透過しない領域が増加し、くっきりとした文字を表示することができる。
【００３４】
また、矩形の外側の幅を大きくすることにより、文字の輪郭をぼんやりさせた文字を作成することができる。この輪郭をぼんやりさせた文字または外側を太くした文字を一旦描画し、その後に通常の文字（矩形を小さくした文字）を重ねて描画することにより、袋文字のような効果を出すことができる。
【００３５】
以上説明したように、この発明の実施の形態１に係る文字描画装置によれば、１つのフォントから複数のウェイトに対応する文字描画を実現しているので、フォントを保持するメモリ容量を少なくすることができる。また、フォントの形状を計算で求める方式をとらずに通常の文字描画方式を活用して、異なるウェイトの文字の描画または太文字の描画を実現しているので、処理時間を短くすることができる。
【００３６】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００３７】
１１  演算プロセッサ、１２  システムメモリ、２１  アプリケーション、２２  イメージメモリ。
【図１】
0005889401.tif 000002
【図２】
0005889401.tif 000003
【図３】
0005889401.tif 000004
【図４】
0005889401.tif 000005
【図５】
0005889401.tif 000006
【図６】
0005889401.tif 000007
【図７】
0005889401.tif 000008
【図８】
0005889401.tif 000009
【図９】
0005889401.tif 000010
【図１０】
0005889401.tif 000011