JP2004184718A - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- JP2004184718A JP2004184718A JP2002351978A JP2002351978A JP2004184718A JP 2004184718 A JP2004184718 A JP 2004184718A JP 2002351978 A JP2002351978 A JP 2002351978A JP 2002351978 A JP2002351978 A JP 2002351978A JP 2004184718 A JP2004184718 A JP 2004184718A
- Authority
- JP
- Japan
- Prior art keywords
- character
- font
- image processing
- characters
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
- Record Information Processing For Printing (AREA)
- Image Processing (AREA)
- Document Processing Apparatus (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
【解決手段】使用要求に一致するフォントが存在しない場合に、指定された属性情報が最も近いフォントを近似フォントとして書体選択部123にて選択し、この選択した近似フォントを用いて文字コードと文字描画位置情報を基に、文字描画命令処理部121によって文字を描画する際に、文字間隔処理部124にて今回の描画文字と次回の描画文字との間の文字間隔を算出し、この算出結果を用いて文字間の状態を予測し、この予測結果に基づいて今回の描画文字を縮小または拡大して描画するようにする。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、複数のフォントをあらかじめ保有しておき、これら複数のフォントの中から要求されたフォントを選択して当該フォントに対応した文字の出力処理を行う画像処理装置および画像処理方法に関し、特に要求されたフォントと同一のフォントを保有していない場合に、保有しているフォントの中から要求されたフォントに近いフォントを選択して描画することが可能な画像処理装置および画像処理方法に関する。
【0002】
【従来の技術】
近年、文章や画像などのドキュメントを、パーソナルコンピュータやワークステーションなどのコンピュータ装置で電子的に作成し、その作成したドキュメントをコンピュータ装置と例えばネットワークを介して接続された出力装置、例えばプリンタ装置にて印刷出力する、といったことが広く行われている。
【0003】
このようなコンピュータ装置とプリンタ装置とを備えてなる画像形成システムにおいては、一般に、ドキュメントを印刷出力するに当たって、コンピュータ装置側からプリンタ装置側に対してページ記述言語(Page Description Language;以下、「PDL」と略す)で記述された描画命令を送出するようになっている。そして、描画命令の送出があると、プリンタ装置側において、コンピュータ装置側から受け取った描画命令を基にテキストやグラフィックスなどの図形を描画することになる。
【0004】
テキストを描画する場合は、テキストとして描画されるフォントの属性と、テキストと、テキストの描画位置の各情報がコンピュータ装置側から指定され、これらの指定情報に基づいてプリンタ装置側にてテキスト描画を行うのが一般的である。その際、コンピュータ装置側で指定されたフォントが全てプリンタ装置に搭載されているとは限らない。
【0005】
このように、指定されたフォントがプリンタ装置に搭載されていない場合、従来は、プリンタ装置が保有している複数のフォントの中から適当なフォントを選んで描画するようにしていた(例えば、特許文献1参照)。具体的には、複数のフォントの各々に対してそれぞれの書体名とスタイル情報(太さ・字形・ファミリ)とを対応付けて格納しておき、指定されたフォントが存在しない場合は、書体名およびスタイル情報を基に代替のフォントに置き換えて描画することで、フォントがプリンタ装置側に搭載されていない場合のテキスト描画を実現可能にしている。
【0006】
【特許文献1】
特開平6−130930号公報
【0007】
【発明が解決しようとする課題】
しかしながら、上述した従来技術のように、指定されたフォントが存在しない場合に、単に別のフォントに置換して描画する手法を採ると、指定されたフォントと変更されたフォントとの間でフォントの横幅または縦幅が異なる場合に、その幅の違いによって描画されたテキストの文字間隔が不自然に広くなったり、逆に狭くなったりするという不具合が発生してしまう。
【0008】
例えば、横書きの場合に、指定されたフォントの幅が変更されたフォントの幅よりも狭いと描画された文字同士が接触し、逆に広いと文字間隔が不自然に開いて描画されてしまう。また、縦書きの場合に、指定されたフォントの高さが変更されたフォントの高さよりも低いと描画された文字同士が接触し、逆に高いと文字間隔が不自然に開いて描画されてしまう。
【0009】
具体的には、横書きの場合を例に採ると、指定されたフォントの幅が、置き換えられたフォントの幅よりも狭い場合には、図9に示すように、文字列を描画する各々の文字の描画開始位置は元の狭いフォントを基準にして指定されるため、幅の広いフォントに置き換えられることで、元のフォント描画位置では文字同士が重なって描画されてしまっていた。ここでは、幅の狭い「へ」と「と」を幅の広いフォントに置換した場合の様子を示している。
【0010】
一方、指定されたフォントの幅が、置き換えられたフォントの幅よりも広い場合には、図10に示すように、文字列を描画する各々の文字の描画開始位置は元の広いフォントを基準にして指定されるため、幅の狭いフォントに置き換えられることで、元のフォント描画位置では文字間隔が不自然に広がって描画されてしまっていた。ここでは、幅の広い「へ」と「と」を幅の狭いフォントに置換した場合の様子を示している。
【0011】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、指定されたフォントを別のフォントに置換して描画する際に、文字間の重なりや文字間隔の狭すぎあるいは広すぎ(開きすぎ)を防止して見栄えの良い文字列の描画を可能にした画像処理装置および画像処理方法を提供することにある。
【0012】
【課題を解決するための手段】
本発明による画像処理装置は、任意のフォントを特定する情報とそのフォントの属性情報を基にしたフォントの使用要求に応じて、複数のフォントの中から所望のフォントを選択し、この選択したフォントを用いて文字コードおよび文字描画位置情報を基に文字を出力する画像処理装置であって、前記複数のフォント中に前記使用要求に一致するフォントが存在する場合はそのフォントを選択し、存在しない場合は指定された属性情報が近いフォントを近似フォントとして選択する選択手段と、前記選択手段によって選択されたフォントに対応する文字を当該フォントの文字コードおよび文字描画位置情報を基に描画する描画手段と、前記選択手段によって前記近似フォントが選択されたとき、前記描画手段による今回の描画文字と次回の描画文字との文字間の状態を予測する予測手段と、前記描画手段による今回の描画文字を前記予測手段の予測結果に基づいて縮小または拡大する制御手段とを備える構成となっている。
【0013】
本発明による画像処理方法は、任意のフォントを特定する情報とそのフォントの属性情報を基にしたフォントの使用要求に応じて、複数のフォントの中から所望のフォントを選択し、この選択したフォントを用いて文字コードおよび文字描画位置情報を基に文字を出力するに当たって、前記複数のフォント中に前記使用要求に一致するフォントが存在する場合はそのフォントを選択し、存在しない場合は指定された属性情報が近いフォントを近似フォントとして選択し、前記近似フォントを選択したとき、今回の描画文字と次回の描画文字との文字間の状態を予測し、この予測した文字間の状態に基づいて今回の描画文字を縮小または拡大して前記文字描画位置情報を基に描画するようにする。
【0014】
上記構成の画像処理装置または画像処理方法において、使用要求に一致するフォントが存在しない場合に、指定された属性情報が近いフォントを近似フォントとして選択し、この選択した近似フォントを用いて文字コードと文字描画位置情報を基に文字を出力するに当たって、今回の描画文字と次回の描画文字との文字間の状態を予測し、この予測結果に基づいて、今回の描画文字に対して次回の描画文字が重なったり、文字間隔が狭くなりすぎたり、広くなりすぎないように今回の描画文字を縮小または拡大して描画する。これにより、描画後の文字列において、文字間の重なりや文字間隔の狭すぎあるいは広すぎ(開きすぎ)を防止できるため、見栄えの良い文字列の描画を実現できる。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。ただし、ここでは、本発明を、ドキュメントの印刷出力を行うプリンタ装置に搭載された画像処理装置および当該画像処理装置が実行する画像処理方法に適用した場合を例に挙げて説明するものとする。
【0016】
図1は、本発明の一実施形態に係る画像処理装置の構成の概略を示すブロック図である。本実施形態に係る画像処理装置は、図示しないホストコンピュータ装置で生成されたPDLを、そのコンピュータ装置からネットワーク20を介して受信すると、受信したPDLによって記述された描画コマンド(直線、曲線、フォント、ラスタ画像、塗りつぶし等の描画命令)を解釈して図形描画処理を行うとともに描画した図形のデータをバッファに格納し、描画後に生成されたラスタ状の図形データを出力する出力装置、例えば画像形成を行うプリンタエンジン30に対して送出する機能を持っている。
【0017】
上述した機能を実現するために、図1から明らかなように、本実施形態に係る画像処理装置10は、入力インターフェイス(以下、インターフェイスを「I/F」と略す)11と、CPU(Central Processing Unit)12と、ROM(Read Only Memory)13と、RAM(Random Access Memory)14と、プリンタエンジンI/F15と、これらの構成要素を相互に接続する内部バス16とを備えた構成となっている。
【0018】
この画像処理装置10において、入力I/F11は、ホストコンピュータ装置から送出されるPDLをネットワーク20を介して受信する。ここで、入力I/F11が受信するPDLには、先述した図形描画コマンドが含まれているものとする。また、図形の描画を行う場合には、その図形の外郭データがPDLとして入力I/F11に与えられるものとする。
【0019】
CPU12は、画像処理装置10全体の動作制御の外に、入力I/F11を介して受け取ったPDLを解釈して、その解釈結果に基づいて図形の描画処理を行う。この図形の描画処理は、CPU12が持つ図形描画処理、ラスターイメージ描画処理および文字描画処理の各機能によって行われる。これらの処理のうち、文字描画処理を行うために、CPU12は、図1に示すように、文字描画命令処理部121、ビットマップイメージ生成部122、書体選択部123および文字間隔算出部124の各機能部を有している。
【0020】
ROM13は、CPU11が描画処理を行うのに必要となる描画プログラムをあらかじめ格納している。このROM13内の描画プログラムを実行することにより、CPU11は上述した各処理、即ち図形描画処理、ラスターイメージ描画処理および文字描画処理の各機能を実現するようになっている。ROM13にはさらに、文字描画のための複数のフォントについてのフォントデータも格納されている。このフォントデータは、ビットマップイメージ生成部122によって読み出されてフォントのビットマップを作成するために使用される。
【0021】
RAM14は、CPU11が描画処理を行う際のワークメモリとして用いられる。詳しくは、CPU11による描画結果が描き込まれることにより、プリンタエンジン30に出力するための図形データを格納するページバッファ141を有している。RAM14には、後述する文字の拡縮率(拡大率・縮小率)テーブルも格納されている。
【0022】
プリンタエンジンI/F15は、CPU11による制御に従いつつ、RAM14内のページバッファ141に格納された図形データから展開されたラスターデータをプリンタエンジン30に送出する。プリンタエンジン30としては、周知の電子写真技術を利用してラスターデータを印刷出力するものであっても良く、あるいは、周知のインクジェット方式の印刷技術を利用してラスターデータを印刷出力するものであっても良い。
【0023】
なお、本実施形態では、画像出力を行う出力装置として、ドキュメントの印刷出力を行うプリンタ装置を用いた場合を例に挙げたが、これに限られるものではなく、表示出力を行うCRT(Cathode Ray Tube)等のディスプレイ装置であっても構わない。
【0024】
また、本実施形態においては、ホストコンピュータ装置から送出されるPDLをネットワーク20を介して受信するとしたが、ネットワーク20を介して受信するのではなく、同一のコンピュータ上にあるアプリケーションから直接呼び出す構成であっても構わない。
【0025】
次に、CPU12が持つ機能部である文字描画命令処理部121、ビットマップイメージ生成部122、書体選択部123および文字間隔算出部124の各機能の概要、換言すれば、文字描画処理における処理動作の概要について簡単に説明する。
【0026】
ホストコンピュータ装置からネットワーク20を経由して送られてきたPDLは、図示されていない図形描画命令解釈部によって解釈されて、RAM14のページバッファ141へラスターデータとして描画される。このとき、グラフィックスやラスターイメージは、図示されていない図形描画処理部やラスターイメージ描画処理部によってラスターデータへ変換されて描画される。
【0027】
文字描画命令処理部121は、ネットワーク20を介してホストコンピュータ装置から送られてきたPDL中の文字描画命令を、図形描画命令解釈部を介して受け取り、当該文字描画命令に基づいて文字描画処理を行う。ここで、文字描画命令は、図2に示すように、フォント指定命令と文字列描画命令とから構成されている。フォント指定命令は、フォント名情報(フォント名・ファミリ名)およびフォント属性情報(太さ・傾斜・サイズ)を含んでいる。文字列描画命令は、文字列情報(文字数・描画位置・文字コード×文字数・文字描画位置×文字数)を含んでいる。
【0028】
文字描画命令処理部121がフォント指定命令を受け取ると、これを受けて書体選択部123は、ROM13にあらかじめ格納されている複数のフォント(書体)の中からフォント指定命令によって指定されたフォントの選択を行う。このとき、書体選択部123は、複数のフォントの中に指定されたフォントが存在すれば、そのフォントをカレントフォントとして設定し、存在しないのであれば、指定された属性情報が近いフォント、好ましくは最も近いフォントを選択してカレントフォント(近似フォント)として設定する。ROM13に格納されるフォントデータ(図6参照)の詳細については後述する。
【0029】
続いて、文字描画命令処理部121が文字列描画命令を受け取ると、これを受けてビットマップイメージ生成部122は、書体選択部123にて設定されたカレントフォントの文字コードに該当する文字のビットマップを生成し、この生成したビットマップを文字列情報中の描画位置情報に対応した文字描画位置に描画する。この際、指定されたフォントが存在せず、書体選択部123にて別のフォントが選択されている場合、即ちフォントが置換されている場合には、今回の描画文字と次回の描画文字との文字間の状態を予測する処理を行う。
【0030】
ここで、「文字間の状態を予測する」とは、フォント指定命令で指定された文字を文字列描画命令に応じて描画した際の文字相互間の間隔を基準としたとき、今回の描画文字と次回の描画文字とが重なった状態にならないか、基準の状態よりも狭すぎる状態にならないか、あるいは広すぎる(開きすぎる)状態にならないかを予測することを言う。この予測を行う手段として、例えば、今回の描画文字と次回の描画文字との間の文字間隔(描画間隔)を算出する処理を行う文字間隔算出部124が用いられる。
【0031】
文字間隔算出部124は、文字間隔を算出するとともに、この算出した文字間隔を基に今回の描画文字と次回の描画文字との文字間の状態を判定する処理を行う。すなわち、算出した文字間隔が上記基準の状態に対応する基準値に対して等しいか、小さいか、大きいかの判定を行う。基準値よりも小さい場合は、今回の描画文字に対して次回の描画文字が重なったり、文字間隔が不自然に狭すぎる状態となる。逆に、基準値よりも大きい場合は、今回の描画文字と次回の描画文字との文字間隔が不自然に広すぎる(開きすぎる)状態となる。いずれの場合も、描画後の文字列の見栄えを悪化させる要因となる。
【0032】
文字間隔算出部124はさらに、文字間の状態の判定結果を基に各文字コードに対応した拡縮率を求めて、拡縮率テーブルとしてRAM14に格納する。その後、ビットマップイメージ生成部122は、文字間隔算出部124で求めた拡縮率を基に、カレントフォントの文字コードに該当する文字のビットマップを生成し、この生成したビットマップを文字列情報中の描画位置情報に対応した文字描画位置に描画する。
【0033】
上述した処理を全ての描画コマンドについて繰り返して実行する。そして、全ての描画コマンドの描画処理が終了したら、プリンタエンジンI/F15を介してプリンタエンジン30に出力する。以上により、1ページ分の処理が終了し、以降、ページ単位で上述した一連の処理を繰り返して実行する。
【0034】
続いて、文字描画命令処理部121、書体選択部124および文字間隔処理部124の各機能部において実行される処理の具体例について説明する。
【0035】
〔文字描画命令処理部121〕
先ず、文字描画命令処理部121の処理について詳しく説明する。図3は、文字描画命令処理部121の処理手順の一例を示すフローチャートである。
【0036】
文字描画命令処理部121は、ネットワーク20を介してホストコンピュータ装置から送られてきたPDL中の文字描画命令を、図示されていない図形描画命令解釈部を介して受け取ると、先ず、フォント指定命令か文字列描画命令かを判定する(ステップS11)。フォント指定命令であれば、書体選択部123による書体(フォント)選択の処理(ステップS12)に移行する。この書体選択の処理では、後で詳細に説明するように、選択したフォントをカレントフォントとして登録するとともに、フォントの置換が発生している場合には、置換前のフォント情報(フォント指定命令として指定された情報)を登録し、さらにフォント置換が発生したことを示す置換発生情報も登録しておく。
【0037】
ステップS11での判定が文字列描画命令であれば、上記置換発生情報を基にカレントフォントにフォント置換が発生しているか否かを判定する(ステップS13)。フォント置換が発生していなければ、文字間の重なり、文字間隔の不自然な狭まりあるいは広がり(開き)が発生せず、文字間の状態が基準の状態にある訳であるから、カレントフォントの文字コードを取得し(ステップS14)、次いでビットマップイメージ生成部122にてカレントフォントと文字コードに対応する文字のビットマップを生成する処理(ステップS15)に移行する。ここで生成したビットマップについては、ページバッファ141の指定位置へ描画する(ステップS16)。
【0038】
続いて、文字列内の全ての文字の描画が終了したか否かを判定し(ステップS17)、全ての文字の描画が終了していなければ、上述したステップS14〜ステップS16の処理を繰り返して実行する。そして、文字列内の全ての文字の描画が終了したならば、一連の文字描画命令の処理を終了する。
【0039】
ステップS13でフォント置換が発生していたと判定したならば、文字間隔算出部124にて今回の描画文字と次回の描画文字との文字間隔を算出して当該文字間の状態の予測、即ち文字間での重なり、文字間隔の狭まりすぎあるいは広がりすぎの状態を判定し、そその判定結果から今回の描画文字に対する拡縮率を求め、文字列の全ての文字に対して拡縮率を拡縮率テーブルとしてRAM14に登録する処理(ステップS18)に移行する。
【0040】
RAM14に登録される拡縮率テーブルを図4に示す。同図から明らかなように、拡縮率テーブルは、カレントフォントに対応する置換前のフォント情報と、出現した文字コードとそれに対応する拡縮率とから構成される。拡縮率テーブルは、出現したフォントの種類分だけ存在する必要がある。この拡縮率テーブルについては、文字列描画命令単位で生成して描画終了後破棄しても良いし、ページ描画単位で生成してページ描画終了後に破棄しても良いし、ジョブ描画単位で生成して破棄しても良い。
【0041】
拡縮率テーブルを文字列描画命令単位で生成して描画終了後破棄することで、同じフォントの描画時の拡縮率が、指定された文字コード列内の同じ文字コード間で等しくなる。拡縮率テーブルをページ描画単位で生成してページ描画終了後に破棄することで、同じフォントの描画時の拡縮率が、同一ページ内の同じフォント属性をもつ同じ文字コード間で等しくなる。拡縮率テーブルをジョブ描画単位で生成して破棄することで、同じフォントの描画時の拡縮率が、同一ジョブ内の同じフォント属性をもつ同じ文字コード間で等しくなる。
【0042】
ここで、同じフォントの描画時の拡縮率を、指定された文字コード列内の同じ文字コード間で等しく手法を採ることにより、当該拡縮率を文字コード列ごとに更新できることになるため、拡縮率テーブルを格納するRAM14の記憶容量が少なくて済むという利点がある。一方、同じフォントの描画時の拡縮率を、同一ジョブ内の同じフォント属性をもつ同じ文字コード間で等しくする手法を採ることにより、拡縮率テーブルを格納するRAM14の記憶容量が多少大きくなるものの、同一ジョブ全体に亘って同じフォントの描画時の拡縮率を等しくできるため、より見栄えの良い文字列の描画が可能になるという利点がある。
【0043】
これら2つの手法の長所、短所を考慮すると、両者の中間的な位置付けとなる手法である、同じフォントの描画時の拡縮率を、同一ページ内の同じフォント属性をもつ同じ文字コード間で等しくする手法を採るのが好ましいと考えられる。何故ならば、当該手法を採ることにより、拡縮率テーブルを格納するRAM14の記憶容量をあまり大きくしなくとも、同じページ内において文字列単位で拡縮率がばらつかないようにすることができるため、より見栄えの良い文字列の描画が可能になる
【0044】
ステップS18の処理の終了後、カレントフォントの文字コードを取得し、さらに、RAM14に登録されている拡縮率テーブルから、今回の描画文字の置換前フォント情報と文字コードに合致する拡縮率を取得する(ステップS19)。続いて、ビットマップイメージ生成部122にてカレントフォントと文字コードに対応する文字のビットマップを生成する処理(ステップS20)に移行する。この処理の終了後、ビットマップイメージを生成する際に必要な文字サイズをステップS19で取得した拡縮率で修正して拡縮後のビットマップを生成し、この生成したビットマップをページバッファ141の指定位置へ描画する(ステップS21)。
【0045】
続いて、文字列内の全ての文字の描画が終了したか否かを判定し(ステップS22)、終了していなければ、ステップS19〜ステップS21の処理を繰り返して実行する。そして、文字列内の全ての文字の描画が終了したならば、一連の文字描画命令処理を終了する。
【0046】
〔書体選択部123〕
次に、書体選択部123の処理について詳しく説明する。図5は、書体選択部123の処理手順の一例を示すフローチャートである。
【0047】
ここでは、前提として、フォントデータは、図6に示すように、フォント名とフォントファミリ名とフォントの太さと傾きがあるか否かのフラグ(一般的に、Italicと呼ばれる)とで表現されるものとする。また、各々のフォント内に含まれる文字は、文字コードとその文字を描画するデータ(図中では、アウトラインデータとなっているが、ビットマップデータやストロークデータの場合も存在する)と文字の幅と高さとで構成されるものとする。さらに、複数のフォントに対応するために、フォントデータは複数存在するものとする。
【0048】
書体選択部123は、先ず、フォント指定命令からフォント名を取得し(ステップS31)、しかる後取得したフォント名と一致するフォント名を持つフォントデータが存在するか否かを検索する処理(ステップS32)に移行する。そして、この検索処理の結果を基に、フォント名が一致したフォントがフォントデータ内に存在するか否かを判定する(ステップS33)。フォント名が一致したフォントが存在するならば、フォント指定命令によって指定されたフォント名をカレントフォントとして登録し(ステップS34)、次いで「フォント置換発生せず」と登録し(ステップS35)、本書体選択処理を終了する。
【0049】
一方、フォント名が一致したフォントが存在しないならば、フォント指定命令からファミリ名を取得し(ステップS36)、しかる後取得したファミリ名と一致するファミリ名を持つフォントデータが存在するか否かを検索する処理(ステップS37)に移行する。そして、この検索処理の結果を基に、ファミリ名が一致したフォントがフォントデータ内に存在するか否かを判定する(ステップS38)。
【0050】
ファミリ名が一致したフォントが存在したならば、ファミリ名が一致したフォントデータの中からフォント指定命令によって指定された太さおよび傾斜が等しいフォントを選択し(ステップS39)、その選択したフォントをカレントフォントとして登録するとともに、置換前のフォントをカレント置換前フォントとして登録する(ステップS40)。最後に、「フォント置換発生」(これは、先述した置換発生情報に相当する)と登録し(ステップS41)、一連の書体選択処理を終了する。
【0051】
ステップS38において、ファミリ名が一致したフォントがフォントデータ内に存在しないと判定したならば、適当なフォントを選択し(ステップS42)、しかる後ステップS40に移行する。ここで、適当なフォントを選択するとしたのは、ファミリ名が一致しないフォントの場合には、どのフォントを選択しても大差ないからである。以降、選択したフォントをカレントフォントとして登録するとともに、置換前のフォントをカレント置換前フォントとして登録し(ステップS40)、最後に「フォント置換発生」と登録し(ステップS41)、一連の書体選択処理を終了する。
【0052】
〔文字間隔算出部124〕
最後に、文字間隔算出部124の処理について詳しく説明する。図7は、文字間隔算出部124の処理手順の一例を示すフローチャートである。
【0053】
文字間隔算出部124は、先ず、先述した書体選択処理で登録されたカレント置換前フォント情報とカレントフォント情報とを取得する(ステップS51)。続いて、文字描画命令から今回の描画文字の文字コードと描画位置情報、さらに次回の描画文字の描画位置情報を取得する(ステップS52)。この取得した描画文字の文字コードとカレント置換前フォント情報とから任意の文字の拡縮率を決定できることから、これらの情報を基に、RAM14に格納されている拡縮率テーブルの中に、カレント置換前フォントが一致し、かつ、文字コードが一致する計算済みの拡縮率が在るか否かを検索する(ステップS53)。
【0054】
続いて、計算済みの拡縮率の検索結果を判定し(ステップS54)、今回の描画文字について拡縮率が計算されていれば、描画命令中の全ての文字について拡縮率の計算が終了したか否かを判定し(ステップS55)、終了していないのであれば、ステップS52に戻って再び同様の処理を実行する。今回の描画文字について拡縮率が計算されていないと判定したのであれば、以下に説明する拡縮率の計算処理を実行する。
【0055】
図8に、拡縮率に用いられる情報の具体例を示す。図8において、「へ」が今回の描画文字、「と」が次回の描画文字となる。拡縮率の計算処理では、先ず、カレントフォントで指定されるフォントデータ内の文字コードに該当するフォントデータから文字の幅を取得する(ステップS56)。これは、図8において、置換されて描画される文字の幅に相当する。続いて、今回の描画文字の描画開始位置と次回の描画文字の描画開始位置とから描画ピッチを計算する(ステップS57)。通常、描画開始位置は(x,y)二次元座標系で与えられるので、今回の描画文字の描画開始位置を(x1,y1)、次回の描画文字の描画開始位置を(x2,y2)とすると、描画ピッチはy2−y1で求めることができる。
【0056】
このようにして求めた描画ピッチと、置換されて描画される文字の幅との差、即ち(描画ピッチ)−(置換されて描画される文字の幅)が、今回の描画文字と次回の描画文字との文字間隔(負を含む)に相当する。ここで、図8に示すように、描画ピッチは元々描画命令で想定された描画文字の幅と等しいと考えられるので、(描画ピッチ)−(置換前フォントに該当する文字の幅)が先述した基準の状態での文字間隔、即ちフォント指定命令で指定された文字を文字列描画命令に応じて描画した際の文字間隔と言える。この基準の状態での文字間隔は、正規の文字間隔とも言える。
【0057】
そして、この正規の文字間隔を基準値としたときに、描画ピッチと置換されて描画される文字の幅との差、即ち今回の描画文字と次回の描画文字との文字間隔が基準値よりも小さい場合は、今回の描画文字に対して次回の描画文字が重なった状態(文字間隔が負)あるいは文字間が不自然に狭すぎる状態にあり、逆に、基準値よりも大きい場合は、今回の描画文字と次回の描画文字との文字間が不自然に広すぎる(開きすぎる)状態にあると言える。
【0058】
次に、置換されて描画される文字の幅と、求めた描画ピッチとから文字の拡縮率を計算して求める(ステップS58)。すなわち、(描画ピッチ)/(置換されて描画される文字の幅)が拡縮率となる。ここで、描画ピッチは元々描画命令で想定された描画文字の幅と等しいと考えられるので、置換されて描画される文字の幅との比を求めることにより、置換されて描画される文字が次に描画される文字と重ならない、またはそれらの文字間隔が不自然に狭すぎない、あるいは広すぎないようにする、換言すれば当該文字間隔を正規の文字間隔、即ち(描画ピッチ)−(置換前フォントに該当する文字の幅)にするための拡縮率とすることができる。
【0059】
この拡縮率については、そのまま用いることも可能であるし、また求めた拡縮率では大きすぎる、あるいは小さすぎる場合もあり得るので、場合によっては、求めた拡縮率に対して指定されたフォントに依存する定数をかけて用いるようにしても良い。
【0060】
続いて、求めた拡縮率を拡縮率テーブルとしてRAM14に登録し(ステップS59)、しかる後ステップS55へ移行して、描画命令中の全ての文字について拡縮率の計算が終了したか否か判定し、終了していないのであれば、再び上述した一連の拡縮率の計算フローへ戻る。
【0061】
上述したように、使用要求に一致するフォントが存在しない場合に、指定された属性情報が近いフォント、好ましくは最も近いフォントを近似フォントとして選択し、この選択した近似フォントを用いて文字コードと文字描画位置情報を基に文字を出力するに当たって、今回の描画文字と次回の描画文字との文字間の状態を予測し、この予測結果に基づいて今回の描画文字を縮小または拡大して描画することにより、描画後の文字列において、文字が相互に重なったり、文字間隔が狭すぎたりあるいは広すぎたりするのを防止できるため、見栄えの良い文字列の描画を実現できる。
【0062】
特に、文字間の状態を予測するのに、例えば文字間隔算出部124を用い、当該文字間隔算出部124によって今回の描画文字と次回の描画文字との文字間隔を算出してこの算出結果を利用することにより、文字相互が重なる状態、文字間隔が不自然に狭すぎる状態あるいは不自然に広すぎる状態を確実に予測できるため、置換されたフォントを基に描画する文字について最適な縮小処理または拡大処理を行うことができる。
【0063】
なお、上記実施形態において、文字描画処理の概要を説明するのに横書きの場合を例に挙げて説明したが、縦書きの場合にも適用可能である。すなわち、縦書きの場合には、文字の幅(横方向の幅)を文字の高さ(縦方向の幅)に置き換えるだけで、同様の処理を適用することができる。
【0064】
また、上記実施形態では、文字間の状態を予測するのに、文字間隔処理部124を用いて今回の描画文字と次回の描画文字の文字間隔を算出してこの算出結果を基に文字間の状態を予測するとしたが、文字間隔処理部124を用いる手法に限られるものではなく、要は、今回の描画文字と次回の描画文字との文字間の状態を予測できるものであればその構成は問わない。
【0065】
【発明の効果】
以上説明したように、本発明によれば、使用要求に一致するフォントが存在しない場合に、指定された属性情報が最も近いフォントを近似フォントとして選択し、この選択した近似フォントを用いて文字コードと文字描画位置情報を基に文字を出力するに当たり、今回の描画文字と次回の描画文字との文字間隔を求め、この求めた文字間隔に基づいて今回の描画文字を縮小または拡大して描画することにより、描画後の文字列において、文字間の重なりや開きすぎを防止できるため、見栄えの良い文字列の描画を実現できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る画像処理装置の構成の概略を示すブロック図である。
【図2】文字描画命令の構成の一例を示す図である。
【図3】文字描画命令処理部の処理手順の一例を示すフローチャートである。
【図4】拡縮率テーブルの一例を示す図である。
【図5】書体選択部の処理手順の一例を示すフローチャートである。
【図6】フォントデータの一例を示す図である。
【図7】文字間隔算出部の処理手順の一例を示すフローチャートである。
【図8】拡縮率に用いられる情報の具体例を示す図である。
【図9】指定されたフォントの幅が置換されたフォントの幅よりも狭い場合の文字列の描画例を示す図である。
【図10】指定されたフォントの幅が置換されたフォントの幅よりも広い場合の文字列の描画例を示す図である。
【符号の説明】
10…画像処理装置、11…入力I/F、12…CPU、13…ROM、14…RAM、15…プリンタエンジンI/F、20…ネットワーク、30…プリンタエンジン、121…文字描画命令処理部、122…ビットマップイメージ生成部、123…書体選択部、124…文字間隔算出部
Claims (10)
- 任意のフォントを特定する情報とそのフォントの属性情報を基にしたフォントの使用要求に応じて、複数のフォントの中から所望のフォントを選択し、この選択したフォントを用いて文字コードおよび文字描画位置情報を基に文字を出力する画像処理装置であって、
前記複数のフォント中に前記使用要求に一致するフォントが存在する場合はそのフォントを選択し、存在しない場合は指定された属性情報が近いフォントを近似フォントとして選択する選択手段と、
前記選択手段によって選択されたフォントに対応する文字を当該フォントの文字コードおよび文字描画位置情報を基に描画する描画手段と、
前記選択手段によって前記近似フォントが選択されたとき、前記描画手段による今回の描画文字と次回の描画文字との文字間の状態を予測する予測手段と、
前記描画手段による今回の描画文字を前記予測手段の予測結果に基づいて縮小または拡大する制御手段と
を備えることを特徴とする画像処理装置。 - 前記予測手段は、前記描画手段による今回の描画文字と次回の描画文字との間の文字間隔を算出する文字間隔算出手段を有し、この文字間隔算出手段の算出結果を前記予測結果とする
ことを特徴とする請求項1記載の画像処理装置。 - 前記制御手段は、前記文字間隔算出手段が算出した文字間隔が基準値よりも小のとき、前記描画手段による今回の描画文字を横書きの場合は横方向に、縦書きの場合は縦方向に縮小する
ことを特徴とする請求項2記載の画像処理装置。 - 前記制御手段は、前記文字間隔算出手段が算出した文字間隔が基準値よりも大のとき、前記描画手段による今回の描画文字を横書きの場合は横方向に、縦書きの場合は縦方向に拡大する
ことを特徴とする請求項2記載の画像処理装置。 - 前記制御手段は、前記文字間隔算出手段が算出した文字間隔に対応した縮小率または拡大率に応じて描画文字を縮小または拡大する
ことを特徴とする請求項3または4記載の画像処理装置。 - 前記制御手段は、同じフォントの描画時の縮小率または拡大率を、指定された文字コード列内の同じ文字コード間で等しくする
ことを特徴とする請求項5記載の画像処理装置。 - 前記制御手段は、同じフォントの描画時の縮小率または拡大率を、同一ページ内の同じフォント属性をもつ同じ文字コード間で等しくする
ことを特徴とする請求項5記載の画像処理装置。 - 前記制御手段は、同じフォントの描画時の縮小率または拡大率を、同一ジョブ内の同じフォント属性をもつ同じ文字コード間で等しくする
ことを特徴とする請求項5記載の画像処理装置。 - 任意のフォントを特定する情報とそのフォントの属性情報を基にしたフォントの使用要求に応じて、複数のフォントの中から所望のフォントを選択し、この選択したフォントを用いて文字コードおよび文字描画位置情報を基に文字を出力する画像処理方法であって、
前記複数のフォント中に前記使用要求に一致するフォントが存在する場合はそのフォントを選択し、存在しない場合は指定された属性情報が近いフォントを近似フォントとして選択し、
前記近似フォントを選択したとき、今回の描画文字と次回の描画文字との文字間の状態を予測し、
この予測した文字間の状態に基づいて今回の描画文字を縮小または拡大して前記文字描画位置情報を基に描画する
ことを特徴とする画像処理方法。 - 前記文字間の状態の予測を、今回の描画文字と次回の描画文字との間の文字間隔を算出してこの算出結果に基づいて行う
ことを特徴とする請求項9記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002351978A JP4140363B2 (ja) | 2002-12-04 | 2002-12-04 | 画像処理装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002351978A JP4140363B2 (ja) | 2002-12-04 | 2002-12-04 | 画像処理装置および画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004184718A true JP2004184718A (ja) | 2004-07-02 |
JP4140363B2 JP4140363B2 (ja) | 2008-08-27 |
Family
ID=32753721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002351978A Expired - Fee Related JP4140363B2 (ja) | 2002-12-04 | 2002-12-04 | 画像処理装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4140363B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009100232A (ja) * | 2007-10-16 | 2009-05-07 | Canon Inc | 画像処理装置 |
JP2009122977A (ja) * | 2007-11-15 | 2009-06-04 | Hitachi Ltd | 画面デザイン仕様書作成方法、画面デザイン仕様書作成プログラム、および、画面デザイン仕様書作成装置 |
JP2010160210A (ja) * | 2009-01-06 | 2010-07-22 | Sharp Corp | データ表示装置、データ表示方法、そのためのコンピュータプログラム、及び当該コンピュータプログラムを記録した記録媒体 |
US8300268B2 (en) | 2008-03-21 | 2012-10-30 | Brother Kogyo Kabushiki Kaisha | Image processing device |
JP2015060356A (ja) * | 2013-09-18 | 2015-03-30 | コニカミノルタ株式会社 | データ生成装置及びデータ生成プログラム並びにデータ生成方法 |
-
2002
- 2002-12-04 JP JP2002351978A patent/JP4140363B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009100232A (ja) * | 2007-10-16 | 2009-05-07 | Canon Inc | 画像処理装置 |
JP2009122977A (ja) * | 2007-11-15 | 2009-06-04 | Hitachi Ltd | 画面デザイン仕様書作成方法、画面デザイン仕様書作成プログラム、および、画面デザイン仕様書作成装置 |
US8300268B2 (en) | 2008-03-21 | 2012-10-30 | Brother Kogyo Kabushiki Kaisha | Image processing device |
JP2010160210A (ja) * | 2009-01-06 | 2010-07-22 | Sharp Corp | データ表示装置、データ表示方法、そのためのコンピュータプログラム、及び当該コンピュータプログラムを記録した記録媒体 |
JP2015060356A (ja) * | 2013-09-18 | 2015-03-30 | コニカミノルタ株式会社 | データ生成装置及びデータ生成プログラム並びにデータ生成方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4140363B2 (ja) | 2008-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281849B2 (en) | System and method for printable document viewer optimization | |
JP4140363B2 (ja) | 画像処理装置および画像処理方法 | |
JP5590960B2 (ja) | 画像形成装置、画像形成方法およびプログラム | |
JP4492082B2 (ja) | 画像出力制御方法および装置並びにプログラム | |
US20100118323A1 (en) | Image forming apparatus | |
JPH1063448A (ja) | メモリ割り振り方法及びシステム | |
JP4785601B2 (ja) | 画像形成装置 | |
JP3749068B2 (ja) | 印刷システムおよび印刷装置並びに印刷画像の確認方法 | |
JP3215169B2 (ja) | 文字処理装置及び方法 | |
JPH04348388A (ja) | 文字出力方式 | |
JP2002318680A (ja) | 画像処理装置および画像処理方法 | |
JP4325339B2 (ja) | 印刷システム、ホストコンピュータ及びプリンタドライバ | |
JP2003173446A (ja) | 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム | |
JP4844364B2 (ja) | 画像処理装置及びプログラム | |
JPH11190990A (ja) | アウトラインフォント表示・印刷方法 | |
JP2001160148A (ja) | 画像処理装置 | |
JPH09254459A (ja) | 文字処理装置、文字処理方法、及び、メモリ | |
JP3220437B2 (ja) | 出力制御装置及び方法 | |
JP2005275671A (ja) | 印刷制御装置、印刷制御方法および印刷制御プログラムを記録した媒体 | |
JPH0789150A (ja) | プリンタ制御装置 | |
JP2002337398A (ja) | 画像処理装置 | |
JPH05108295A (ja) | 文字処理方法 | |
JPH05108292A (ja) | 文字処理方法 | |
JPH06195057A (ja) | キャッシュ制御装置 | |
JPH05108294A (ja) | 文字処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051124 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070717 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070918 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080520 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080602 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110620 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110620 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120620 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130620 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140620 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |