文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体
【課題】文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置を提供する。
【解決手段】文字描画装置220は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段212−1と、文字コード10と、文字に割り当てられた第1の矩形領域の大きさ11Aと、文字の線幅12とを受け付ける受付手段110と、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさ11Bを取得する取得手段104と、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段106と、拡縮処理された形状データを出力する出力手段107とを備える。
【解決手段】文字描画装置220は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段212−1と、文字コード10と、文字に割り当てられた第1の矩形領域の大きさ11Aと、文字の線幅12とを受け付ける受付手段110と、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさ11Bを取得する取得手段104と、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段106と、拡縮処理された形状データを出力する出力手段107とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マトリクス状に配列された複数の画素からなる表示デバイスに文字を表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関し、特に、文字の対称性を保持しながら文字を表示デバイスに表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関する。
【背景技術】
【0002】
近年、テレビジョン放送のデジタル化に伴い、ユーザが電子番組表(EPG:Electronic Program Guide)などのテキストデータを利用する頻度が高くなっている。そのため、文字描画装置には、見やすく読み易いテキストデータを描画することが望まれる。
【0003】
ここで、見やすく読み易いテキストデータを描画する際に着目する点の一つとして、対称性の保持という観点がある。対称性のある文字の対称性が崩れた場合、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。例えば、「山」という文字のように、文字を構成する少なくとも1つストロークに対して左右対称な文字の場合、対称軸となる「山」の真ん中のストロークは当該文字の中央に位置する必要がある。しかしながら、「山」の真ん中のストロークが文字の中心に位置しない場合、すなわち「山」の両端のストロークのうちの一方のストロークが中央側に移動する場合、もしくは外側に移動するような場合、「山」という文字の左右対称性が崩れてしまい、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。
【0004】
そこで、特開平6−274151号公報(特許文献1)には、アウトラインフォントの対称性を保持しながら変倍して文字を描画するヒンティング処理方法が開示されている。特開平6−274151号公報(特許文献1)によると、ヒンティング処理方法においては、制御点情報入力部からアウトラインデータに対して、制御点を与える。展開部は、制御点をピクセル中心またはピクセル境界に移動する。この移動量に合わせてアウトラインフォントの輪郭点を移動することにより、対称性の保持されたビットマップデータを生成する。
【特許文献1】特開平6−274151号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特開平6−274151号公報(特許文献1)に示されるように、従来は、アウトラインデータに対してある制御点を与え、当該アウトラインデータを変倍した後に当該制御点をピクセル中心またはピクセル境界に移動し、この移動量に合わせてアウトラインフォントを構成する全ての輪郭点を移動させることにより、対称性の保持された文字を描画していた。なお、ピクセルは、格子点を左下隅とする単位正方形であるものとし、ピクセルの中心座標は(m+0.5,n+0.5)と表される。そして、m,nは整数である。
【0006】
しかしながら、従来技術においては、アウトラインデータを変倍した後、変倍後の制御点の移動量に応じて、全ての輪郭線の構成する輪郭点を移動させる必要があり、対称文字の描画が完了するまでに多くのステップを要してしまう。
【0007】
本発明は上記問題点に鑑みてなされたものであり、本発明の主たる目的は、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
この発明のある局面に従えば、表示デバイスに文字を表示させる文字描画装置が提供される。文字描画装置は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段と、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付ける受付手段と、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得する取得手段と、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段と、拡縮処理された形状データを出力する出力手段とを備える。
【0009】
好ましくは、第1の矩形領域はボディ領域である。第1の矩形領域の大きさはボディサイズである。第2の矩形領域はレター領域である。第2の矩形領域の大きさはレターサイズである。
【0010】
好ましくは、文字描画装置は、形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備える。取得手段は、第2の矩形領域の大きさとして、対称部位が表示される第2の矩形領域の、対称軸に直角な方向の長さを取得する。
【0011】
好ましくは、表示デバイスは、マトリクス状に配列された複数の画素から構成される。取得手段は、第1の矩形領域の一辺の画素数を取得し、線幅を示す画素数が奇数である場合に、第2の矩形領域の大きさとして、一辺の画素の数よりも少ない奇数の画素数を取得し、線幅を示す画素数が偶数である場合に、第2の矩形領域の大きさとして、一辺の画素の数よりも少ない偶数の画素数を取得する。
【0012】
好ましくは、文字描画装置は、第2の矩形領域の大きさを、第1の矩形領域の大きさと線幅とに対応付けて記憶する第2の記憶手段をさらに備える。取得手段は、第1の矩形領域の大きさと線幅とに基づいて、第2の記憶手段から対応する第2の矩形領域の大きさを読み出す。
【0013】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画方法が提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備える。文字描画方法は、演算処理部が、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付けるステップと、演算処理部が、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得するステップと、演算処理部が、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを備える。
【0014】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムが提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備える。文字描画プログラムは、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付けるステップと、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得するステップと、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを演算処理部に実行させる。
【0015】
この発明の別の局面に従うと、上記の文字描画プログラムを記録したコンピュータ読取可能な記録媒体が提供される。
【発明の効果】
【0016】
以上のように、この発明によれば、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体が提供される。
【発明を実施するための最良の形態】
【0017】
以下、図面に基づいて本発明の実施の形態について説明する。なお以下の説明では、同一の部品については同一の符号を付すものとし、その部品の名称や機能が同一である場合には、その部品についての詳細な説明は繰り返さない。
【0018】
(コンピュータシステム200の全体構成)
まず、文字描画システムの一例として、本実施の形態に係るコンピュータシステム200の全体構成について説明する。図1は、本実施の形態に係るコンピュータシステム200を示す概略図である。本実施の形態に係る文字描画システム(コンピュータシステム200)や文字描画装置(コンピュータ220)は、実質的には、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。
【0019】
このコンピュータシステム200は、光ディスクドライブ201および磁気ディスクドライブ202を有するコンピュータ220と、モニタ203と、リモートコントローラ(以下、「リモコン」と呼ぶ)204とを含む。すなわち、本実施の形態においては、文字描画装置の一例として、コンピュータ220を用いて説明する。
【0020】
コンピュータ220は、光ディスクドライブ201および磁気ディスクドライブ202に加えて、コンピュータ220の各部を制御するCPU(Central Processing Unit;中央処理装置)100と、リモコン204からの信号を受信するリモコンインターフェイス(I/F)205と、ブートアッププログラム等を記憶するROM(Read-Only Memory;読出専用メモリ)208と、プログラム命令やシステムプログラムや作業データなどを一時的に記憶するRAM(Random Access Memory)209と、制御プログラムや各種データベースを不揮発に記憶するハードディスク212と、モニタ203に形状データや画像データなどを送信するモニタインターフェイス213と、それらを相互に接続するバス207とを含む。
【0021】
なお、コンピュータ220は、さらにLAN(Local Area Network)への接続を提供するネットワークアダプタボード(通信インターフェイス216)を含んでいてもよい。
【0022】
コンピュータシステム200に文字描画システムの機能を実現させるためのプログラム、文字コード10(図2参照)、第1および第2の矩形領域サイズ11A,11B、線幅12、形状データ13などは、光ディスクドライブ201に挿入される光ディスク210、磁気ディスクドライブ202に挿入される磁気ディスク211に記憶されて流通され、ハードディスク212へと転送される。あるいは、プログラム、文字コード10(図2参照)、第1および第2の矩形領域サイズ11A,11B、線幅12、形状データ13は、図示しないネットワークから通信インターフェイス216を介してコンピュータ220に送信され、ハードディスク212に記憶される。
【0023】
CPU100は、ハードディスク212からプログラムを読み出すことによって、当該プログラムをRAM209にロードする。あるいは、CPU100は、光ディスク210から光ディスクドライブ201を介して、磁気ディスク211から磁気ディスクドライブ202を介して、ネットワークから通信インターフェイス216を介してプログラムを取得し、当該プログラムをRAM209にロードしてもよい。
【0024】
このプログラムは、コンピュータ220に文字描画装置としての機能を実現させる複数の命令を含む。これら機能を実現するために必要な基本的機能のいくつかはコンピュータ220上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、若しくはコンピュータ220にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムは、本実施の形態に係るコンピュータ220の機能を実現するのに必要な機能全てを必ずしも含まなくてよい。
【0025】
また、このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記したコンピュータ220の制御を実行する命令のみを含んでいればよい。コンピュータシステム200の動作は周知であるので、ここでは繰り返さない。
【0026】
なお、文字描画装置としての機能を実現するためのプログラム、文字コード10(図2参照)、第1の矩形領域サイズ11A、線幅12、形状データ13などが記録される記録媒体は、CD−ROM(Compact Disc Read-Only Memory)、MO(Magneto-Optical disc)、MD(Mini Disc)、及びDVD(Digital Versatile Disc)等の光ディスク210、FD(フレキシブルディスク)、ハードディスク等の磁気ディスクに限らない。磁気テープおよびカセットテープ等のテープ、IC(Integrated Circuit)カードおよび光カード等のカード型記録媒体、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、及びフラッシュROM等の半導体メモリのいずれかでもよい。ただし、コンピュータシステム200は、これらの記録媒体からの読出を行うための読出装置を実装する必要がある。
【0027】
<機能構成>
次に、本実施の形態に係るコンピュータ(文字描画装置)220が有する機能構成について説明する。図2は、本実施の形態に係るコンピュータ(文字描画装置)220の機能構成を示す機能ブロック図である。
【0028】
前述したように、図2に示される各部は、CPU100がハードディスク212に記憶されるプログラムを実行することによって実現される機能である。ただし、図2に示される1または複数の機能ブロックが、専用のハードウェア回路によって実現される構成であってもよい。
【0029】
図2に示すように、本実施の形態に係るコンピュータ220は、文字コード受付部101、サイズ受付部102、線幅受付部103、取得部104、拡縮部106、出力部107、および形状データ記憶部212−1を備えている。なお、文字コード受付部101、サイズ受付部102、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0030】
まずは、コンピュータ220の各機能ブロックに入出力されるデータについて説明する。文字コード10は、描画する文字を識別するために一意に振られた番号である。
【0031】
第1の矩形領域サイズ11Aは、文字コード10で示された文字を描画する際における、当該文字に割り当てられた領域の大きさを表す。本実施の形態においては、第1の矩形領域を文字のボディ枠とし、第1の矩形領域サイズ11Aを文字のボディサイズとする。たとえば、文字のボディ枠が左右方向および上下方向に20ドット(画素)を有する場合、第1の矩形領域サイズ11Aには第1の矩形領域の大きさとして20ドットがセットされる。
【0032】
また、第2の矩形領域サイズ11Bは、文字コード10で示された文字を描画する際における、当該文字が実際に描画される領域の大きさを表す。本実施の形態においては、第2の矩形領域を文字のレター枠とし、第2の矩形領域サイズ11Bを文字のレターサイズとする。たとえば、文字のレター枠が左右方向および上下方向に19ドットを有する場合、第2の矩形領域サイズ11Bには第2の矩形領域の大きさとして19ドットがセットされる。
【0033】
すなわち、第2の矩形領域は第1の矩形領域よりも小さい画素領域であって、第2の矩形領域サイズ11Bは、第1の矩形領域サイズ11Aよりも小さい。
【0034】
なお、第1および第2の矩形領域の形状は必ずしも正方形であるとは限らず、長方形であっても構わない。第1および第2の矩形領域が長方形である場合、矩形領域サイズ11として、例えば左右方向(水平方向あるいは横方向)の大きさ(ドット数)と上下方向(垂直方向あるいは縦方向)の大きさ(ドット数)で表される情報がセットされる。
【0035】
線幅12は、文字コード10で示された形状データ13を描画する際における、各ストロークの線幅(太さ)を指す。例えば、1ドットの線幅にて文字を描画する場合には、線幅は1ドットとなり、2ドット線幅で文字を描画する場合には線幅は2ドットとなる。
【0036】
形状データ13は、文字を構成するデータを表す。なお、形状データ13の形式にはこだわらない。例えば、形状データ13は、アウトラインフォントのように、輪郭線を構成する点列データおよび制御点データからなる輪郭線情報を示すものであっても構わないし、文字のストロークを表す骨格データを示すものであっても構わない。
【0037】
ここで、形状データ記憶部212−1について説明する。形状データ記憶部212−1は、各種記録媒体やネットワークなどを介して提供される形状データ13を蓄積し、当該形状データ13を管理する。形状データ記憶部212−1は、ハードディスク212に格納されるデータベースや、文字コード10に対応する形状データ13を記憶するためにRAM209に一時的に確保されるメモリ領域などによって実現される。
【0038】
図3は、形状データ記憶部212−1が記憶する形状データ13の例を示すイメージ図である。より詳細には、図3(a)は、形状データ記憶部212−1が「山」を示す文字コードに対応付けて格納している形状データ13Aである。図3(b)は、形状データ記憶部212−1が「三」を示す文字コードに対応付けて格納している形状データ13Bである。図3(c)は、形状データ記憶部212−1が「仲」を示す文字コードに対応付けて格納している形状データ13Cである。
【0039】
なお、図3(a)(b)(c)に示される各ストロークの端点1および端点2は、1024ドット×1024ドットの画素領域における座標で表されている。
【0040】
図3(a)に示すように、形状データ記憶部212−1は、「山」という漢字の骨格データを形状データ13Aとして格納する。ストローク識別子は各文字内で一意に振られ、端点1および端点2を両端点とするストロークデータを示す。なお、端点1および端点2の位置は、ボディサイズを1024×1024ドットの大きさとした場合の座標で示している。
【0041】
オブジェクト識別子は、各ストロークが属するオブジェクト(部位)を示すものであって、同じオブジェクトに属するストロークには同じオブジェクト識別子が割り当てられる。ここで、オブジェクトとは、文字を構成する「偏」や「冠」などの部首や、部首以外のストロークの集合(ストローク群)などをいう。本実施の形態に係る形状データ記憶部212−1は、各文字の各ストロークをオブジェクト識別子に対応付けて記憶する。
【0042】
対称性フラグは、当該文字あるいは当該文字に含まれるオブジェクトが対称性を有しているか否かを示すものである。すなわち、対称性フラグが「1」の文字あるいはオブジェクトは左右対称性を有し、対称性フラグが「2」の文字あるいはオブジェクトは上下対称性を有し、対称性フラグが「3」の文字あるいはオブジェクトは左右対称性と上下対称性と有し、対称性フラグが「0」の文字あるいはオブジェクトは対称性を有しない。
【0043】
なお、対称性を有している文字は、完全な線対称性を有している必要はない。実施の形態3において詳述するが、たとえば、文字(オブジェクト)の右側と左側との類似度(あるいは上側と下側との類似度)が所定の閾値以上であれば、当該文字を左右対称(上下対称)であるものとして取り扱うことが好ましい。
【0044】
すなわち、各文字において、同一のオブジェクト識別子を有するストロークは、同一の識別子を有する。ただし、「山」や「三」などのように、1種類のオブジェクト識別子だけを含む文字も存在する。換言すれば、そのような文字については、取得部104(CPU100)が、文字全体を1つのオブジェクトとして取り扱うことができる。
【0045】
例えば、「山」は4つのストロークからなる。4つのストロークとも、全て同じオブジェクト「1」に属している。また、「山」という文字が左右対称性を持っていることが分かる。これによって、取得部104は、形状データ13Aを参照して、「山」という文字(オブジェクト)はオブジェクト識別子が全て「1」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部104は、「山」という文字(オブジェクト)の対称性フラグが「1」であるので、「山」という文字(オブジェクト)が左右対称性を有することを認識することができる。
【0046】
図3(b)に示すように、形状データ記憶部212−1は、「三」という漢字の骨格データを形状データ13Bとして格納する。取得部104は、形状データ13Bを参照して、「三」という文字(オブジェクト)はオブジェクト識別子が全て「1」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部104は、「三」という文字(オブジェクト)の対称性フラグが「2」であるので、「三」という文字(オブジェクト)が上下対称性を有することを認識することができる。
【0047】
図3(c)に示すように、形状データ記憶部212−1は、「仲」という漢字の骨格データを形状データ13Cとして格納する。取得部104は、形状データ13Cを参照して、「仲」という文字が、8つのストロークから構成され、ストローク識別子が1〜3のストローク群(人偏)からなるオブジェクトと、4〜8のストローク群(「中」の部分)からなるオブジェクトから構成されていることを認識することができる。また、取得部104は、形状データ13Cを参照して、人偏のオブジェクトの対称性フラグが「0」であるので、人偏が対称性を有しないことを認識することができる。一方、取得部104は、形状データ13Cを参照して、「中」のオブジェクトの対称性フラグが「1」であるので、「中」のオブジェクトが左右対称性を有することを認識することができる。
【0048】
図2に戻って、文字コード受付部101は、例えば無線もしくは有線を介して提供される文字コード10を受信するインターフェイスを備えており、外部から文字コード10の入力を受け付ける。あるいは、文字コード受付部101は、他のプログラム(アプリケーション)から提供される文字コードを受け付ける。
【0049】
サイズ受付部102は、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、第1および第2の矩形領域サイズ11A,11Bの入力を受け付ける。あるいは、サイズ受付部102は、他のプログラム(アプリケーション)から提供される第1および第2の矩形領域サイズ11A,11Bを受け付ける。
【0050】
線幅受付部103は、例えば無線もしくは有線を介して提供される線幅12を受信するインターフェイスを備えており、線幅12の入力を受け付ける。あるいは、線幅受付部103は、他のプログラム(アプリケーション)から提供される線幅12を受け付ける。
【0051】
本実施の形態に係る取得部104は、線幅受付部103を介して入力された線幅12と、サイズ受付部102を介して入力された第1および第2の矩形領域サイズ11A,11Bとに基づいて、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。すなわち、本実施の形態に係る取得部104は、線幅受付部103を介して入力された線幅12と、サイズ受付部102を介して入力された第1の矩形領域サイズ11Aとに基づいて、サイズ受付部102を介して入力された第2の矩形領域サイズ11Bを修正する。
【0052】
拡縮部106は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出し、最終的な第2の矩形領域サイズ11Bに収まるように当該形状データ13の拡大処理または縮小処理を行う。例えば、第2の矩形領域サイズ11Bが23ドットである場合、上下方向および左右方向の大きさが23ドットの第2の矩形領域に収まるように文字の大きさを調整する。
【0053】
出力部107は、拡縮部106で処理された形状データ13をモニタインターフェイス213を介してモニタ203に出力する。あるいは、出力部107は、拡縮部106で処理された形状データ13を通信インターフェイス216を介してもネットワークへと出力する。なお、コンピュータ220自体が描画機能(モニタ)を備えている場合は、拡縮処理された形状データ13に従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【0054】
(本実施の形態に係るコンピュータ220の動作概要1)
(線幅が2ドットの場合)
ここで、本実施の形態に係る取得部104の動作概要について詳述する。以下では、左右対称性を持つ文字の文字コード10が入力された場合に、モニタ203などに左右対称性を持つ文字を描画する(表示する)際の動作概要について説明する。
【0055】
本実施の形態においては、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「山」という文字の文字コード「0x8e52」が、文字コード受付部101を介して入力されるものとする。そして、第1の矩形領域サイズ11A(ボディサイズ)として16ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として15ドットという情報が、サイズ受付部102を介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0056】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e52という情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして16ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして15ドットという情報を受け付けて、取得部104に受け渡す。
【0057】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が2ドットであって、すなわち線幅が偶数であるため、取得部104は第2の矩形領域サイズ11Bが偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが15ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104は、第2の矩形領域サイズ11Bを14ドットにセットし直す。
【0058】
図4は、線幅が2ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図4(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図4(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。図4(c)は、通常の文字描画システムにおける第1の矩形領域と第2の矩形領域と表示される文字画像とを示す第1のイメージ図である。図4(d)は、通常の文字描画システムにおける第1の矩形領域と第2の矩形領域と表示される文字画像とを示す第2のイメージ図である。
【0059】
図4(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを14ドットにセットし直す。たとえば、「山」という文字に割り当てられるボディ枠として、上下方向および左右方向に16ドット分の画素が確保される。そして、取得部104は、「山」という文字が表示される(占有する)レター枠として、上下方向および左右方向に14ドット分の画素を確保する。
【0060】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e52」の形状データ13を呼び出して、文字がレター枠(14ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0061】
なお、拡縮部106による、形状データ13に対する拡大処理または縮小処理は、たとえばベクトルデータに基づいた計算などによって実現される。すなわち、図3(a)を参照して、「山」という文字を16ドット×16ドットの画素領域に描画する際には、拡縮部106は以下の計算に基づいて、各ストロークの端点1および端点2を計算することによって、縮小処理を行う。
ストローク識別子1の端点1:(448×16/1024, 896×16/1024)=(7,14)
ストローク識別子1の端点2:(448×16/1024, 64×16/1024)=(7,1)
ストローク識別子2の端点1:(64×16/1024, 512×16/1024)=(1,8)
ストローク識別子2の端点2:(64×16/1024, 64×16/1024)=(1,1)
ストローク識別子3の端点1:(64×16/1024, 64×16/1024)=(1,1)
ストローク識別子3の端点2:(832×16/1024, 64×16/1024)=(13,1)
ストローク識別子4の端点1:(832×16/1024, 512×16/1024)=(13,8)
ストローク識別子4の端点2:(832×16/1024, 64×16/1024)=(13,1)
そして、図4(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが14ドット(偶数)のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【0062】
一方、通常のコンピュータシステム200は、線幅が2ドット(偶数)の場合であっても、サイズ受付部102が受け付けた第2の矩形領域サイズ11Bである15ドット(奇数)のままで、文字コード(SJISコード)0x8e52に基づいて「山」という文字を描画するので、図4(c)または図4(d)のような文字画像が表示されてしまう。すなわち、図4(c)に示すように「山」の真ん中のストロークが右側に寄ってしまったり、図4(d)に示すように「山」の真ん中のストロークが左側に寄ってしまったりして、文字が左右対称性を崩してしまい、ユーザに違和感を与えてしまう。
【0063】
本実施の形態に係るコンピュータ220は、線幅が偶数の場合に、第2の矩形領域サイズ11Bを偶数に設定し直すため、図4(b)に示すように左右対称性を保持した文字を描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0064】
(線幅が3ドットの場合)
次に、線幅として3ドットという情報が、線幅受付部103に入力された場合について説明する。
【0065】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e52という情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして16ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として3ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして15ドットという情報を受け付けて、取得部104に受け渡す。
【0066】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が3ドットであって、すなわち線幅が奇数であるため、取得部104は第2の矩形領域サイズ11Bが奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが15ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bを変更しない。あるいは、サイズ受付部102にて受け付けられた第2の矩形領域サイズ11Bが16ドットである場合には、取得部104は、第2の矩形領域サイズ11Bを15ドットに設定し直す。
【0067】
図5は、線幅が3ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図5(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図5(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0068】
図5(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを15ドットのまま変更しない。たとえば、「山」という文字に割り当てられる第1の矩形領域(ボディ枠)として、上下方向および左右方向に16ドット分の画素が確保される。そして、取得部104は、「山」という文字が表示される(占有する)第2の矩形領域(レター枠)として、上下方向および左右方向に15ドット分の画素を確保する。
【0069】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e52」の形状データ13を呼び出して、文字が第2の矩形領域(15ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0070】
そして、図5(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が3ドット(奇数)の場合に、第2の矩形領域サイズ11Bが15ドット(奇数)のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【0071】
本実施の形態に係るコンピュータ220は、線幅が奇数の場合に、第2の矩形領域サイズ11Bを奇数に設定し直すため、図5(b)に示すように左右対称性を保持した文字を描画することができる。
【0072】
(本実施の形態に係るコンピュータ220の動作概要1)
(線幅が2ドットの場合)
次に、本実施の形態に係る取得部104の動作概要について、上下対称性を持つ文字の文字コード10が入力された場合に、モニタ203などに上下対称性を持つ文字を描画する(表示する)際の動作概要について説明する。
【0073】
本実施の形態においても、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「三」という文字の文字コード「0x8e4f」が、文字コード受付部101を介して入力されるものとする。そして、第1の矩形領域サイズ11A(ボディサイズ)として12ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として11ドットという情報が、サイズ受付部102を介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0074】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e4fという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして12ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして11ドットという情報を受け付けて、取得部104に受け渡す。
【0075】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が2ドットであって、すなわち線幅が偶数であるため、取得部104は第2の矩形領域サイズ11Bが偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが11ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104は、第2の矩形領域サイズ11Bを10ドットにセットし直す。
【0076】
図6は、線幅が2ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図6(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図6(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0077】
図6(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを10ドットにセットし直す。たとえば、「三」という文字に割り当てられるボディ枠として、上下方向および左右方向に12ドット分の画素が確保される。そして、取得部104は、「三」という文字が表示される(占有する)レター枠として、上下方向および左右方向に10ドット分の画素を確保する。
【0078】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e4f」の形状データ13を呼び出して、文字がレター枠(10ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0079】
そして、図6(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが10ドット(偶数)のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【0080】
(線幅が1ドットの場合)
次に、線幅として1ドットという情報が、線幅受付部103に入力された場合について説明する。
【0081】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e4fという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして12ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として1ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして11ドットという情報を受け付けて、取得部104に受け渡す。
【0082】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が1ドットであって、すなわち線幅が奇数であるため、取得部104は第2の矩形領域サイズ11Bが奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが11ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bを変更しない。あるいは、サイズ受付部102にて受け付けられた第2の矩形領域サイズ11Bが12ドットである場合には、取得部104は、第2の矩形領域サイズ11Bを11ドットに設定し直す。
【0083】
図7は、線幅が1ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図7(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図7(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0084】
図7(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを11ドットのまま変更しない。たとえば、「三」という文字に割り当てられる第1の矩形領域(ボディ枠)として、上下方向および左右方向に12ドット分の画素が確保される。そして、取得部104は、「三」という文字が表示される(占有する)第2の矩形領域(レター枠)として、上下方向および左右方向に11ドット分の画素を確保する。
【0085】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e4f」の形状データ13を呼び出して、文字が第2の矩形領域(11ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0086】
そして、図7(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が1ドット(奇数)の場合に、第2の矩形領域サイズ11Bが11ドット(奇数)のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【0087】
なお、「田」のように、左右方向に対しても対称性を持ち、かつ上下方向に対しても対称性を持つような文字に対しても上記と同様の機能を適用することができる。
【0088】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220における文字描画処理の処理手順について説明する。図8は、本実施の形態にかかるコンピュータ220における文字描画処理の処理手順を示すフローチャートである。
【0089】
図8を参照して、コンピュータ220の電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS102)。CPU100は、文字コード10が入力されると(ステップS102にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データ13を読み出す。
【0090】
次に、CPU100は、第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS104)。CPU100は、第一の矩形領域サイズ11Aが入力されると(ステップS104にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS106)。CPU100は、線幅12が入力されると(ステップS106にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0091】
CPU100は、第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS108)。CPU100は、第2の矩形領域サイズ11Bが入力されると、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については後述する。
【0092】
CPU100は、第2矩形領域サイズ決定処理(ステップS200)が終了すると、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、第2矩形領域サイズ決定処理(ステップS200)にて修正された後の第2の矩形領域サイズ11Bに適合するように、形状データ13に拡大処理または縮小処理を行う(ステップS110)。
【0093】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS112)、文字描画処理を終了する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS112において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0094】
<第2の矩形領域サイズ決定処理>
次に、本実施の形態にかかるコンピュータ220における第2の矩形領域サイズ決定処理(ステップS200)の処理手順について説明する。図9は、本実施の形態にかかるコンピュータ220における第2の矩形領域サイズ決定処理(ステップS200)の処理手順を示すフローチャートである。
【0095】
図9を参照して、第2の矩形領域サイズ決定処理(ステップS200)が開始されると、CPU100は、入力された線幅12が偶数であるか否かを判断する(ステップS202)。CPU100は、線幅が偶数である場合(ステップS202にてYESである場合)、入力された第2の矩形領域サイズ11Bが偶数であるか否かを判断する(ステップS204)。
【0096】
CPU100は、第2の矩形領域サイズ11Bが奇数である場合(ステップS204にてNOである場合)、第2の矩形領域サイズ11Bを現在の第2の矩形領域サイズ11B(ステップS108にて入力された時点の第2の矩形領域サイズ11B)から1だけ小さい値にセットし直して、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0097】
本実施の形態においては、ステップS206に示すように、最終的な第2の矩形領域サイズ11Bが、ステップS108にて入力された第2の矩形領域サイズ11Bより1だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第2の矩形領域サイズ11Bが第1の矩形領域サイズ11Aを超えない範囲の偶数の値であれば構わない。ゆえに、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の偶数値とするものであっても構わない。
【0098】
一方、CPU100は、第2の矩形領域サイズ11Bが偶数である場合(ステップS204にてYESである場合)、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0099】
本実施の形態においては、ステップS204において、第2の矩形領域サイズ11Bが偶数であれば処理を終了したが、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の偶数値として設定し直すものであっても構わない。
【0100】
そして、ステップS202において、CPU100は、線幅が奇数である場合(ステップS202にてNOである場合)、入力された第2の矩形領域サイズ11Bが偶数であるか否かを判断する(ステップS208)。CPU100は、第2の矩形領域サイズ11Bが奇数である場合(ステップS208にてNOである場合)、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0101】
本実施の形態においては、ステップS208において、第2の矩形領域サイズ11Bが奇数であれば処理を終了したが、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の奇数値として設定し直すものであっても構わない。
【0102】
一方、ステップS208において、CPU100は、第2の矩形領域サイズ11Bが偶数である場合(ステップS208にてYESである場合)、第2の矩形領域サイズ11Bを現在の第2の矩形領域サイズ11B(ステップS108にて入力された時点の第2の矩形領域サイズ11B)から1だけ小さい値にセットし直して、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0103】
本実施の形態においては、ステップS210に示すように、最終的な第2の矩形領域サイズ11Bが、ステップS108にて入力された第2の矩形領域サイズ11Bより1だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第2の矩形領域サイズ11Bが第1の矩形領域サイズ11Aを超えない範囲の奇数の値であれば構わない。ゆえに、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の奇数値とするものであっても構わない。
【0104】
このように、本実施の形態に係るコンピュータ220においては、線幅12と第2の矩形領域サイズ11Bとを整合させるための処理を行うため、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0105】
[実施の形態2]
次に、本発明の実施の形態2について説明する。上述の実施の形態1に係るコンピュータ220は、受付部110が受け付けた第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、文字が表示される第2の矩形領域サイズ11B(レター枠のサイズ)を更新するものであった。一方、本実施の形態に係るコンピュータ220bにおいては、受付部110が受け付けた第1の矩形領域サイズ11Aと線幅12とに応じて、第2の矩形領域サイズ11Bを設定する。
【0106】
なお、実施の形態2におけるコンピュータ220bやコンピュータシステムのハードウェア構成は、図1に示した実施の形態1におけるコンピュータ220やコンピュータシステム200と同じであるため、ここでは説明を繰り返さない。
【0107】
<機能構成>
図10は、本実施の形態にかかるコンピュータ(文字描画装置)220bの機能構成を示すブロック図である。本実施の形態に係るコンピュータ220bにおいても、図10に示される各部は、CPU100がハードディスク212やRAM209に記憶されるプログラムを実行することによって実現される機能である。ただし、図10に示される1または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【0108】
なお、図2に示した実施の形態1におけるコンピュータ220と同じ機能ブロックについては、ここでは説明を繰り返さない。
【0109】
図10を参照して、本実施の形態にかかるコンピュータ220bは、文字コード受付部101、サイズ受付部102b、線幅受付部103、取得部104b、拡縮部106、出力部107、形状データ記憶部212−1、および矩形情報記憶部212−2を備えている。なお、文字コード受付部101、サイズ受付部102b、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0110】
まずは、矩形情報記憶部212−2について説明する。図11は、矩形情報記憶部212−2に格納される矩形データ212Aを示すイメージ図である。図11に示すように、矩形情報記憶部212−2は、第2の矩形領域サイズ11Bを、線幅12と第1の矩形領域サイズ11Aとに対応付けて格納する矩形データ212Aを記憶する。これにより、取得部104bは、矩形情報記憶部212−2を参照して、第1の矩形領域サイズ11Aと線幅12とに基づいて、第2の矩形領域サイズ11Bを取得することができる。
【0111】
図10に戻って、サイズ受付部102bは、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、第1の矩形領域サイズ11Aの入力を受け付ける。あるいは、サイズ受付部102bは、他のプログラム(アプリケーション)から提供される第1の矩形領域サイズ11Aを受け付ける。
【0112】
ただし、本実施の形態に係るサイズ受付部102bは、第2の矩形領域サイズ11Bを受け付けてもよい。より詳細には、たとえば、サイズ受付部102bは、受け付けた第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形情報記憶部212−2に記憶されていない場合に、第2の矩形領域サイズ11Bを受け付けてもよい。
【0113】
本実施の形態に係る取得部104bは、矩形情報記憶部212−2を参照し、線幅受付部103を介して入力された線幅12とサイズ受付部102bを介して入力された第1の矩形領域サイズ11Aとに基づいて、両者に対応する第2の矩形領域サイズ11Bを取得することによって、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。より詳細には、たとえば、図11に示すように、受付部110が、線幅として2ドットいう情報を、第1の矩形領域サイズ11Aとして16ドットいう情報を受け付けると、取得部104bは、矩形情報記憶部212−2の矩形データ212Aを参照して、両者に対応する第2の矩形領域サイズ11B(14ドット)を取得する。
【0114】
ただし、本実施の形態に係るサイズ受付部102bは、線幅受付部103を介して入力された線幅12と、サイズ受付部102bを介して入力された第1の矩形領域サイズ11Aと、同じくサイズ受付部102bを介して入力された第2の矩形領域サイズ11Bに基づいて、当該第2の矩形領域サイズ11Bを修正してもよい。より詳細には、たとえば、受け付けた第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形情報記憶部212−2に記憶されていない場合に、線幅12と第1の矩形領域サイズ11Aとに基づいて、第2の矩形領域サイズ11Bを修正してもよい。
【0115】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220bにおける文字描画処理の処理手順について説明する。図12は、本実施の形態にかかるコンピュータ220bにおける文字描画処理の処理手順を示すフローチャートである。
【0116】
図12を参照して、コンピュータ220bの電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS302)。CPU100は、文字コード10が入力されると(ステップS302にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データを読み出す。
【0117】
次に、CPU100は、第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS304)。CPU100は、第一の矩形領域サイズ11Aが入力されると(ステップS304にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS306)。CPU100は、線幅12が入力されると(ステップS306にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0118】
CPU100は、矩形情報記憶部212−2を参照して、第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されているか否かを判断する(ステップS308)。第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されている場合(ステップS308にてYESである場合)、CPU100は、当該第2の矩形領域サイズ11Bを抽出して、文字コード10に対応する第2の矩形領域サイズ11Bとしてセットする(ステップS310)。
【0119】
一方、第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されていない場合(ステップS308にてNOである場合)、CPU100は、第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS312)。CPU100は、第2の矩形領域サイズ11Bが入力されると(ステップS312にてYESである場合)、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、入力された第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については、図9に示した第2矩形領域サイズ決定処理(ステップS200)と同様であるので、ここでは説明を繰り返さない。
【0120】
第2の矩形領域サイズ11Bがセットされると(ステップS310あるいはステップS200が終了すると)、CPU100は、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、セットされた第2の矩形領域サイズ11Bに収まる(適合する)ように、形状データ13に拡大処理または縮小処理を行う(S314)。
【0121】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS316)、文字描画処理を終了する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS316において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0122】
このように、本実施の形態に係るコンピュータ220においては、このように、本実施の形態に係るコンピュータ220においては、左右対称性あるいは上下対称性を有した文字を、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0123】
[実施の形態3]
次に、本発明の実施の形態3について説明する。上述の実施の形態1に係るコンピュータ220は、文字全体に対する第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、文字全体が表示される第2の矩形領域サイズ11B(レター枠のサイズ)を更新するものであった。一方、本実施の形態に係るコンピュータ220cにおいては、文字を構成する対称オブジェクトに対する第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、当該対称オブジェクトの第2の矩形領域サイズ11Bを更新する。
【0124】
なお、実施の形態3におけるコンピュータ220cおよびコンピュータシステムのハードウェア構成は、図1に示した実施の形態1におけるコンピュータ220cおよびコンピュータシステム200と同じであるため、ここでは説明を繰り返さない。
【0125】
<機能構成>
図13は、本実施の形態にかかるコンピュータ(文字描画装置)220cの機能構成を示すブロック図である。本実施の形態に係るコンピュータ220cにおいても、図13に示される各部は、CPU100がハードディスク212やRAM209に記憶されるプログラムを実行することによって実現される機能である。ただし、図13に示される1または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【0126】
なお、図2に示した実施の形態1におけるコンピュータ220と同じ機能ブロックについては、ここでは説明を繰り返さない。
【0127】
図13を参照して、本実施の形態にかかるコンピュータ220cは、文字コード受付部101、サイズ受付部102c、線幅受付部103、取得部104c、拡縮部106、出力部107、対称部位抽出部109、および形状データ記憶部212−1を備えている。なお、文字コード受付部101、サイズ受付部102c、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0128】
まず、対称部位抽出部109は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出す。そして、対称部位抽出部109は、形状データ13から文字を構成するストローク群を抽出し、それらのストローク群のうち左右対称性あるいは上下対称性を有するストローク群からなる対称オブジェクト(対称部位)を検出する。
【0129】
なお、対称性を見つける方法は限定しない。対称部位抽出部109が動的に検出するものであっても構わないし、図3に示したように、形状データ13が対称性を示す付加情報を予め保持していてもよい。
【0130】
あるいは、対称部位抽出部109は、各ストローク群について、上下方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が左右対称性を持つと判断してもよい。また、上下対称のストローク群を抽出する場合には、対称部位抽出部109は、各ストローク群について、左右方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が上下対称性を持つと判断してもよい。例えば、対称部位抽出部109は、「山」という漢字は、上下方向のストロークの本数が3本であり奇数であるため、左右対称性を持つと判断する。また、対称部位抽出部109は、「三」という漢字で、左右方向のストロークの本数が3本であり奇数であるため、上下対称性を持つと判断する。
【0131】
あるいは、ハードディスク212が、予め対称性を持つストローク群のパターン(対称性パターン)を格納してもよい。対称部位抽出部109は、文字コード10から呼び出された形状データ13を、ハードディスク212やRAM209に格納された対称性パターンと比較して、文字がそのパターンを有するか、ストローク群がそのパターンに一致するか否かを判断してもよい。より詳細には、対称部位抽出部109は、パターンマッチングに基づいて、類似度(近接度)が予め設定された所定値以上である場合に、ストローク群がその対称性パターンに一致したものと判断する。
【0132】
例えば、ハードディスク212が「山」という対称性パターンを予め保持しておき、呼び出された形状データ13内に「山」という対称性パターンがあるかどうかを判定する。「山」という漢字の形状データ13が呼び出された場合には、文字全体を含むストローク群が対称性パターンに一致する。「嶋」や「島」という漢字の形状データ13が呼び出された場合には、文字を構成するストローク群が対称性パターンに一致する。
【0133】
そして、左右対称性パターンとして「山」と「甲」が登録されていれば、対称部位抽出部109は、例えば、「岬」という漢字の形状データ13を読み出した場合に、「山」というストローク群と「甲」というストローク群の両方が左右対称性パターンに一致すると判断し、2つの対称オブジェクトを抽出する。
【0134】
サイズ受付部102cは、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、対称オブジェクトに対する第1および第2の矩形領域サイズ11A,11Bの入力を受け付ける。あるいは、サイズ受付部102cは、他のプログラム(アプリケーション)から提供される対称オブジェクトに対する第1および第2の矩形領域サイズ11A,11Bを受け付ける。
【0135】
本実施の形態に係る取得部104cは、線幅受付部103を介して入力された線幅12と、サイズ受付部102cを介して入力された第1および第2の矩形領域サイズ11A,11Bとに基づいて、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。すなわち、本実施の形態に係る取得部104cは、線幅受付部103を介して入力された線幅12と、サイズ受付部102cを介して入力された第1の矩形領域サイズ11Aとに基づいて、サイズ受付部102cを介して入力された第2の矩形領域サイズ11Bを修正する。
【0136】
拡縮部106は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出し、最終的な第2の矩形領域の大きさに収まるように当該形状データ13の拡大処理または縮小処理を行う。例えば、第2の矩形領域サイズが23ドットである場合、左右方向の大きさが23ドットの第2の矩形領域に収まるように文字の大きさを調整する。
【0137】
出力部107は、拡縮部106で処理された形状データ13をモニタインターフェイス213を介してモニタ203に出力する。あるいは、出力部107は、拡縮部106で処理された形状データ13を通信インターフェイス216を介してもネットワークへと出力する。なお、コンピュータ220自体が描画機能(モニタ)を備えている場合は、拡縮処理された形状データに従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【0138】
(本実施の形態に係るコンピュータ220cの動作概要1)
(線幅が2ドットの場合)
ここで、本実施の形態に係る取得部104cの動作概要について詳述する。以下では、左右対称性を持つ対称オブジェクトを含む文字の文字コード10が入力された場合において、モニタ203などに当該対称オブジェクトを含む文字を描画する(表示する)際の動作概要について説明する。
【0139】
本実施の形態においても、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「仲」という文字の文字コード「0x9287」が、文字コード受付部101を介して入力されるものとする。そして、サイズ受付部102cは、文字全体のボディサイズとして20ドットという情報を、レターサイズとして18ドットという情報、線幅として2ドットという情報を受け付ける。あるいは、文字全体のボディサイズとして20ドットという情報が、レターサイズとして18ドットという情報が予め設定されている。
【0140】
対称部位抽出部109は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、呼び出した形状データ13を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字を構成する形状データ13には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部109は「中」という対称オブジェクトを抽出する。
【0141】
サイズ受付部102cは、対称オブジェクトに対する第1の矩形領域サイズ11A(ボディサイズ)として左右方向に13ドットおよび上下方向に18ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として左右方向に13ドットおよび上下方向に18ドットという情報が、サイズ受付部102cを介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0142】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x9287という情報を受け付けて、対称部位抽出部109に受け渡す。対称部位抽出部109は形状データ13と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部104cに受け渡す。サイズ受付部102cは第1の矩形領域サイズ11Aとして左右方向13ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104cに受け渡す。サイズ受付部102cは第2の矩形領域サイズ11Bとして左右方向13ドット、上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。
【0143】
そして、取得部104cは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が2ドット(偶数)であるため、取得部104cは第2の矩形領域サイズ11Bの左右方向のドット数が偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bの左右方向の大きさが13ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104cは第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104cは、第2の矩形領域サイズ11Bの左右方向の大きさを12ドットにセットし直す。
【0144】
図14は、線幅が2ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図14(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図14(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0145】
図14(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104cが第2の矩形領域サイズ11Bの左右方向の大きさを12ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向13ドット分および上下方向に18ドット分の画素を確保する。そして、取得部104cは、「中」という対称オブジェクトが表示される(占有する)レター枠として、左右方向に12ドット分および上下方向に18ドット分の画素を確保する。
【0146】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、「仲」という文字全体がレター枠(18ドット)に収まるように、そして「中」という対称オブジェクトがレター枠(左右方向に12ドット、上下方向に18ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0147】
そして、図14(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが12ドット(偶数)のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【0148】
(線幅が1ドットの場合)
次に、線幅として1ドットいう情報が、線幅受付部103に入力された場合について説明する。
【0149】
対称部位抽出部109は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、呼び出した形状データ13を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部109は「中」という対称オブジェクトを抽出する。
【0150】
サイズ受付部102cは、対称オブジェクトに対する第1の矩形領域サイズ11A(ボディサイズ)として左右方向に12ドットおよび上下方向に18ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として左右方向に12ドットおよび上下方向に18ドットという情報が、サイズ受付部102cを介して入力されるものとする。また、線幅として1ドットという情報が、線幅受付部103に入力される。
【0151】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x9287という情報を受け付けて、対称部位抽出部109に受け渡す。対称部位抽出部109は形状データ13と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部104cに受け渡す。サイズ受付部102cは第1の矩形領域サイズ11Aとして左右方向に12ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。線幅受付部103は線幅として1ドットという情報を受け付けて、取得部104cに受け渡す。サイズ受付部102cは第2の矩形領域サイズ11Bとして左右方向に12ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。
【0152】
そして、取得部104cは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が1ドット(奇数)であるため、取得部104cは第2の矩形領域サイズ11Bの左右方向のドット数が奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bの左右方向の大きさが12ドットであり、すなわち第2の矩形領域サイズ11Bが偶数であるため、取得部104cは第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104cは、第2の矩形領域サイズ11Bの左右方向の大きさを11ドットにセットし直す。
【0153】
図15は、線幅が1ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図15(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図15(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0154】
図15(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104cが第2の矩形領域サイズ11Bの左右方向の大きさを11ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向に12ドット分および上下方向に18ドット分の画素を確保する。そして、取得部104cは、「中」という対称オブジェクトが表示される(占有する)レター枠として、左右方向に11ドット分および上下方向に18ドット分の画素を確保する。
【0155】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、「仲」という文字全体がレター枠(18ドット)に収まるように、そして「中」という対称オブジェクトがレター枠(左右方向に11ドット、上下方向に18ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0156】
そして、図15(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が1ドット(奇数)の場合に、第2の矩形領域サイズ11Bが11ドット(奇数)のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【0157】
なお、ここでは、旁の部分に対称性を持つストローク群からなる対称オブジェクトが存在するような例を示したが、このような機能に限定されない。例えば、「峠」のように、偏の部分に対称性を持つストローク群からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。さらに、「岸」のように冠の部分に対称性を持つストローク群からなるオブジェクトや、「島」などのようにある部分に対称性を持つストローク群、ここでは「山」というストローク群、からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。
【0158】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220cにおける文字描画処理の処理手順について説明する。図16は、本実施の形態にかかるコンピュータ220cにおける文字描画処理の処理手順を示すフローチャートである。
【0159】
図16を参照して、コンピュータ220の電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS402)。CPU100は、文字コード10が入力されると(ステップS402にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データ13を読み出して、対応する文字に対称オブジェクトが含まれるか否かを判断する(ステップS404)。あるいは、CPU100は、対応する文字から対称オブジェクトを抽出する。対応する文字に対称オブジェクトが含まれない場合(ステップS404にてNOである場合)、CPU100は、形状データ13に基づいてモニタ203に文字を描画させる。
【0160】
対応する文字に対称オブジェクトが含まれる場合(ステップS404にてYESである場合)、CPU100は、対称オブジェクトに対する第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS406)。CPU100は、対称オブジェクトに対する第一の矩形領域サイズ11Aが入力されると(ステップS406にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。
【0161】
同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS408)。CPU100は、線幅12が入力されると(ステップS408にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0162】
CPU100は、対称オブジェクトに対する第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS410)。CPU100は、対称オブジェクトに対する第2の矩形領域サイズ11Bが入力されると、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、対称オブジェクトに対する第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については図9に示した第2矩形領域サイズ決定処理(ステップS200)と同様であるので、ここでは説明を繰り返さない。
【0163】
CPU100は、第2矩形領域サイズ決定処理(ステップS200)が終了すると、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、第2矩形領域サイズ決定処理(ステップS200)にて修正された後の第2の矩形領域サイズ11Bに適合するように、形状データ13に拡大処理または縮小処理を行う(ステップS412)。
【0164】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS414)、文字描画処理を終了する。なお、CPU100は、ステップS414において、形状データのうち、対称性を持たないストローク群からなるオブジェクトも同時に描画するものとし、一つの文字、すなわち入力された文字コード10に対する文字を描画する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS412において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0165】
このように、本実施の形態に係るコンピュータ220においては、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0166】
なお、上記の実施の形態1〜3に係る文字描画装置の有する機能同士を組み合わせることも可能である。より詳細には、たとえば、実施の形態2に係るコンピュータ220bに、実施の形態3に係るコンピュータ220cの対称部位抽出部109を追加することが可能である。逆に、実施の形態3に係るコンピュータ220cに、実施の形態2に係るコンピュータ220bの矩形情報記憶部212−2を追加することなども可能である。
【0167】
上記開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内においてのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0168】
【図1】本実施の形態に係るコンピュータシステムを示す概略図である。
【図2】実施の形態1に係る文字描画装置の機能構成を示す機能ブロック図である。
【図3】形状データ記憶部が記憶する形状データの例を示すイメージ図である。
【図4】線幅が2ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図5】線幅が3ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図6】線幅が2ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図7】線幅が1ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図8】実施の形態1にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図9】実施の形態1にかかる文字描画装置における第2の矩形領域サイズ決定処理の処理手順を示すフローチャートである。
【図10】実施の形態2にかかる文字描画装置の機能構成を示すブロック図である。
【図11】矩形情報記憶部に格納される矩形データを示すイメージ図である。
【図12】実施の形態2にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図13】実施の形態3にかかる文字描画装置の機能構成を示すブロック図である。
【図14】線幅が2ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図15】線幅が1ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図16】実施の形態3にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【符号の説明】
【0169】
10 文字コード、11A 第1の矩形領域サイズ、11B 第2の矩形領域サイズ、13,13A,13B,13C 形状データ、100 CPU、101 文字コード受付部、102,102b,102c サイズ受付部、103 線幅受付部、104,104b,104c 取得部、106 拡縮部、107 出力部、109 対称部位抽出部、110 受付部、200 文字描画システム(コンピュータシステム)、201 光ディスクドライブ、202 磁気ディスクドライブ、203 モニタ、204 リモコン、207 バス、210 光ディスク、211 磁気ディスク、212 ハードディスク、212−1 形状データ記憶部、212−2 矩形情報記憶部、213 モニタインターフェイス、216 通信インターフェイス、220,220b,220c 文字描画装置(コンピュータ)。
【技術分野】
【0001】
本発明は、マトリクス状に配列された複数の画素からなる表示デバイスに文字を表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関し、特に、文字の対称性を保持しながら文字を表示デバイスに表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関する。
【背景技術】
【0002】
近年、テレビジョン放送のデジタル化に伴い、ユーザが電子番組表(EPG:Electronic Program Guide)などのテキストデータを利用する頻度が高くなっている。そのため、文字描画装置には、見やすく読み易いテキストデータを描画することが望まれる。
【0003】
ここで、見やすく読み易いテキストデータを描画する際に着目する点の一つとして、対称性の保持という観点がある。対称性のある文字の対称性が崩れた場合、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。例えば、「山」という文字のように、文字を構成する少なくとも1つストロークに対して左右対称な文字の場合、対称軸となる「山」の真ん中のストロークは当該文字の中央に位置する必要がある。しかしながら、「山」の真ん中のストロークが文字の中心に位置しない場合、すなわち「山」の両端のストロークのうちの一方のストロークが中央側に移動する場合、もしくは外側に移動するような場合、「山」という文字の左右対称性が崩れてしまい、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。
【0004】
そこで、特開平6−274151号公報(特許文献1)には、アウトラインフォントの対称性を保持しながら変倍して文字を描画するヒンティング処理方法が開示されている。特開平6−274151号公報(特許文献1)によると、ヒンティング処理方法においては、制御点情報入力部からアウトラインデータに対して、制御点を与える。展開部は、制御点をピクセル中心またはピクセル境界に移動する。この移動量に合わせてアウトラインフォントの輪郭点を移動することにより、対称性の保持されたビットマップデータを生成する。
【特許文献1】特開平6−274151号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特開平6−274151号公報(特許文献1)に示されるように、従来は、アウトラインデータに対してある制御点を与え、当該アウトラインデータを変倍した後に当該制御点をピクセル中心またはピクセル境界に移動し、この移動量に合わせてアウトラインフォントを構成する全ての輪郭点を移動させることにより、対称性の保持された文字を描画していた。なお、ピクセルは、格子点を左下隅とする単位正方形であるものとし、ピクセルの中心座標は(m+0.5,n+0.5)と表される。そして、m,nは整数である。
【0006】
しかしながら、従来技術においては、アウトラインデータを変倍した後、変倍後の制御点の移動量に応じて、全ての輪郭線の構成する輪郭点を移動させる必要があり、対称文字の描画が完了するまでに多くのステップを要してしまう。
【0007】
本発明は上記問題点に鑑みてなされたものであり、本発明の主たる目的は、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
この発明のある局面に従えば、表示デバイスに文字を表示させる文字描画装置が提供される。文字描画装置は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段と、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付ける受付手段と、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得する取得手段と、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段と、拡縮処理された形状データを出力する出力手段とを備える。
【0009】
好ましくは、第1の矩形領域はボディ領域である。第1の矩形領域の大きさはボディサイズである。第2の矩形領域はレター領域である。第2の矩形領域の大きさはレターサイズである。
【0010】
好ましくは、文字描画装置は、形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備える。取得手段は、第2の矩形領域の大きさとして、対称部位が表示される第2の矩形領域の、対称軸に直角な方向の長さを取得する。
【0011】
好ましくは、表示デバイスは、マトリクス状に配列された複数の画素から構成される。取得手段は、第1の矩形領域の一辺の画素数を取得し、線幅を示す画素数が奇数である場合に、第2の矩形領域の大きさとして、一辺の画素の数よりも少ない奇数の画素数を取得し、線幅を示す画素数が偶数である場合に、第2の矩形領域の大きさとして、一辺の画素の数よりも少ない偶数の画素数を取得する。
【0012】
好ましくは、文字描画装置は、第2の矩形領域の大きさを、第1の矩形領域の大きさと線幅とに対応付けて記憶する第2の記憶手段をさらに備える。取得手段は、第1の矩形領域の大きさと線幅とに基づいて、第2の記憶手段から対応する第2の矩形領域の大きさを読み出す。
【0013】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画方法が提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備える。文字描画方法は、演算処理部が、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付けるステップと、演算処理部が、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得するステップと、演算処理部が、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを備える。
【0014】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムが提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備える。文字描画プログラムは、文字コードと、文字に割り当てられた第1の矩形領域の大きさと、文字の線幅とを受け付けるステップと、第1の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第2の矩形領域の大きさを取得するステップと、文字コードに基づいて第1の記憶手段から形状データを読み出して、対応する文字が第2の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを演算処理部に実行させる。
【0015】
この発明の別の局面に従うと、上記の文字描画プログラムを記録したコンピュータ読取可能な記録媒体が提供される。
【発明の効果】
【0016】
以上のように、この発明によれば、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体が提供される。
【発明を実施するための最良の形態】
【0017】
以下、図面に基づいて本発明の実施の形態について説明する。なお以下の説明では、同一の部品については同一の符号を付すものとし、その部品の名称や機能が同一である場合には、その部品についての詳細な説明は繰り返さない。
【0018】
(コンピュータシステム200の全体構成)
まず、文字描画システムの一例として、本実施の形態に係るコンピュータシステム200の全体構成について説明する。図1は、本実施の形態に係るコンピュータシステム200を示す概略図である。本実施の形態に係る文字描画システム(コンピュータシステム200)や文字描画装置(コンピュータ220)は、実質的には、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。
【0019】
このコンピュータシステム200は、光ディスクドライブ201および磁気ディスクドライブ202を有するコンピュータ220と、モニタ203と、リモートコントローラ(以下、「リモコン」と呼ぶ)204とを含む。すなわち、本実施の形態においては、文字描画装置の一例として、コンピュータ220を用いて説明する。
【0020】
コンピュータ220は、光ディスクドライブ201および磁気ディスクドライブ202に加えて、コンピュータ220の各部を制御するCPU(Central Processing Unit;中央処理装置)100と、リモコン204からの信号を受信するリモコンインターフェイス(I/F)205と、ブートアッププログラム等を記憶するROM(Read-Only Memory;読出専用メモリ)208と、プログラム命令やシステムプログラムや作業データなどを一時的に記憶するRAM(Random Access Memory)209と、制御プログラムや各種データベースを不揮発に記憶するハードディスク212と、モニタ203に形状データや画像データなどを送信するモニタインターフェイス213と、それらを相互に接続するバス207とを含む。
【0021】
なお、コンピュータ220は、さらにLAN(Local Area Network)への接続を提供するネットワークアダプタボード(通信インターフェイス216)を含んでいてもよい。
【0022】
コンピュータシステム200に文字描画システムの機能を実現させるためのプログラム、文字コード10(図2参照)、第1および第2の矩形領域サイズ11A,11B、線幅12、形状データ13などは、光ディスクドライブ201に挿入される光ディスク210、磁気ディスクドライブ202に挿入される磁気ディスク211に記憶されて流通され、ハードディスク212へと転送される。あるいは、プログラム、文字コード10(図2参照)、第1および第2の矩形領域サイズ11A,11B、線幅12、形状データ13は、図示しないネットワークから通信インターフェイス216を介してコンピュータ220に送信され、ハードディスク212に記憶される。
【0023】
CPU100は、ハードディスク212からプログラムを読み出すことによって、当該プログラムをRAM209にロードする。あるいは、CPU100は、光ディスク210から光ディスクドライブ201を介して、磁気ディスク211から磁気ディスクドライブ202を介して、ネットワークから通信インターフェイス216を介してプログラムを取得し、当該プログラムをRAM209にロードしてもよい。
【0024】
このプログラムは、コンピュータ220に文字描画装置としての機能を実現させる複数の命令を含む。これら機能を実現するために必要な基本的機能のいくつかはコンピュータ220上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、若しくはコンピュータ220にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムは、本実施の形態に係るコンピュータ220の機能を実現するのに必要な機能全てを必ずしも含まなくてよい。
【0025】
また、このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記したコンピュータ220の制御を実行する命令のみを含んでいればよい。コンピュータシステム200の動作は周知であるので、ここでは繰り返さない。
【0026】
なお、文字描画装置としての機能を実現するためのプログラム、文字コード10(図2参照)、第1の矩形領域サイズ11A、線幅12、形状データ13などが記録される記録媒体は、CD−ROM(Compact Disc Read-Only Memory)、MO(Magneto-Optical disc)、MD(Mini Disc)、及びDVD(Digital Versatile Disc)等の光ディスク210、FD(フレキシブルディスク)、ハードディスク等の磁気ディスクに限らない。磁気テープおよびカセットテープ等のテープ、IC(Integrated Circuit)カードおよび光カード等のカード型記録媒体、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、及びフラッシュROM等の半導体メモリのいずれかでもよい。ただし、コンピュータシステム200は、これらの記録媒体からの読出を行うための読出装置を実装する必要がある。
【0027】
<機能構成>
次に、本実施の形態に係るコンピュータ(文字描画装置)220が有する機能構成について説明する。図2は、本実施の形態に係るコンピュータ(文字描画装置)220の機能構成を示す機能ブロック図である。
【0028】
前述したように、図2に示される各部は、CPU100がハードディスク212に記憶されるプログラムを実行することによって実現される機能である。ただし、図2に示される1または複数の機能ブロックが、専用のハードウェア回路によって実現される構成であってもよい。
【0029】
図2に示すように、本実施の形態に係るコンピュータ220は、文字コード受付部101、サイズ受付部102、線幅受付部103、取得部104、拡縮部106、出力部107、および形状データ記憶部212−1を備えている。なお、文字コード受付部101、サイズ受付部102、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0030】
まずは、コンピュータ220の各機能ブロックに入出力されるデータについて説明する。文字コード10は、描画する文字を識別するために一意に振られた番号である。
【0031】
第1の矩形領域サイズ11Aは、文字コード10で示された文字を描画する際における、当該文字に割り当てられた領域の大きさを表す。本実施の形態においては、第1の矩形領域を文字のボディ枠とし、第1の矩形領域サイズ11Aを文字のボディサイズとする。たとえば、文字のボディ枠が左右方向および上下方向に20ドット(画素)を有する場合、第1の矩形領域サイズ11Aには第1の矩形領域の大きさとして20ドットがセットされる。
【0032】
また、第2の矩形領域サイズ11Bは、文字コード10で示された文字を描画する際における、当該文字が実際に描画される領域の大きさを表す。本実施の形態においては、第2の矩形領域を文字のレター枠とし、第2の矩形領域サイズ11Bを文字のレターサイズとする。たとえば、文字のレター枠が左右方向および上下方向に19ドットを有する場合、第2の矩形領域サイズ11Bには第2の矩形領域の大きさとして19ドットがセットされる。
【0033】
すなわち、第2の矩形領域は第1の矩形領域よりも小さい画素領域であって、第2の矩形領域サイズ11Bは、第1の矩形領域サイズ11Aよりも小さい。
【0034】
なお、第1および第2の矩形領域の形状は必ずしも正方形であるとは限らず、長方形であっても構わない。第1および第2の矩形領域が長方形である場合、矩形領域サイズ11として、例えば左右方向(水平方向あるいは横方向)の大きさ(ドット数)と上下方向(垂直方向あるいは縦方向)の大きさ(ドット数)で表される情報がセットされる。
【0035】
線幅12は、文字コード10で示された形状データ13を描画する際における、各ストロークの線幅(太さ)を指す。例えば、1ドットの線幅にて文字を描画する場合には、線幅は1ドットとなり、2ドット線幅で文字を描画する場合には線幅は2ドットとなる。
【0036】
形状データ13は、文字を構成するデータを表す。なお、形状データ13の形式にはこだわらない。例えば、形状データ13は、アウトラインフォントのように、輪郭線を構成する点列データおよび制御点データからなる輪郭線情報を示すものであっても構わないし、文字のストロークを表す骨格データを示すものであっても構わない。
【0037】
ここで、形状データ記憶部212−1について説明する。形状データ記憶部212−1は、各種記録媒体やネットワークなどを介して提供される形状データ13を蓄積し、当該形状データ13を管理する。形状データ記憶部212−1は、ハードディスク212に格納されるデータベースや、文字コード10に対応する形状データ13を記憶するためにRAM209に一時的に確保されるメモリ領域などによって実現される。
【0038】
図3は、形状データ記憶部212−1が記憶する形状データ13の例を示すイメージ図である。より詳細には、図3(a)は、形状データ記憶部212−1が「山」を示す文字コードに対応付けて格納している形状データ13Aである。図3(b)は、形状データ記憶部212−1が「三」を示す文字コードに対応付けて格納している形状データ13Bである。図3(c)は、形状データ記憶部212−1が「仲」を示す文字コードに対応付けて格納している形状データ13Cである。
【0039】
なお、図3(a)(b)(c)に示される各ストロークの端点1および端点2は、1024ドット×1024ドットの画素領域における座標で表されている。
【0040】
図3(a)に示すように、形状データ記憶部212−1は、「山」という漢字の骨格データを形状データ13Aとして格納する。ストローク識別子は各文字内で一意に振られ、端点1および端点2を両端点とするストロークデータを示す。なお、端点1および端点2の位置は、ボディサイズを1024×1024ドットの大きさとした場合の座標で示している。
【0041】
オブジェクト識別子は、各ストロークが属するオブジェクト(部位)を示すものであって、同じオブジェクトに属するストロークには同じオブジェクト識別子が割り当てられる。ここで、オブジェクトとは、文字を構成する「偏」や「冠」などの部首や、部首以外のストロークの集合(ストローク群)などをいう。本実施の形態に係る形状データ記憶部212−1は、各文字の各ストロークをオブジェクト識別子に対応付けて記憶する。
【0042】
対称性フラグは、当該文字あるいは当該文字に含まれるオブジェクトが対称性を有しているか否かを示すものである。すなわち、対称性フラグが「1」の文字あるいはオブジェクトは左右対称性を有し、対称性フラグが「2」の文字あるいはオブジェクトは上下対称性を有し、対称性フラグが「3」の文字あるいはオブジェクトは左右対称性と上下対称性と有し、対称性フラグが「0」の文字あるいはオブジェクトは対称性を有しない。
【0043】
なお、対称性を有している文字は、完全な線対称性を有している必要はない。実施の形態3において詳述するが、たとえば、文字(オブジェクト)の右側と左側との類似度(あるいは上側と下側との類似度)が所定の閾値以上であれば、当該文字を左右対称(上下対称)であるものとして取り扱うことが好ましい。
【0044】
すなわち、各文字において、同一のオブジェクト識別子を有するストロークは、同一の識別子を有する。ただし、「山」や「三」などのように、1種類のオブジェクト識別子だけを含む文字も存在する。換言すれば、そのような文字については、取得部104(CPU100)が、文字全体を1つのオブジェクトとして取り扱うことができる。
【0045】
例えば、「山」は4つのストロークからなる。4つのストロークとも、全て同じオブジェクト「1」に属している。また、「山」という文字が左右対称性を持っていることが分かる。これによって、取得部104は、形状データ13Aを参照して、「山」という文字(オブジェクト)はオブジェクト識別子が全て「1」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部104は、「山」という文字(オブジェクト)の対称性フラグが「1」であるので、「山」という文字(オブジェクト)が左右対称性を有することを認識することができる。
【0046】
図3(b)に示すように、形状データ記憶部212−1は、「三」という漢字の骨格データを形状データ13Bとして格納する。取得部104は、形状データ13Bを参照して、「三」という文字(オブジェクト)はオブジェクト識別子が全て「1」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部104は、「三」という文字(オブジェクト)の対称性フラグが「2」であるので、「三」という文字(オブジェクト)が上下対称性を有することを認識することができる。
【0047】
図3(c)に示すように、形状データ記憶部212−1は、「仲」という漢字の骨格データを形状データ13Cとして格納する。取得部104は、形状データ13Cを参照して、「仲」という文字が、8つのストロークから構成され、ストローク識別子が1〜3のストローク群(人偏)からなるオブジェクトと、4〜8のストローク群(「中」の部分)からなるオブジェクトから構成されていることを認識することができる。また、取得部104は、形状データ13Cを参照して、人偏のオブジェクトの対称性フラグが「0」であるので、人偏が対称性を有しないことを認識することができる。一方、取得部104は、形状データ13Cを参照して、「中」のオブジェクトの対称性フラグが「1」であるので、「中」のオブジェクトが左右対称性を有することを認識することができる。
【0048】
図2に戻って、文字コード受付部101は、例えば無線もしくは有線を介して提供される文字コード10を受信するインターフェイスを備えており、外部から文字コード10の入力を受け付ける。あるいは、文字コード受付部101は、他のプログラム(アプリケーション)から提供される文字コードを受け付ける。
【0049】
サイズ受付部102は、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、第1および第2の矩形領域サイズ11A,11Bの入力を受け付ける。あるいは、サイズ受付部102は、他のプログラム(アプリケーション)から提供される第1および第2の矩形領域サイズ11A,11Bを受け付ける。
【0050】
線幅受付部103は、例えば無線もしくは有線を介して提供される線幅12を受信するインターフェイスを備えており、線幅12の入力を受け付ける。あるいは、線幅受付部103は、他のプログラム(アプリケーション)から提供される線幅12を受け付ける。
【0051】
本実施の形態に係る取得部104は、線幅受付部103を介して入力された線幅12と、サイズ受付部102を介して入力された第1および第2の矩形領域サイズ11A,11Bとに基づいて、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。すなわち、本実施の形態に係る取得部104は、線幅受付部103を介して入力された線幅12と、サイズ受付部102を介して入力された第1の矩形領域サイズ11Aとに基づいて、サイズ受付部102を介して入力された第2の矩形領域サイズ11Bを修正する。
【0052】
拡縮部106は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出し、最終的な第2の矩形領域サイズ11Bに収まるように当該形状データ13の拡大処理または縮小処理を行う。例えば、第2の矩形領域サイズ11Bが23ドットである場合、上下方向および左右方向の大きさが23ドットの第2の矩形領域に収まるように文字の大きさを調整する。
【0053】
出力部107は、拡縮部106で処理された形状データ13をモニタインターフェイス213を介してモニタ203に出力する。あるいは、出力部107は、拡縮部106で処理された形状データ13を通信インターフェイス216を介してもネットワークへと出力する。なお、コンピュータ220自体が描画機能(モニタ)を備えている場合は、拡縮処理された形状データ13に従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【0054】
(本実施の形態に係るコンピュータ220の動作概要1)
(線幅が2ドットの場合)
ここで、本実施の形態に係る取得部104の動作概要について詳述する。以下では、左右対称性を持つ文字の文字コード10が入力された場合に、モニタ203などに左右対称性を持つ文字を描画する(表示する)際の動作概要について説明する。
【0055】
本実施の形態においては、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「山」という文字の文字コード「0x8e52」が、文字コード受付部101を介して入力されるものとする。そして、第1の矩形領域サイズ11A(ボディサイズ)として16ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として15ドットという情報が、サイズ受付部102を介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0056】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e52という情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして16ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして15ドットという情報を受け付けて、取得部104に受け渡す。
【0057】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が2ドットであって、すなわち線幅が偶数であるため、取得部104は第2の矩形領域サイズ11Bが偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが15ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104は、第2の矩形領域サイズ11Bを14ドットにセットし直す。
【0058】
図4は、線幅が2ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図4(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図4(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。図4(c)は、通常の文字描画システムにおける第1の矩形領域と第2の矩形領域と表示される文字画像とを示す第1のイメージ図である。図4(d)は、通常の文字描画システムにおける第1の矩形領域と第2の矩形領域と表示される文字画像とを示す第2のイメージ図である。
【0059】
図4(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを14ドットにセットし直す。たとえば、「山」という文字に割り当てられるボディ枠として、上下方向および左右方向に16ドット分の画素が確保される。そして、取得部104は、「山」という文字が表示される(占有する)レター枠として、上下方向および左右方向に14ドット分の画素を確保する。
【0060】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e52」の形状データ13を呼び出して、文字がレター枠(14ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0061】
なお、拡縮部106による、形状データ13に対する拡大処理または縮小処理は、たとえばベクトルデータに基づいた計算などによって実現される。すなわち、図3(a)を参照して、「山」という文字を16ドット×16ドットの画素領域に描画する際には、拡縮部106は以下の計算に基づいて、各ストロークの端点1および端点2を計算することによって、縮小処理を行う。
ストローク識別子1の端点1:(448×16/1024, 896×16/1024)=(7,14)
ストローク識別子1の端点2:(448×16/1024, 64×16/1024)=(7,1)
ストローク識別子2の端点1:(64×16/1024, 512×16/1024)=(1,8)
ストローク識別子2の端点2:(64×16/1024, 64×16/1024)=(1,1)
ストローク識別子3の端点1:(64×16/1024, 64×16/1024)=(1,1)
ストローク識別子3の端点2:(832×16/1024, 64×16/1024)=(13,1)
ストローク識別子4の端点1:(832×16/1024, 512×16/1024)=(13,8)
ストローク識別子4の端点2:(832×16/1024, 64×16/1024)=(13,1)
そして、図4(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが14ドット(偶数)のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【0062】
一方、通常のコンピュータシステム200は、線幅が2ドット(偶数)の場合であっても、サイズ受付部102が受け付けた第2の矩形領域サイズ11Bである15ドット(奇数)のままで、文字コード(SJISコード)0x8e52に基づいて「山」という文字を描画するので、図4(c)または図4(d)のような文字画像が表示されてしまう。すなわち、図4(c)に示すように「山」の真ん中のストロークが右側に寄ってしまったり、図4(d)に示すように「山」の真ん中のストロークが左側に寄ってしまったりして、文字が左右対称性を崩してしまい、ユーザに違和感を与えてしまう。
【0063】
本実施の形態に係るコンピュータ220は、線幅が偶数の場合に、第2の矩形領域サイズ11Bを偶数に設定し直すため、図4(b)に示すように左右対称性を保持した文字を描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0064】
(線幅が3ドットの場合)
次に、線幅として3ドットという情報が、線幅受付部103に入力された場合について説明する。
【0065】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e52という情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして16ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として3ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして15ドットという情報を受け付けて、取得部104に受け渡す。
【0066】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が3ドットであって、すなわち線幅が奇数であるため、取得部104は第2の矩形領域サイズ11Bが奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが15ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bを変更しない。あるいは、サイズ受付部102にて受け付けられた第2の矩形領域サイズ11Bが16ドットである場合には、取得部104は、第2の矩形領域サイズ11Bを15ドットに設定し直す。
【0067】
図5は、線幅が3ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図5(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図5(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0068】
図5(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを15ドットのまま変更しない。たとえば、「山」という文字に割り当てられる第1の矩形領域(ボディ枠)として、上下方向および左右方向に16ドット分の画素が確保される。そして、取得部104は、「山」という文字が表示される(占有する)第2の矩形領域(レター枠)として、上下方向および左右方向に15ドット分の画素を確保する。
【0069】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e52」の形状データ13を呼び出して、文字が第2の矩形領域(15ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0070】
そして、図5(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が3ドット(奇数)の場合に、第2の矩形領域サイズ11Bが15ドット(奇数)のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【0071】
本実施の形態に係るコンピュータ220は、線幅が奇数の場合に、第2の矩形領域サイズ11Bを奇数に設定し直すため、図5(b)に示すように左右対称性を保持した文字を描画することができる。
【0072】
(本実施の形態に係るコンピュータ220の動作概要1)
(線幅が2ドットの場合)
次に、本実施の形態に係る取得部104の動作概要について、上下対称性を持つ文字の文字コード10が入力された場合に、モニタ203などに上下対称性を持つ文字を描画する(表示する)際の動作概要について説明する。
【0073】
本実施の形態においても、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「三」という文字の文字コード「0x8e4f」が、文字コード受付部101を介して入力されるものとする。そして、第1の矩形領域サイズ11A(ボディサイズ)として12ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として11ドットという情報が、サイズ受付部102を介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0074】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e4fという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして12ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして11ドットという情報を受け付けて、取得部104に受け渡す。
【0075】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が2ドットであって、すなわち線幅が偶数であるため、取得部104は第2の矩形領域サイズ11Bが偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが11ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104は、第2の矩形領域サイズ11Bを10ドットにセットし直す。
【0076】
図6は、線幅が2ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図6(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図6(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0077】
図6(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを10ドットにセットし直す。たとえば、「三」という文字に割り当てられるボディ枠として、上下方向および左右方向に12ドット分の画素が確保される。そして、取得部104は、「三」という文字が表示される(占有する)レター枠として、上下方向および左右方向に10ドット分の画素を確保する。
【0078】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e4f」の形状データ13を呼び出して、文字がレター枠(10ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0079】
そして、図6(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが10ドット(偶数)のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【0080】
(線幅が1ドットの場合)
次に、線幅として1ドットという情報が、線幅受付部103に入力された場合について説明する。
【0081】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x8e4fという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第1の矩形領域サイズ11Aとして12ドットという情報を受け付けて、取得部104に受け渡す。線幅受付部103は線幅として1ドットという情報を受け付けて、取得部104に受け渡す。サイズ受付部102は第2の矩形領域サイズ11Bとして11ドットという情報を受け付けて、取得部104に受け渡す。
【0082】
そして、取得部104は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が1ドットであって、すなわち線幅が奇数であるため、取得部104は第2の矩形領域サイズ11Bが奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bが11ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104は第2の矩形領域サイズ11Bを変更しない。あるいは、サイズ受付部102にて受け付けられた第2の矩形領域サイズ11Bが12ドットである場合には、取得部104は、第2の矩形領域サイズ11Bを11ドットに設定し直す。
【0083】
図7は、線幅が1ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図7(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図7(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0084】
図7(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104が第2の矩形領域サイズ11Bを11ドットのまま変更しない。たとえば、「三」という文字に割り当てられる第1の矩形領域(ボディ枠)として、上下方向および左右方向に12ドット分の画素が確保される。そして、取得部104は、「三」という文字が表示される(占有する)第2の矩形領域(レター枠)として、上下方向および左右方向に11ドット分の画素を確保する。
【0085】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x8e4f」の形状データ13を呼び出して、文字が第2の矩形領域(11ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0086】
そして、図7(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が1ドット(奇数)の場合に、第2の矩形領域サイズ11Bが11ドット(奇数)のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【0087】
なお、「田」のように、左右方向に対しても対称性を持ち、かつ上下方向に対しても対称性を持つような文字に対しても上記と同様の機能を適用することができる。
【0088】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220における文字描画処理の処理手順について説明する。図8は、本実施の形態にかかるコンピュータ220における文字描画処理の処理手順を示すフローチャートである。
【0089】
図8を参照して、コンピュータ220の電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS102)。CPU100は、文字コード10が入力されると(ステップS102にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データ13を読み出す。
【0090】
次に、CPU100は、第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS104)。CPU100は、第一の矩形領域サイズ11Aが入力されると(ステップS104にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS106)。CPU100は、線幅12が入力されると(ステップS106にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0091】
CPU100は、第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS108)。CPU100は、第2の矩形領域サイズ11Bが入力されると、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については後述する。
【0092】
CPU100は、第2矩形領域サイズ決定処理(ステップS200)が終了すると、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、第2矩形領域サイズ決定処理(ステップS200)にて修正された後の第2の矩形領域サイズ11Bに適合するように、形状データ13に拡大処理または縮小処理を行う(ステップS110)。
【0093】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS112)、文字描画処理を終了する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS112において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0094】
<第2の矩形領域サイズ決定処理>
次に、本実施の形態にかかるコンピュータ220における第2の矩形領域サイズ決定処理(ステップS200)の処理手順について説明する。図9は、本実施の形態にかかるコンピュータ220における第2の矩形領域サイズ決定処理(ステップS200)の処理手順を示すフローチャートである。
【0095】
図9を参照して、第2の矩形領域サイズ決定処理(ステップS200)が開始されると、CPU100は、入力された線幅12が偶数であるか否かを判断する(ステップS202)。CPU100は、線幅が偶数である場合(ステップS202にてYESである場合)、入力された第2の矩形領域サイズ11Bが偶数であるか否かを判断する(ステップS204)。
【0096】
CPU100は、第2の矩形領域サイズ11Bが奇数である場合(ステップS204にてNOである場合)、第2の矩形領域サイズ11Bを現在の第2の矩形領域サイズ11B(ステップS108にて入力された時点の第2の矩形領域サイズ11B)から1だけ小さい値にセットし直して、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0097】
本実施の形態においては、ステップS206に示すように、最終的な第2の矩形領域サイズ11Bが、ステップS108にて入力された第2の矩形領域サイズ11Bより1だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第2の矩形領域サイズ11Bが第1の矩形領域サイズ11Aを超えない範囲の偶数の値であれば構わない。ゆえに、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の偶数値とするものであっても構わない。
【0098】
一方、CPU100は、第2の矩形領域サイズ11Bが偶数である場合(ステップS204にてYESである場合)、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0099】
本実施の形態においては、ステップS204において、第2の矩形領域サイズ11Bが偶数であれば処理を終了したが、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の偶数値として設定し直すものであっても構わない。
【0100】
そして、ステップS202において、CPU100は、線幅が奇数である場合(ステップS202にてNOである場合)、入力された第2の矩形領域サイズ11Bが偶数であるか否かを判断する(ステップS208)。CPU100は、第2の矩形領域サイズ11Bが奇数である場合(ステップS208にてNOである場合)、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0101】
本実施の形態においては、ステップS208において、第2の矩形領域サイズ11Bが奇数であれば処理を終了したが、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の奇数値として設定し直すものであっても構わない。
【0102】
一方、ステップS208において、CPU100は、第2の矩形領域サイズ11Bが偶数である場合(ステップS208にてYESである場合)、第2の矩形領域サイズ11Bを現在の第2の矩形領域サイズ11B(ステップS108にて入力された時点の第2の矩形領域サイズ11B)から1だけ小さい値にセットし直して、第2の矩形領域サイズ決定処理(ステップS200)を終了する。
【0103】
本実施の形態においては、ステップS210に示すように、最終的な第2の矩形領域サイズ11Bが、ステップS108にて入力された第2の矩形領域サイズ11Bより1だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第2の矩形領域サイズ11Bが第1の矩形領域サイズ11Aを超えない範囲の奇数の値であれば構わない。ゆえに、第2の矩形領域サイズ11Bを第1の矩形領域サイズ11Aを超えない範囲での最大の奇数値とするものであっても構わない。
【0104】
このように、本実施の形態に係るコンピュータ220においては、線幅12と第2の矩形領域サイズ11Bとを整合させるための処理を行うため、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0105】
[実施の形態2]
次に、本発明の実施の形態2について説明する。上述の実施の形態1に係るコンピュータ220は、受付部110が受け付けた第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、文字が表示される第2の矩形領域サイズ11B(レター枠のサイズ)を更新するものであった。一方、本実施の形態に係るコンピュータ220bにおいては、受付部110が受け付けた第1の矩形領域サイズ11Aと線幅12とに応じて、第2の矩形領域サイズ11Bを設定する。
【0106】
なお、実施の形態2におけるコンピュータ220bやコンピュータシステムのハードウェア構成は、図1に示した実施の形態1におけるコンピュータ220やコンピュータシステム200と同じであるため、ここでは説明を繰り返さない。
【0107】
<機能構成>
図10は、本実施の形態にかかるコンピュータ(文字描画装置)220bの機能構成を示すブロック図である。本実施の形態に係るコンピュータ220bにおいても、図10に示される各部は、CPU100がハードディスク212やRAM209に記憶されるプログラムを実行することによって実現される機能である。ただし、図10に示される1または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【0108】
なお、図2に示した実施の形態1におけるコンピュータ220と同じ機能ブロックについては、ここでは説明を繰り返さない。
【0109】
図10を参照して、本実施の形態にかかるコンピュータ220bは、文字コード受付部101、サイズ受付部102b、線幅受付部103、取得部104b、拡縮部106、出力部107、形状データ記憶部212−1、および矩形情報記憶部212−2を備えている。なお、文字コード受付部101、サイズ受付部102b、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0110】
まずは、矩形情報記憶部212−2について説明する。図11は、矩形情報記憶部212−2に格納される矩形データ212Aを示すイメージ図である。図11に示すように、矩形情報記憶部212−2は、第2の矩形領域サイズ11Bを、線幅12と第1の矩形領域サイズ11Aとに対応付けて格納する矩形データ212Aを記憶する。これにより、取得部104bは、矩形情報記憶部212−2を参照して、第1の矩形領域サイズ11Aと線幅12とに基づいて、第2の矩形領域サイズ11Bを取得することができる。
【0111】
図10に戻って、サイズ受付部102bは、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、第1の矩形領域サイズ11Aの入力を受け付ける。あるいは、サイズ受付部102bは、他のプログラム(アプリケーション)から提供される第1の矩形領域サイズ11Aを受け付ける。
【0112】
ただし、本実施の形態に係るサイズ受付部102bは、第2の矩形領域サイズ11Bを受け付けてもよい。より詳細には、たとえば、サイズ受付部102bは、受け付けた第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形情報記憶部212−2に記憶されていない場合に、第2の矩形領域サイズ11Bを受け付けてもよい。
【0113】
本実施の形態に係る取得部104bは、矩形情報記憶部212−2を参照し、線幅受付部103を介して入力された線幅12とサイズ受付部102bを介して入力された第1の矩形領域サイズ11Aとに基づいて、両者に対応する第2の矩形領域サイズ11Bを取得することによって、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。より詳細には、たとえば、図11に示すように、受付部110が、線幅として2ドットいう情報を、第1の矩形領域サイズ11Aとして16ドットいう情報を受け付けると、取得部104bは、矩形情報記憶部212−2の矩形データ212Aを参照して、両者に対応する第2の矩形領域サイズ11B(14ドット)を取得する。
【0114】
ただし、本実施の形態に係るサイズ受付部102bは、線幅受付部103を介して入力された線幅12と、サイズ受付部102bを介して入力された第1の矩形領域サイズ11Aと、同じくサイズ受付部102bを介して入力された第2の矩形領域サイズ11Bに基づいて、当該第2の矩形領域サイズ11Bを修正してもよい。より詳細には、たとえば、受け付けた第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形情報記憶部212−2に記憶されていない場合に、線幅12と第1の矩形領域サイズ11Aとに基づいて、第2の矩形領域サイズ11Bを修正してもよい。
【0115】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220bにおける文字描画処理の処理手順について説明する。図12は、本実施の形態にかかるコンピュータ220bにおける文字描画処理の処理手順を示すフローチャートである。
【0116】
図12を参照して、コンピュータ220bの電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS302)。CPU100は、文字コード10が入力されると(ステップS302にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データを読み出す。
【0117】
次に、CPU100は、第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS304)。CPU100は、第一の矩形領域サイズ11Aが入力されると(ステップS304にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS306)。CPU100は、線幅12が入力されると(ステップS306にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0118】
CPU100は、矩形情報記憶部212−2を参照して、第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されているか否かを判断する(ステップS308)。第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されている場合(ステップS308にてYESである場合)、CPU100は、当該第2の矩形領域サイズ11Bを抽出して、文字コード10に対応する第2の矩形領域サイズ11Bとしてセットする(ステップS310)。
【0119】
一方、第1の矩形領域サイズ11Aと線幅12とに対応する第2の矩形領域サイズ11Bが矩形データ212Aに格納されていない場合(ステップS308にてNOである場合)、CPU100は、第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS312)。CPU100は、第2の矩形領域サイズ11Bが入力されると(ステップS312にてYESである場合)、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、入力された第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については、図9に示した第2矩形領域サイズ決定処理(ステップS200)と同様であるので、ここでは説明を繰り返さない。
【0120】
第2の矩形領域サイズ11Bがセットされると(ステップS310あるいはステップS200が終了すると)、CPU100は、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、セットされた第2の矩形領域サイズ11Bに収まる(適合する)ように、形状データ13に拡大処理または縮小処理を行う(S314)。
【0121】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS316)、文字描画処理を終了する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS316において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0122】
このように、本実施の形態に係るコンピュータ220においては、このように、本実施の形態に係るコンピュータ220においては、左右対称性あるいは上下対称性を有した文字を、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0123】
[実施の形態3]
次に、本発明の実施の形態3について説明する。上述の実施の形態1に係るコンピュータ220は、文字全体に対する第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、文字全体が表示される第2の矩形領域サイズ11B(レター枠のサイズ)を更新するものであった。一方、本実施の形態に係るコンピュータ220cにおいては、文字を構成する対称オブジェクトに対する第1の矩形領域サイズ11Aと第2の矩形領域サイズ11Bと線幅12とに応じて、当該対称オブジェクトの第2の矩形領域サイズ11Bを更新する。
【0124】
なお、実施の形態3におけるコンピュータ220cおよびコンピュータシステムのハードウェア構成は、図1に示した実施の形態1におけるコンピュータ220cおよびコンピュータシステム200と同じであるため、ここでは説明を繰り返さない。
【0125】
<機能構成>
図13は、本実施の形態にかかるコンピュータ(文字描画装置)220cの機能構成を示すブロック図である。本実施の形態に係るコンピュータ220cにおいても、図13に示される各部は、CPU100がハードディスク212やRAM209に記憶されるプログラムを実行することによって実現される機能である。ただし、図13に示される1または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【0126】
なお、図2に示した実施の形態1におけるコンピュータ220と同じ機能ブロックについては、ここでは説明を繰り返さない。
【0127】
図13を参照して、本実施の形態にかかるコンピュータ220cは、文字コード受付部101、サイズ受付部102c、線幅受付部103、取得部104c、拡縮部106、出力部107、対称部位抽出部109、および形状データ記憶部212−1を備えている。なお、文字コード受付部101、サイズ受付部102c、線幅受付部103は、外部からデータを受け付ける受付部110に含まれる。
【0128】
まず、対称部位抽出部109は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出す。そして、対称部位抽出部109は、形状データ13から文字を構成するストローク群を抽出し、それらのストローク群のうち左右対称性あるいは上下対称性を有するストローク群からなる対称オブジェクト(対称部位)を検出する。
【0129】
なお、対称性を見つける方法は限定しない。対称部位抽出部109が動的に検出するものであっても構わないし、図3に示したように、形状データ13が対称性を示す付加情報を予め保持していてもよい。
【0130】
あるいは、対称部位抽出部109は、各ストローク群について、上下方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が左右対称性を持つと判断してもよい。また、上下対称のストローク群を抽出する場合には、対称部位抽出部109は、各ストローク群について、左右方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が上下対称性を持つと判断してもよい。例えば、対称部位抽出部109は、「山」という漢字は、上下方向のストロークの本数が3本であり奇数であるため、左右対称性を持つと判断する。また、対称部位抽出部109は、「三」という漢字で、左右方向のストロークの本数が3本であり奇数であるため、上下対称性を持つと判断する。
【0131】
あるいは、ハードディスク212が、予め対称性を持つストローク群のパターン(対称性パターン)を格納してもよい。対称部位抽出部109は、文字コード10から呼び出された形状データ13を、ハードディスク212やRAM209に格納された対称性パターンと比較して、文字がそのパターンを有するか、ストローク群がそのパターンに一致するか否かを判断してもよい。より詳細には、対称部位抽出部109は、パターンマッチングに基づいて、類似度(近接度)が予め設定された所定値以上である場合に、ストローク群がその対称性パターンに一致したものと判断する。
【0132】
例えば、ハードディスク212が「山」という対称性パターンを予め保持しておき、呼び出された形状データ13内に「山」という対称性パターンがあるかどうかを判定する。「山」という漢字の形状データ13が呼び出された場合には、文字全体を含むストローク群が対称性パターンに一致する。「嶋」や「島」という漢字の形状データ13が呼び出された場合には、文字を構成するストローク群が対称性パターンに一致する。
【0133】
そして、左右対称性パターンとして「山」と「甲」が登録されていれば、対称部位抽出部109は、例えば、「岬」という漢字の形状データ13を読み出した場合に、「山」というストローク群と「甲」というストローク群の両方が左右対称性パターンに一致すると判断し、2つの対称オブジェクトを抽出する。
【0134】
サイズ受付部102cは、例えば無線もしくは有線を介して提供される矩形領域サイズ11を受信するインターフェイスを備えており、対称オブジェクトに対する第1および第2の矩形領域サイズ11A,11Bの入力を受け付ける。あるいは、サイズ受付部102cは、他のプログラム(アプリケーション)から提供される対称オブジェクトに対する第1および第2の矩形領域サイズ11A,11Bを受け付ける。
【0135】
本実施の形態に係る取得部104cは、線幅受付部103を介して入力された線幅12と、サイズ受付部102cを介して入力された第1および第2の矩形領域サイズ11A,11Bとに基づいて、描画する際の最終的な第2の矩形領域サイズ11Bを決定する。すなわち、本実施の形態に係る取得部104cは、線幅受付部103を介して入力された線幅12と、サイズ受付部102cを介して入力された第1の矩形領域サイズ11Aとに基づいて、サイズ受付部102cを介して入力された第2の矩形領域サイズ11Bを修正する。
【0136】
拡縮部106は、文字コード受付部101を介して入力された文字コード10に対応する形状データ13を形状データ記憶部212−1から読み出し、最終的な第2の矩形領域の大きさに収まるように当該形状データ13の拡大処理または縮小処理を行う。例えば、第2の矩形領域サイズが23ドットである場合、左右方向の大きさが23ドットの第2の矩形領域に収まるように文字の大きさを調整する。
【0137】
出力部107は、拡縮部106で処理された形状データ13をモニタインターフェイス213を介してモニタ203に出力する。あるいは、出力部107は、拡縮部106で処理された形状データ13を通信インターフェイス216を介してもネットワークへと出力する。なお、コンピュータ220自体が描画機能(モニタ)を備えている場合は、拡縮処理された形状データに従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【0138】
(本実施の形態に係るコンピュータ220cの動作概要1)
(線幅が2ドットの場合)
ここで、本実施の形態に係る取得部104cの動作概要について詳述する。以下では、左右対称性を持つ対称オブジェクトを含む文字の文字コード10が入力された場合において、モニタ203などに当該対称オブジェクトを含む文字を描画する(表示する)際の動作概要について説明する。
【0139】
本実施の形態においても、文字コード10としてSJISコードが入力されるものとする。さらに、ここでは、「仲」という文字の文字コード「0x9287」が、文字コード受付部101を介して入力されるものとする。そして、サイズ受付部102cは、文字全体のボディサイズとして20ドットという情報を、レターサイズとして18ドットという情報、線幅として2ドットという情報を受け付ける。あるいは、文字全体のボディサイズとして20ドットという情報が、レターサイズとして18ドットという情報が予め設定されている。
【0140】
対称部位抽出部109は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、呼び出した形状データ13を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字を構成する形状データ13には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部109は「中」という対称オブジェクトを抽出する。
【0141】
サイズ受付部102cは、対称オブジェクトに対する第1の矩形領域サイズ11A(ボディサイズ)として左右方向に13ドットおよび上下方向に18ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として左右方向に13ドットおよび上下方向に18ドットという情報が、サイズ受付部102cを介して入力されるものとする。また、線幅として2ドットという情報が、線幅受付部103に入力される。
【0142】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x9287という情報を受け付けて、対称部位抽出部109に受け渡す。対称部位抽出部109は形状データ13と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部104cに受け渡す。サイズ受付部102cは第1の矩形領域サイズ11Aとして左右方向13ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。線幅受付部103は線幅として2ドットという情報を受け付けて、取得部104cに受け渡す。サイズ受付部102cは第2の矩形領域サイズ11Bとして左右方向13ドット、上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。
【0143】
そして、取得部104cは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が2ドット(偶数)であるため、取得部104cは第2の矩形領域サイズ11Bの左右方向のドット数が偶数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bの左右方向の大きさが13ドットであり、すなわち第2の矩形領域サイズ11Bが奇数であるため、取得部104cは第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104cは、第2の矩形領域サイズ11Bの左右方向の大きさを12ドットにセットし直す。
【0144】
図14は、線幅が2ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図14(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図14(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0145】
図14(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104cが第2の矩形領域サイズ11Bの左右方向の大きさを12ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向13ドット分および上下方向に18ドット分の画素を確保する。そして、取得部104cは、「中」という対称オブジェクトが表示される(占有する)レター枠として、左右方向に12ドット分および上下方向に18ドット分の画素を確保する。
【0146】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、「仲」という文字全体がレター枠(18ドット)に収まるように、そして「中」という対称オブジェクトがレター枠(左右方向に12ドット、上下方向に18ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0147】
そして、図14(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が2ドット(偶数)の場合に、第2の矩形領域サイズ11Bが12ドット(偶数)のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【0148】
(線幅が1ドットの場合)
次に、線幅として1ドットいう情報が、線幅受付部103に入力された場合について説明する。
【0149】
対称部位抽出部109は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、呼び出した形状データ13を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部109は「中」という対称オブジェクトを抽出する。
【0150】
サイズ受付部102cは、対称オブジェクトに対する第1の矩形領域サイズ11A(ボディサイズ)として左右方向に12ドットおよび上下方向に18ドットという情報が、第2の矩形領域サイズ11B(レターサイズ)として左右方向に12ドットおよび上下方向に18ドットという情報が、サイズ受付部102cを介して入力されるものとする。また、線幅として1ドットという情報が、線幅受付部103に入力される。
【0151】
換言すれば、文字コード受付部101は文字コード(SJISコード)0x9287という情報を受け付けて、対称部位抽出部109に受け渡す。対称部位抽出部109は形状データ13と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部104cに受け渡す。サイズ受付部102cは第1の矩形領域サイズ11Aとして左右方向に12ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。線幅受付部103は線幅として1ドットという情報を受け付けて、取得部104cに受け渡す。サイズ受付部102cは第2の矩形領域サイズ11Bとして左右方向に12ドットおよび上下方向に18ドットという情報を受け付けて、取得部104cに受け渡す。
【0152】
そして、取得部104cは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が1ドット(奇数)であるため、取得部104cは第2の矩形領域サイズ11Bの左右方向のドット数が奇数であるか否かを判断する。ここでは、第2の矩形領域サイズ11Bの左右方向の大きさが12ドットであり、すなわち第2の矩形領域サイズ11Bが偶数であるため、取得部104cは第2の矩形領域サイズ11Bから1だけ小さい値を第2の矩形領域サイズ11Bとしてセットし直す。すなわち、取得部104cは、第2の矩形領域サイズ11Bの左右方向の大きさを11ドットにセットし直す。
【0153】
図15は、線幅が1ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図15(a)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域とを示すイメージ図である。図15(b)は、本実施の形態に係るコンピュータシステム200における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【0154】
図15(a)に示すように、本実施の形態に係るコンピュータシステム200においては、取得部104cが第2の矩形領域サイズ11Bの左右方向の大きさを11ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向に12ドット分および上下方向に18ドット分の画素を確保する。そして、取得部104cは、「中」という対称オブジェクトが表示される(占有する)レター枠として、左右方向に11ドット分および上下方向に18ドット分の画素を確保する。
【0155】
拡縮部106は、形状データ記憶部212−1から文字コード10、すなわちSJISコードが「0x9287」の形状データ13を呼び出して、「仲」という文字全体がレター枠(18ドット)に収まるように、そして「中」という対称オブジェクトがレター枠(左右方向に11ドット、上下方向に18ドット)に収まるように、形状データ13に対して拡大処理または縮小処理を行う。
【0156】
そして、図15(b)に示すように、出力部107は、拡大処理または縮小処理された形状データ13に基づいて、モニタ203に文字を描画する。このように、線幅が1ドット(奇数)の場合に、第2の矩形領域サイズ11Bが11ドット(奇数)のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【0157】
なお、ここでは、旁の部分に対称性を持つストローク群からなる対称オブジェクトが存在するような例を示したが、このような機能に限定されない。例えば、「峠」のように、偏の部分に対称性を持つストローク群からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。さらに、「岸」のように冠の部分に対称性を持つストローク群からなるオブジェクトや、「島」などのようにある部分に対称性を持つストローク群、ここでは「山」というストローク群、からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。
【0158】
<文字描画処理>
次に、本実施の形態にかかるコンピュータ220cにおける文字描画処理の処理手順について説明する。図16は、本実施の形態にかかるコンピュータ220cにおける文字描画処理の処理手順を示すフローチャートである。
【0159】
図16を参照して、コンピュータ220の電源が入れられると、CPU100は、ハードディスク212から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずCPU100は、文字コード10が入力されるのを待ち受ける(ステップS402)。CPU100は、文字コード10が入力されると(ステップS402にてYESである場合)、入力された文字コード10を読み込んで、文字コードに対応する形状データ13を読み出して、対応する文字に対称オブジェクトが含まれるか否かを判断する(ステップS404)。あるいは、CPU100は、対応する文字から対称オブジェクトを抽出する。対応する文字に対称オブジェクトが含まれない場合(ステップS404にてNOである場合)、CPU100は、形状データ13に基づいてモニタ203に文字を描画させる。
【0160】
対応する文字に対称オブジェクトが含まれる場合(ステップS404にてYESである場合)、CPU100は、対称オブジェクトに対する第1の矩形領域サイズ11Aが入力されるのを待ち受ける(ステップS406)。CPU100は、対称オブジェクトに対する第一の矩形領域サイズ11Aが入力されると(ステップS406にてYESである場合)、入力された第1の矩形領域サイズ11AをRAM209に記憶する。
【0161】
同様に、CPU100は、線幅12が入力されるのを待ち受ける(ステップS408)。CPU100は、線幅12が入力されると(ステップS408にてYESである場合)、入力された線幅12を読み込んで、RAM209に記憶する。
【0162】
CPU100は、対称オブジェクトに対する第2の矩形領域サイズ11Bが入力されるのを待ち受ける(ステップS410)。CPU100は、対称オブジェクトに対する第2の矩形領域サイズ11Bが入力されると、入力された第2の矩形領域サイズ11Bを読み込んで、RAM209に記憶する。そして、CPU100は、第2矩形領域サイズ決定処理(ステップS200)によって、対称オブジェクトに対する第2の矩形領域サイズ11Bを修正する。第2矩形領域サイズ決定処理(ステップS200)については図9に示した第2矩形領域サイズ決定処理(ステップS200)と同様であるので、ここでは説明を繰り返さない。
【0163】
CPU100は、第2矩形領域サイズ決定処理(ステップS200)が終了すると、文字コード10に相当する形状データ13を形状データ記憶部212−1から読み出して、第2矩形領域サイズ決定処理(ステップS200)にて修正された後の第2の矩形領域サイズ11Bに適合するように、形状データ13に拡大処理または縮小処理を行う(ステップS412)。
【0164】
そして、CPU100は、拡縮処理された後の形状データ13をモニタインターフェイス213を介してモニタ203に出力し(ステップS414)、文字描画処理を終了する。なお、CPU100は、ステップS414において、形状データのうち、対称性を持たないストローク群からなるオブジェクトも同時に描画するものとし、一つの文字、すなわち入力された文字コード10に対する文字を描画する。なお、前述したように、コンピュータ220自体が文字を描画する機能を備えている場合には、ステップS412において、拡縮処理されたのちの形状データ13に基づいて文字を表示装置に表示してもよい。
【0165】
このように、本実施の形態に係るコンピュータ220においては、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【0166】
なお、上記の実施の形態1〜3に係る文字描画装置の有する機能同士を組み合わせることも可能である。より詳細には、たとえば、実施の形態2に係るコンピュータ220bに、実施の形態3に係るコンピュータ220cの対称部位抽出部109を追加することが可能である。逆に、実施の形態3に係るコンピュータ220cに、実施の形態2に係るコンピュータ220bの矩形情報記憶部212−2を追加することなども可能である。
【0167】
上記開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内においてのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0168】
【図1】本実施の形態に係るコンピュータシステムを示す概略図である。
【図2】実施の形態1に係る文字描画装置の機能構成を示す機能ブロック図である。
【図3】形状データ記憶部が記憶する形状データの例を示すイメージ図である。
【図4】線幅が2ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図5】線幅が3ドットの場合の「山」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図6】線幅が2ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図7】線幅が1ドットの場合の「三」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図8】実施の形態1にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図9】実施の形態1にかかる文字描画装置における第2の矩形領域サイズ決定処理の処理手順を示すフローチャートである。
【図10】実施の形態2にかかる文字描画装置の機能構成を示すブロック図である。
【図11】矩形情報記憶部に格納される矩形データを示すイメージ図である。
【図12】実施の形態2にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図13】実施の形態3にかかる文字描画装置の機能構成を示すブロック図である。
【図14】線幅が2ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図15】線幅が1ドットの場合の「仲」という文字が表示される場合における第1の矩形領域と第2の矩形領域と表示される文字画像とを示すイメージ図である。
【図16】実施の形態3にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【符号の説明】
【0169】
10 文字コード、11A 第1の矩形領域サイズ、11B 第2の矩形領域サイズ、13,13A,13B,13C 形状データ、100 CPU、101 文字コード受付部、102,102b,102c サイズ受付部、103 線幅受付部、104,104b,104c 取得部、106 拡縮部、107 出力部、109 対称部位抽出部、110 受付部、200 文字描画システム(コンピュータシステム)、201 光ディスクドライブ、202 磁気ディスクドライブ、203 モニタ、204 リモコン、207 バス、210 光ディスク、211 磁気ディスク、212 ハードディスク、212−1 形状データ記憶部、212−2 矩形情報記憶部、213 モニタインターフェイス、216 通信インターフェイス、220,220b,220c 文字描画装置(コンピュータ)。
【特許請求の範囲】
【請求項1】
表示デバイスに文字を表示させる文字描画装置であって、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段と、
前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付ける受付手段と、
前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得する取得手段と、
前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行う拡縮手段と、
前記拡縮処理された前記形状データを出力する出力手段とを備える、文字描画装置。
【請求項2】
前記第1の矩形領域はボディ領域であって、
前記第1の矩形領域の大きさはボディサイズであって、
前記第2の矩形領域はレター領域であって、
前記第2の矩形領域の大きさはレターサイズである、請求項1に記載の文字描画装置。
【請求項3】
形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備え、
前記取得手段は、第2の矩形領域の大きさとして、前記対称部位が表示される第2の矩形領域の、対称軸に直角な方向の長さを取得する、請求項1に記載の文字描画装置。
【請求項4】
前記表示デバイスは、マトリクス状に配列された複数の画素から構成され、
前記取得手段は、
前記第1の矩形領域の一辺の画素数を取得し、
前記線幅を示す画素数が奇数である場合に、前記第2の矩形領域の大きさとして、前記一辺の画素の数よりも少ない奇数の画素数を取得し、
前記線幅を示す画素数が偶数である場合に、前記第2の矩形領域の大きさとして、前記一辺の画素の数よりも少ない偶数の画素数を取得する、請求項1から3のいずれか1項に記載の文字描画装置。
【請求項5】
前記第2の矩形領域の大きさを、前記第1の矩形領域の大きさと前記線幅とに対応付けて記憶する第2の記憶手段をさらに備え、
前記取得手段は、前記第1の矩形領域の大きさと前記線幅とに基づいて、前記第2の記憶手段から対応する第2の矩形領域の大きさを読み出す、請求項1から4のいずれか1項に記載の文字描画装置。
【請求項6】
文字描画装置に、表示デバイスに文字を表示させるための文字描画方法であって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備え、
前記演算処理部が、前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記演算処理部が、前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得するステップと、
前記演算処理部が、前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを備える、文字描画方法。
【請求項7】
文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムであって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備え、
前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得するステップと、
前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを前記演算処理部に実行させる、文字描画プログラム。
【請求項8】
請求項7に記載の文字描画プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項1】
表示デバイスに文字を表示させる文字描画装置であって、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段と、
前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付ける受付手段と、
前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得する取得手段と、
前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行う拡縮手段と、
前記拡縮処理された前記形状データを出力する出力手段とを備える、文字描画装置。
【請求項2】
前記第1の矩形領域はボディ領域であって、
前記第1の矩形領域の大きさはボディサイズであって、
前記第2の矩形領域はレター領域であって、
前記第2の矩形領域の大きさはレターサイズである、請求項1に記載の文字描画装置。
【請求項3】
形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備え、
前記取得手段は、第2の矩形領域の大きさとして、前記対称部位が表示される第2の矩形領域の、対称軸に直角な方向の長さを取得する、請求項1に記載の文字描画装置。
【請求項4】
前記表示デバイスは、マトリクス状に配列された複数の画素から構成され、
前記取得手段は、
前記第1の矩形領域の一辺の画素数を取得し、
前記線幅を示す画素数が奇数である場合に、前記第2の矩形領域の大きさとして、前記一辺の画素の数よりも少ない奇数の画素数を取得し、
前記線幅を示す画素数が偶数である場合に、前記第2の矩形領域の大きさとして、前記一辺の画素の数よりも少ない偶数の画素数を取得する、請求項1から3のいずれか1項に記載の文字描画装置。
【請求項5】
前記第2の矩形領域の大きさを、前記第1の矩形領域の大きさと前記線幅とに対応付けて記憶する第2の記憶手段をさらに備え、
前記取得手段は、前記第1の矩形領域の大きさと前記線幅とに基づいて、前記第2の記憶手段から対応する第2の矩形領域の大きさを読み出す、請求項1から4のいずれか1項に記載の文字描画装置。
【請求項6】
文字描画装置に、表示デバイスに文字を表示させるための文字描画方法であって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備え、
前記演算処理部が、前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記演算処理部が、前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得するステップと、
前記演算処理部が、前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを備える、文字描画方法。
【請求項7】
文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムであって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第1の記憶手段とを備え、
前記文字コードと、前記文字に割り当てられた第1の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記第1の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第2の矩形領域の大きさを取得するステップと、
前記文字コードに基づいて前記第1の記憶手段から形状データを読み出して、対応する文字が前記第2の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを前記演算処理部に実行させる、文字描画プログラム。
【請求項8】
請求項7に記載の文字描画プログラムを記録したコンピュータ読取可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2010−39375(P2010−39375A)
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願番号】特願2008−204490(P2008−204490)
【出願日】平成20年8月7日(2008.8.7)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願日】平成20年8月7日(2008.8.7)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]