(57)【要約】【課題】プリンタドライバにおける太線化処理に係る処理負荷を低減することで、描画処理の処理速度を向上させる。【解決手段】プリンタドライバは、アプリケーションから出力される描画命令で示される線の太さが規定値以下である描画物に対して太線化処理を行う。そこで、太線化処理の対象とならない描画物を描画領域に描画し（ａ）、太線化処理の対象となる描画物を合成領域に描画する（ｂ）。さらに、次の太線化処理の対象となる描画物の描画色が、既に合成領域に描画されている他の描画物の描画色と同一であるならば、当該描画物を合成領域に追加して描画する（ｃ）。そして、複数の描画物が描画されている合成領域をまとめて太線化し（ｄ）、この太線化した合成領域を描画命令で示され描画領域（ａ）へ合成して、合成画像（ｅ）を得る。このようにすることで、太線化処理に係る処理負荷を低減する。【選択図】図６
2010074262.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションからの描画命令で示される描画物に対する描画処理を行う情報処理装置によって実行される画像処理プログラムであって、
１の描画命令で示される描画物の太さを当該描画命令で指示されるよりも太くする太線化処理を行うか否かを判定する判定手順と、
前記判定手順により太線化処理を行うと判定された描画物を第１の描画領域に描画し、太線化処理を行わないと判定された描画物を第２の描画領域に描画する描画手順と、
前記第１の描画領域に描画されている描画物に対して前記太線化処理を実行し、その太線化された描画物を前記第２の描画領域へ合成した後、前記第１の描画領域を初期化する合成手順と、
前記判定手順により太線化処理を行うと判定された場合、前記第１の描画領域に他の描画命令で示された描画物が描画されているか否かを判定する描画判定手順と、
前記描画判定手順により、前記第１の描画領域に他の描画命令で示された描画物が描画されていると判定された場合、当該１の描画命令で示される描画条件と、前記第１の描画領域に既に描画されている描画物における描画条件とが一致するか否かを判定する描画条件判定手順とを備え、
前記描画判定手順により前記第１の描画領域に他の描画物が描画されていないと判定された場合、又は、前記描画条件判定手順により描画条件が一致すると判定された場合、前記描画手順によって、前記第１の描画領域に前記１の描画命令で示される描画物を描画し、
前記描画条件判定手順により描画条件が一致しないと判定された場合、まず、前記合成手順によって、前記第１の描画領域に描画されている描画物を太線化して、これを前記第２の描画領域へ合成した後、前記第１の描画領域を初期化し、その後、前記描画手順によって、前記合成手順により初期化された前記第１の描画領域に前記１の描画命令で示される描画物を新たに描画すること
を特徴とする画像処理プログラム。
【請求項２】
請求項１の画像処理プログラムにおいて、
前記描画条件判定手順において判定する前記描画条件とは、描画色であること
を特徴とする画像処理プログラム。
【請求項３】
請求項１又は請求項２に記載の画像処理プログラムにおいて、
前記第１の描画領域は、１画素あたり１ビットのビットマップ領域で構成されており、
前記合成手順では、前記第１の描画領域に描画されている描画物を前記第２の描画領域へ合成する際、当該描画物を示す描画命令で示される描画色で前記第２の描画領域へ合成すること
を特徴とする画像処理プログラム。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の画像処理プログラムにおいて、
前記描画手順により前記第１の描画領域に描画物が描画された際、前記第１の描画領域に描画命令で示される描画物が描画されている状態を示す変数を設定し、前記合成手順により前記第１の描画領域が初期化された際、前記変数を解除する変数設定手順を更に備え、
前記描画判定手順では、前記変数設定手順により設定された変数に基づき、前記第１の描画領域に描画物が描画されているか否かを判定すること
を特徴とする画像処理プログラム。
【請求項５】
アプリケーションからの描画命令で示される描画物に対する描画処理を行う情報処理装置と、この情報処理装置と通信可能に接続され、当該情報処理装置によって描画された画像を印刷する印刷装置とからなる画像処理システムであって、
前記情報処理装置は、
自情報処理装置上で動作するアプリケーションから出力された１の描画命令で示される描画物の太さを当該描画命令で指示されるよりも太くする太線化処理を行うか否かを判定する判定手段と、
前記判定手段により太線化処理を行うと判定された描画物を第１の描画領域に描画し、太線化処理を行わないと判定された描画物を第２の描画領域に描画する描画手段と、
前記第１の描画領域に描画されている描画物に対して前記太線化処理を実行し、その太線化された描画物を前記第２の描画領域へ合成した後、前記第１の描画領域を初期化する合成手段と、
前記判定手段により太線化処理を行うと判定された場合、前記第１の描画領域に他の描画命令で示された描画物が描画されているか否かを判定する描画判定手段と、
前記描画判定手段により、前記第１の描画領域に他の描画命令で示された描画物が描画されていると判定された場合、当該１の描画命令で示される描画条件と、前記第１の描画領域に既に描画されている描画物における描画条件とが一致するか否かを判定する描画条件判定手段とを備え、
前記描画判定手段により前記第１の描画領域に他の描画物が描画されていないと判定された場合、又は、前記描画条件判定手段により描画条件が一致すると判定された場合、前記描画手段は、前記第１の描画領域に前記１の描画命令で示される描画物を描画し、
前記描画条件判定手段により描画条件が一致しないと判定された場合、まず、前記合成手段は、前記第１の描画領域に描画されている描画物を太線化して、これを前記第２の描画領域へ合成した後、前記第１の描画領域を初期化し、その後、前記描画手段は、前記合成手段により初期化された前記第１の描画領域に前記１の描画命令で示される描画物を新たに描画し、
全ての描画命令に対して前記描画手段による描画処理を実行した後、前記合成手段による合成処理を実行し、前記第２の描画領域に描画されている画像を所定のデータ形式に変換して前記印刷装置へ出力すること
を特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ等の情報処理装置において、プリンタに出力させるための画像の描画処理を行うプリンタドライバに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ（ＰＣ）等の情報処理装置と、この情報処理装置からの情報を印刷するプリンタとからなるプリンタシステムにおいては、印刷する画像の描画処理を情報処理装置側で機能するプリンタドライバで行い、このプリンタドライバによって描画された画像をプリンタで印刷するものが知られている。
【０００３】
この種のプリンタシステムにおいて、情報処理装置のアプリケーションで作成したドキュメントを印刷する際、プリンタドライバは、アプリケーションからの描画命令に沿って文字、図形、画像等からなる印刷データをビットマップ展開し、このビットマップ展開した画像をプリンタ側でそのまま印刷できる状態に変換してからプリンタへ出力している。
【０００４】
このとき、ドキュメントに含まれる線が細過ぎたり、文字が小さ過ぎたりすると、印刷物上においてそれらの線や文字を認識できないことがある。そこで、プリンタドライバには、細い線や小さな文字を通常よりも太らせる太線化処理を行い、印刷物上でそれらの線や文字を認識しやすくするという機能を備えている。
【０００５】
例えば、特許文献１では、フォント視認性向上処理を実行するコントロール部が、画像データの印刷処理内容に応じて小さな文字を太線化する技術が開示されている。
【特許文献１】特開２００１−１４６０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、プリンタドライバによる描画処理は、例えばWindows（登録商標）等の情報処理装置のオペレーティングシステム（ＯＳ）に実装されている標準の描画関数を用いて行われる。そのため、この描画関数の仕様上の制約により、プリンタドライバによって線や文字をアプリケーションからの描画命令で示されるものより太くする処理を行う際には、以下のような手順が必要であった。
【０００７】
まず、通常の描画領域とは別に設けられた合成領域に太線化すべき描画物を一旦描画してから、その合成領域上で当該描画物を太線化する。そして、その合成領域に描かれた太線化後の描画物を描画領域に合成することで当該描画物の描画を完了する。すなわち、ＯＳに備えられた標準の描画関数を用いて描画処理を行う場合、描画命令で示される描画物を直接太線化して描画領域に描き込むことができないため、このような手順で描画を行うのである。
【０００８】
しかしながら、ドキュメントの中に太線化すべき線や文字が多数存在する場合、上述のような手順を個々の線や文字に対応する描画命令を受ける度に繰り返し行う必要があり、その結果、描画処理に要する時間が長くなるという問題があった。
【０００９】
本発明は上記問題を解決するためになされており、プリンタドライバにおける太線化処理に係る処理負荷を低減することで、描画処理の処理速度を向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた請求項１に記載の画像処理プログラムは、アプリケーションからの描画命令で示される描画物に対する描画処理を行う情報処理装置によって実行される画像処理プログラムであって、判定手順と、描画手順と、合成手順と、描画判定手順と、描画条件判定手順とを備える。
【００１１】
このうち、判定手順では、１の描画命令で示される描画物の太さを当該描画命令で指示されるよりも太くする太線化処理を行うか否かを判定する。描画手順では、判定手順により太線化処理を行うと判定された描画物を第１の描画領域に描画し、太線化処理を行わないと判定された描画物を第２の描画領域に描画する。合成手順では、第１の描画領域に描画されている描画物に対して太線化処理を実行し、その太線化された描画物を第２の描画領域へ合成した後、第１の描画領域を初期化する。描画判定手順では、判定手順により太線化処理を行うと判定された場合、第１の描画領域に他の描画命令で示された描画物が描画されているか否かを判定する。描画条件判定手順では、描画判定手順により、第１の描画領域に他の描画命令で示された描画物が描画されていると判定された場合、当該１の描画命令で示される描画条件と、第１の描画領域に既に描画されている描画物における描画条件とが一致するか否かを判定する。
【００１２】
そして、描画判定手順により第１の描画領域に他の描画物が描画されていないと判定された場合、又は、描画条件判定手順により描画条件が一致すると判定された場合、描画手順によって、第１の描画領域に１の描画命令で示される描画物を描画する。
【００１３】
一方、描画条件判定手順により描画条件が一致しないと判定された場合、まず、合成手順によって、第１の描画領域に描画されている描画物を太線化して、これを第２の描画領域へ合成した後、第１の描画領域を初期化し、その後、描画手順によって、合成手順により初期化された第１の描画領域に１の描画命令で示される描画物を新たに描画する。
【００１４】
なお、本発明の画像処理プログラムは、ＰＣ等の情報処理装置にインストールされるプリンタドライバ等に適用される。
このように構成された画像処理プログラムによれば、アプリケーションからの描画命令に示される描画条件が同一である描画物に対しては、複数の描画命令で示される描画物を第１の描画領域（合成領域）にまとめて描画し、これら複数の描画物を一括して太線化及び合成させることができる。このようにすることで、プリンタドライバによる描画処理の際の太線化処理に係る処理負荷を低減でき、描画処理の処理速度を向上させることができる。
【００１５】
なお、複数の描画物に対して一括して太線化処理するための描画条件としては、請求項２に記載のように、描画色が挙げられる。すなわち、描画色が同一の描画物をまとめて第１の描画領域に描画した上で太線化処理及び画像の合成を行うことで、太線化処理に係る処理負荷を低減できるのである。
【００１６】
さらに、請求項３に記載のように、第１の描画領域は、１画素あたり１ビットのビットマップ領域で構成されているとよい。その場合、合成手順では、第１の描画領域に描画されている描画物を第２の描画領域へ合成する際に、当該描画物を示す描画命令で示される描画色で第２の描画領域へ合成する。
【００１７】
第１の描画領域を、１画素あたり１ビットのデータで表現するビットマップ領域で構成することで、第１の描画領域を構成するのに必要なメモリの容量を最小限にすることができる。さらに、１ビットのビットマップ領域で構成された第１の描画領域には、各描画物は二値化された白黒画像として描画されるので、第１の描画領域に描画物を描き込んだり、描画物をまとめて太線化する際の処理負荷も大幅に低減できる。なお、第１の描画領域にまとめて描画されている複数の描画物は、各々の描画命令において同一の描画色が指定されている。そのため、太線化処理後の画像合成時には、その描画色にて一括して第２の描画領域に画像を合成できる。このようにすることで、画像合成時の処理負荷も低減でき、好適である。
【００１８】
つぎに、請求項４に記載の画像処理プログラムは、描画手順により第１の描画領域に描画物が描画された際、第１の描画領域に描画命令で示される描画物が描画されている状態を示す変数を設定し、合成手順により第１の描画領域が初期化された際、変数を解除する変数設定手順を更に備える。そして、描画判定手順では、変数設定手順により設定された変数に基づき、第１の描画領域に描画物が描画されているか否かを判定することを特徴とする。このように構成することで、変数設定手順により設定される変数に基づいて、描画判定手順において合成処理の要否を正確に判定することができる。
【００１９】
つぎに、請求項５に記載の画像処理システムは、アプリケーションからの描画命令で示される描画物に対する描画処理を行う情報処理装置と、この情報処理装置と通信可能に接続され、当該情報処理装置によって描画された画像を印刷する印刷装置とからなり、情報処理装置にインストールされるプリンタドライバに、請求項１に記載の画像処理プログラムを適用したものに相当する。
【００２０】
すなわち、情報処理装置は、自情報処理装置上で動作するアプリケーションから出力された１の描画命令で示される描画物の太さを当該描画命令で指示されるよりも太くする太線化処理を行うか否かを判定する判定手段と、判定手段により太線化処理を行うと判定された描画物を第１の描画領域に描画し、太線化処理を行わないと判定された描画物を第２の描画領域に描画する描画手段と、第１の描画領域に描画されている描画物に対して太線化処理を実行し、その太線化された描画物を第２の描画領域へ合成した後、第１の描画領域を初期化する合成手段と、判定手段により太線化処理を行うと判定された場合、第１の描画領域に他の描画命令で示された描画物が描画されているか否かを判定する描画判定手段と、描画判定手段により、第１の描画領域に他の描画命令で示された描画物が描画されていると判定された場合、当該１の描画命令で示される描画条件と、第１の描画領域に既に描画されている描画物における描画条件とが一致するか否かを判定する描画条件判定手段とを備える。
【００２１】
そして、描画判定手段により第１の描画領域に他の描画物が描画されていないと判定された場合、又は、描画条件判定手段により描画条件が一致すると判定された場合、描画手段は、第１の描画領域に１の描画命令で示される描画物を描画する。
【００２２】
一方、描画条件判定手段により描画条件が一致しないと判定された場合、まず、合成手段は、第１の描画領域に描画されている描画物を太線化して、これを第２の描画領域へ合成した後、第１の描画領域を初期化し、その後、描画手段は、合成手段により初期化された第１の描画領域に１の描画命令で示される描画物を新たに描画する。
【００２３】
そして、全ての描画命令に対して描画手段による描画処理を実行した後、合成手段による合成処理を実行し、第２の描画領域に描画されている画像を所定のデータ形式に変換して印刷装置へ出力する。
【００２４】
このように構成された画像処理システムによれば、請求項１に記載の画像処理プログラムと同様の効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の一実施形態を図面に基づいて説明する。なお、本発明は下記の実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り様々な態様にて実施することが可能である。
【００２６】
［画像処理システムの構成の説明］
図１は、本発明の一実施形態である画像処理システムの概略構成を示すブロック図である。この画像処理システムは、パーソナルコンピュータ１（以下、ＰＣ１と表記）と、ＰＣ１に接続されたプリンタ２とからなり、ＰＣ１上で動作するプリンタドライバによってドキュメントの描画処理を行い、ＰＣ１側で描画された画像をプリンタ２が印刷する。
【００２７】
ＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ１４（以下、ＨＤＤ１４と称する）、操作部１５、表示部１６、通信インタフェース１７等を備えている。
【００２８】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムやデータに従って、ＰＣ１各部に対する制御及び各種演算を実行する装置である。後述する印刷処理等を行うプリンタドライバとしての処理は、このＣＰＵ１１によって実行される。ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持する記憶装置で、ＢＩＯＳやＩＰＬといった一部のプログラムや通常であれば更新されない読み出し専用のデータ等を記憶している。
【００２９】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリとして利用される記憶装置である。このＲＡＭ１３には、オペレーティングシステムや各種アプリケーション等のソフトウェアがＨＤＤ１４から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１４から読み込まれたデータもＲＡＭ１３に記憶される。後述するプリンタドライバとしての処理を実行する際には、各処理をＣＰＵ１１に実行させるためのプログラムがＨＤＤ１４からＲＡＭ１３に読み込まれる。そして、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１が各処理を実行することになる。
【００３０】
ＨＤＤ１４は、ＯＳ、各種プログラム、及び各種データファイルを保存しておくための装置で、上記プリンタドライバのプログラムもＨＤＤ１４に保存されている。操作部１５は、ユーザからの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えばマウス）等によって構成される。表示部１６は、各種情報をユーザに対して提示するための出力装置であり、例えば液晶ディスプレイ等によって構成される。
【００３１】
通信インタフェース１７（以下、通信Ｉ／Ｆ１７と表記する）は、通信線やネットワーク等で構成される通信経路１７１を介してプリンタやスキャナ等の周辺機器をＰＣ１に接続するためのハードウェインタフェースである。なお、本実施形態では、この通信Ｉ／Ｆ１７を介してＰＣ１とプリンタ２とが通信可能に接続されているものと想定する。
【００３２】
ＰＣ１には、このＰＣ１に接続されたプリンタ２を制御するためのプリンタドライバがインストールされている。このプリンタドライバは、同じくＰＣ１にインストールされている上位のＯＳの管理下で動作し、ＯＳの管理下で動作する他のアプリケーションに対してプリンタ２とのインタフェースを提供するソフトウェアである。ＰＣ１のＣＰＵ１１は、このプリンタドライバのプログラムに従ってアプリケーションから出力されるドキュメントの印刷処理を行う。
【００３３】
具体的には、ＣＰＵ１１は、アプリケーションから出力される描画命令に従ってドキュメントの描画処理を行い、その描画した画像の印刷データをプリンタ２へ出力する。なお、プリンタドライバによる描画処理は、上位のＯＳ側から供給される標準の描画関数を用いて行われる。一方、プリンタ２は、ＰＣ１のプリンタドライバから出力された印刷データに基づき、ドキュメントの印刷を行う。なお、上述のドキュメントの印刷に関する一連の処理の詳細な説明については後述する。
【００３４】
［プリンタドライバによる印刷処理の説明］
図２は、ＰＣ１にインストールされているプリンタドライバのプログラムに従って、ＣＰＵ１１が実行する印刷処理のメイン処理の手順を示すフローチャートである。この印刷処理は、他のアプリケーションからのドキュメントの印刷要求によってプリンタドライバがコールされることで開始される。
【００３５】
ＣＰＵ１１は、まず、印刷対象のドキュメントにおいて、本処理が未処理のページがあるか否かを判定する（Ｓ１０１）。未処理のページがあると判定した場合（Ｓ１０１：ＹＥＳ）、そのうちの１ページを対象に画像描画処理を行う（Ｓ１０２）。この処理は、処理対象のページに含まれる各描画物に対応する描画命令をアプリケーションから順次取得し、その描画命令に従ってＲＡＭ１３上に設けられる描画領域に画像を描画する処理である。この画像描画処理の詳細な手順については後述する。
【００３６】
つぎに、Ｓ１０２で描画領域に描画された画像に対して、所定の色成分（例えば、ＣＭＹＫ）からなるカラーイメージデータに変換する色変換処理を行い（Ｓ１０３）、つづいて、その変換されたカラーイメージデータに基づいて２値カラーイメージデータを生成する２値化処理を行う（Ｓ１０４）。つぎに、このようにして作成された画像のイメージデータを所定の解像度に圧縮し（Ｓ１０５）、この圧縮したデータに各種制御コマンドを付加して、プリンタ２に適合するページ記述言語（ＰＤＬ：Page Description Language）を作成する（Ｓ１０６）。そして、この作成した１ページ分のＰＤＬデータを印刷ジョブとしてプリンタ２に送信し（Ｓ１０７）、Ｓ１０１の処理へ戻る。
【００３７】
以降、Ｓ１０１〜Ｓ１０７の処理を順次繰り返すことで、ドキュメントの各ページに対応する印刷ジョブをプリンタ２に出力する。その後、Ｓ１０１で、未処理のページが存在しないと判定した場合（Ｓ１０１：ＮＯ）、すなわち、印刷対象のドキュメントの全ページに対して本処理を実行した場合、印刷処理を終了する。
【００３８】
［プリンタドライバによる画像描画処理の説明］
つぎに、上述の印刷処理（図２）におけるＳ１０２の画像描画処理の詳細な手順を図３〜７に基づき説明する。
【００３９】
図３は、ＣＰＵ１１が実行する画像描画処理の手順を示すフローチャートである。この処理は、ＰＣ１にインストールされているプリンタドライバのプログラムに従って実行される。
【００４０】
なお、以下においては、画像描画処理に対する理解を容易にするために、図５に示す画像を描画する事例に基づいて処理の手順を説明する。この図５において、（ａ）は、画像描画処理の対象となるページの一例を示す図であり、（ｂ）は、このページを描画するために用いられる描画命令の一覧を示す説明図である。
【００４１】
図５（ａ）に示す描画処理の対象ページには、図形（円）、線（直線、曲線、楕円）、文字（ＡＢＣ，ＸＹＺ）等といった個々の描画物が合計６つ含まれている。そして、各描画物にそれぞれ対応する合計６つの描画命令がアプリケーション側で生成され、番号順にプリンタドライバへ出力される。
【００４２】
各描画命令には、図５（ｂ）に示すように、例えば、図形、線、文字といった描画内容を定義する情報と、描画物の形状やテキストの内容を定義する情報と、描画色を定義する情報と、文字の大きさ及び線の太さを定義する情報とが含まれている。
【００４３】
図３のフローチャートの説明に戻る。ＣＰＵ１１は、まず、ＲＡＭ１３上の描画領域を初期化し（Ｓ２０１）、つづいて、ＲＡＭ１３上の合成領域を初期化する（Ｓ２０２）。
ここで、描画領域とは、本発明における第２の描画領域に相当し、１つの画素について２４ビット又は３２ビットの色情報を持たせるフルカラーのビットマップ領域が用いられる。一方、合成領域とは、本発明における第１の描画領域に相当し、１つの画素について１ビットの色情報（例えば、白と黒）を持たせるビットマップ領域が用いられる。なお、描画領域と合成領域とは、互いに同じサイズ（すなわち、画素数及び縦横比が同じ）に構成されている。
【００４４】
描画領域及び合成領域を共に初期化した後、合成色を示すパラメータを「なし」にセットし、合成中フラグを「偽」にセットする（Ｓ２０３）。ここで、合成色とは、後述の合成処理（図４参照）のＳ３０２で合成領域内の描画物を描画領域へ合成する際に用いる描画色である。また、合成中フラグとは、合成領域に後述の合成処理の済んでいない描画物が描画されている状態であるか否かを示すフラグである。この合成中フラグが「真」である場合、合成領域に描画物が描画されている状態を示しており、合成中フラグが「偽」である場合、合成領域に描画物が描画されていない状態（すなわち、初期化された状態）を示している。
【００４５】
つぎに、アプリケーションから描画命令の受信を行い（Ｓ２０４）、アプリケーションから出力された描画命令があるか否かを判定する（Ｓ２０５）。ここでは、図５（ｂ）に示す描画命令の一覧のうち、まず、１番目の描画命令を受信した場合を想定し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。
【００４６】
つぎに、受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。本実施形態では、描画内容が線又は文字である描画物で、かつ、線の太さ及び文字の大きさが規定値以下のものを太線化処理の対象としており、それ以外の描画物（図形、ビットマップ画像等）については太線化処理の対象とならない。すなわち、Ｓ２０６では、描画命令で示される描画物の描画内容が、太線化処理の対象になり得るものであるか否かを判定している。今受信している１番目の描画命令においては、描画内容が「図形描画」となっており、太線化処理の対象ではないので、Ｓ２０６では否定判定をする（Ｓ２０６：ＮＯ）。
【００４７】
つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２０７）。１番目の描画命令を受信した時点では、合成中フラグは初期値の「偽」のままであるので、Ｓ２０７では否定判定をする（Ｓ２０７：ＮＯ）。そして、１番目の描画命令で示される描画物を描画領域に描き込み（Ｓ２０９）、Ｓ２０４の処理へ戻る。なお、描画領域には、描画命令で示される各種指示（形状・テキスト、描画色、文字の大きさ・線の太さ）のとおりに描画物を描画する。なお、１番目の描画命令に基づく描画を行った際の描画領域の具体例を図６（ａ）に示す。この図６（ａ）に示す描画領域の例では、１番目の描画命令で示された図形（円）が描画されている。
【００４８】
図３のフローチャートの説明に戻る。１番目の描画命令に対する描画処理を行った後、Ｓ２０４の処理へ戻り、２番目の描画命令をアプリケーションから受信し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。そして、その受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。今受信している２番目の描画命令においては、描画内容が「線描画」となっており、太線化処理の対象となり得るので、Ｓ２０６では肯定判定をする（Ｓ２０６：ＹＥＳ）。
【００４９】
つづいて、当該描画命令で示される描画物の線の太さ・文字の大きさが規定値以下であるか否かを判定する（Ｓ２１０）。この規定値とは、描画命令で示される線の太さ又は文字の大きさがその数値以下である場合、印刷結果の視認性を向上させるために太線化処理を行うことを定めた数値である。なお、本実施形態では、線の太さに対する規定値を３とし、文字の大きさに対する規定値を５と設定した場合を想定するが、実用上においては、プリンタの解像度等の条件に応じて適宜な規定値を設定すればよい。
【００５０】
今受信している２番目の描画命令においては、線の太さが２と指定されており、線の太さの規定値である３よりも細い線であるため、太線化処理の対象となる。したがって、Ｓ２１０では肯定判定をする（Ｓ２１０：ＹＥＳ）。つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２１１）。２番目の描画命令を受信した時点では合成領域に未だ何も描画されておらず、合成中フラグは初期値の「偽」のままである。したがって、Ｓ２１１では否定判定をする（Ｓ２１１：ＮＯ）。そして、２番目の描画命令で示される描画物を合成領域に描き込む（Ｓ２１４）。なお、合成領域は１ビットのビットマップ領域であるので、描画物を黒で描き込むが、描画色を黒にする以外は、描画命令で示される各種指示（形状・テキスト、文字の大きさ・線の太さ）のとおりに描画物を描画する。
【００５１】
２番目の描画命令に基づく描画を行った際の合成領域の具体例を図６（ｂ）に示す。この図６（ｂ）に示す合成領域の例では、２番目の描画命令で示された直線が描画されている。
【００５２】
図３のフローチャートの説明に戻る。２番目の描画命令で示された描画物を合成領域に描画した後、合成色を示すパラメータを当該２番目の描画命令で示される描画色（灰色）にセットし、合成中フラグを「真」にセットする（Ｓ２１５）。つぎに、Ｓ２０４の処理へ戻り、３番目の描画命令をアプリケーションから受信し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。そして、その受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。今受信している３番目の描画命令においては、描画内容が「文字描画」となっており、太線化処理の対象となり得るので、Ｓ２０６では肯定判定をする（Ｓ２０６：ＹＥＳ）。
【００５３】
つづいて、当該描画命令で示される描画物の線の太さ・文字の大きさが規定値以下であるか否かを判定する（Ｓ２１０）。今受信している３番目の描画命令においては、文字の大きさが５と指定されており、文字の大きさの規定値である５と同じであるため、太線化処理の対象となる。したがって、Ｓ２１０では肯定判定をする（Ｓ２１０：ＹＥＳ）。つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２１１）。３番目の描画命令を受信した時点では、合成領域には２番目の描画命令による描画物が描画されており、合成中フラグは「真」となっている。したがって、Ｓ２１１では肯定判定をする（Ｓ２１１：ＹＥＳ）。
【００５４】
そして、３番目の描画命令で示される描画色と、合成色のパラメータにセットされている描画色とが同一であるか否かを判定する（Ｓ２１２）。ここでは、これから合成領域に描画しようとする描画物の描画色と、合成領域に既に描画されている描画物に指定の描画色（すなわち、合成色）とが同一であるか否かを判断している。３番目の描画命令で示される描画色は灰色であり、この時点での合成色のパラメータには灰色がセットされているため、Ｓ２１２では肯定判定をする（Ｓ２１２：ＹＥＳ）。
【００５５】
そして、３番目の描画命令で示される描画物を合成領域に追加で描き込む（Ｓ２１４）。なお、合成領域は１ビットのビットマップ領域であるので、描画物を黒で描き込むが、描画色を黒にする以外は、描画命令で示される各種指示（形状・テキスト、文字の大きさ・線の太さ）のとおりに描画物を描画する。
【００５６】
３番目の描画命令で示された描画物を合成領域に描画した後、合成色を示すパラメータを当該３番目の描画命令で示される描画色（灰色）にセットし、合成中フラグを「真」にセットする（Ｓ２１５）。つぎに、Ｓ２０４の処理へ戻り、４番目の描画命令をアプリケーションから受信し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。そして、その受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。今受信している４番目の描画命令においては、描画内容が「線描画」となっており、太線化処理の対象となり得るので、Ｓ２０６では肯定判定をする（Ｓ２０６：ＹＥＳ）。
【００５７】
つづいて、当該描画命令で示される描画物の線の太さ・文字の大きさが規定値以下であるか否かを判定する（Ｓ２１０）。今受信している４番目の描画命令においては、線の太さが１と指定されており、線の太さの規定値である３よりも細い線であるため、太線化処理の対象となる。したがって、Ｓ２１０では肯定判定をする（Ｓ２１０：ＹＥＳ）。つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２１１）。４番目の描画命令を受信した時点では、合成領域には２番目、３番目の描画命令による描画物が描画されており、合成中フラグは「真」となっている。したがって、Ｓ２１１では肯定判定をする（Ｓ２１１：ＹＥＳ）。
【００５８】
そして、４番目の描画命令で示される描画色と、合成色のパラメータにセットされている描画色とが同一であるか否かを判定する（Ｓ２１２）。４番目の描画命令で示される描画色は灰色であり、この時点での合成色のパラメータも灰色にセットされているため、Ｓ２１２では肯定判定をする（Ｓ２１２：ＹＥＳ）。
【００５９】
そして、４番目の描画命令で示される描画物を合成領域に追加で描き込む（Ｓ２１４）。なお、合成領域は１ビットのビットマップ領域であるので、描画物を黒で描き込むが、描画色を黒にする以外は、描画命令で示される各種指示（形状・テキスト、文字の大きさ・線の太さ）のとおりに描画物を描画する。
【００６０】
４番目の描画命令に基づく描画を行った際の合成領域の具体例を図６（ｃ）に示す。この図６（ｃ）に示す合成領域の例では、２番目の描画命令で示された直線、３番目の描画命令で示された文字（ＡＢＣ）、及び４番目の描画命令で示された楕円が同一の画像上にまとめて描画されている。
【００６１】
図３のフローチャートの説明に戻る。４番目の描画命令で示された描画物を合成領域に描画した後、合成色を示すパラメータを当該４番目の描画命令で示される描画色（灰色）にセットし、合成中フラグを「真」にセットする（Ｓ２１５）。つぎに、Ｓ２０４の処理へ戻り、５番目の描画命令をアプリケーションから受信し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。そして、その受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。今受信している５番目の描画命令においては、描画内容が「線描画」となっており、太線化処理の対象となり得るので、Ｓ２０６では肯定判定をする（Ｓ２０６：ＹＥＳ）。
【００６２】
つづいて、当該描画命令で示される描画物の線の太さ・文字の大きさが規定値以下であるか否かを判定する（Ｓ２１０）。今受信している５番目の描画命令においては、線の太さが１と指定されており、線の太さの規定値である３よりも細い線であるため、太線化処理の対象となる。したがって、Ｓ２１０では肯定判定をする（Ｓ２１０：ＹＥＳ）。つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２１１）。５番目の描画命令を受信した時点では、合成領域には２〜４番目の描画命令による描画物が描画されており、合成中フラグは「真」となっている。したがって、Ｓ２１１では肯定判定をする（Ｓ２１１：ＹＥＳ）。
【００６３】
そして、５番目の描画命令で示される描画色と、合成色のパラメータにセットされている描画色とが同一であるか否かを判定する（Ｓ２１２）。５番目の描画命令で示される描画色は黒色であり、この時点での合成色のパラメータには灰色がセットされている。すなわち、これから合成領域に描画しようとする描画物の描画色と、合成領域に既に描画されている描画物に指定の描画色（すなわち、合成色）とが異なるため、Ｓ２１２では否定判定をする（Ｓ２１２：ＮＯ）。
【００６４】
この場合、合成領域に現在描画されている描画物を太線化し、描画領域に合成する合成処理を実行する（Ｓ２１３）。ここで、この合成処理の詳細な手順について、図４に基づき説明する。図４は、ＣＰＵ１１が実行する合成処理の手順を示すフローチャートである。この処理は、ＰＣ１にインストールされているプリンタドライバのプログラムに従って実行される。
【００６５】
ＣＰＵ１１は、まず、合成領域内の描画物を上下左右に太らせる（Ｓ３０１）。描画物の太線化は、合成領域の画像を上下左右方向へビットシフトすることにより行う。５番目の描画命令を受信している時点で行う合成処理においては、図６（ｃ）に示す合成領域を太線化することにより、合成領域は図６（ｄ）のようになる。
【００６６】
つづいて、太線化した合成領域の描画物を合成色に変換し、これを描画領域へ合成する（Ｓ３０２）。具体的には、合成領域において黒で描かれた画素に対応する描画領域の画素を、合成色のパラメータで示された描画色で塗る処理を行う。５番目の描画命令を受信している時点で行う合成処理においては、図６（ｄ）に示す合成領域を図６（ａ）に示す描画領域へ合成することで、図６（ｅ）に示す描画領域の画像を得る。
【００６７】
合成領域の描画物を描画領域へ合成した後、合成領域を初期化する（Ｓ３０３）。そして、合成色を示すパラメータを「なし」、合成中フラグを「偽」にセットし（Ｓ３０４）、合成処理を終了する。
【００６８】
図３の説明に戻る。Ｓ２１３で合成処理を実行した後、初期化された合成領域に対して、５番目の描画命令で示される描画物を描き込む（Ｓ２１４）。なお、合成領域は１ビットのビットマップ領域であるので、描画物を黒で描き込むが、描画色を黒にする以外は、描画命令で示される各種指示（形状・テキスト、文字の大きさ・線の太さ）のとおりに描画物を描画する。
【００６９】
５番目の描画命令に基づく描画を行った際の合成領域の具体例を図７（ｂ）に示す。この図７（ｂ）に示す合成領域の例では、５番目の描画命令で示された曲線だけが描画されている。
【００７０】
図３のフローチャートの説明に戻る。５番目の描画命令で示された描画物を合成領域に描画した後、合成色を示すパラメータを当該５番目の描画命令で示される描画色（黒色）にセットし、合成中フラグを「真」にセットする（Ｓ２１５）。つぎに、Ｓ２０４の処理へ戻り、６番目の描画命令をアプリケーションから受信し、Ｓ２０５では肯定判定をする（Ｓ２０５：ＹＥＳ）。そして、その受信した描画命令で示される描画内容が、線又は文字の何れかの描画を指示するものであるか否かを判定する（Ｓ２０６）。今受信している６番目の描画命令においては、描画内容が「文字描画」となっており、太線化処理の対象
となり得るので、Ｓ２０６では肯定判定をする（Ｓ２０６：ＹＥＳ）。
【００７１】
つづいて、当該描画命令で示される描画物の線の太さ・文字の大きさが規定値以下であるか否かを判定する（Ｓ２１０）。今受信している６番目の描画命令においては、線の太さが２０と指定されており、文字の大きさが規定値である５よりも大きいため、太線化処理の対象とならない。したがって、Ｓ２１０では否定判定をする（Ｓ２１０：ＮＯ）。
【００７２】
つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２０７）。６番目の描画命令を受信した時点では、合成領域には５番目の描画命令による描画物が描画されており、合成中フラグは「真」となっている。したがって、Ｓ２０７では肯定判定をする（Ｓ２０７：ＹＥＳ）。
【００７３】
この場合、合成領域に現在描画されている描画物を太線化し、描画領域に合成する合成処理を実行する（Ｓ２０８）。ここでの合成処理も、図４のフローチャートの手順で行う。まず、合成領域内の描画物を上下左右に太らせる（Ｓ３０１）。６番目の描画命令を受信している時点で行う合成処理においては、図７（ｂ）に示す合成領域を太線化することにより、合成領域は図７（ｃ）のようになる。つづいて、太線化した合成領域の描画物を合成色に変換し、これを描画領域へ合成する（Ｓ３０２）。６番目の描画命令を受信している時点で行う合成処理においては、図７（ｃ）に示す合成領域を図７（ａ）に示す描画領域へ合成することで、図７（ｄ）に示す描画領域の画像を得る。合成領域の描画物を描画領域へ合成した後、合成領域を初期化する（Ｓ３０３）。そして、合成色を示すパラメータを「なし」、合成中フラグを「偽」にセットし（Ｓ３０４）、合成処理を終了する。
【００７４】
図３の説明に戻る。Ｓ２０８で合成処理を実行した後、６番目の描画命令で示される描画物を描画領域に描き込む（Ｓ２０９）。なお、描画領域には、描画命令で示される各種指示（形状・テキスト、描画色、文字の大きさ・線の太さ）のとおりに描画物を描画する。６番目の描画命令に基づく描画を行った際の描画領域の具体例を図７（ｅ）に示す。この図７（ｅ）に示す描画領域の例では、１〜６番目の描画命令で示された各描画物が描画されている。
【００７５】
図３のフローチャートの説明に戻る。６番目の描画命令に対する描画処理を行った後、Ｓ２０４の処理へ戻る。このとき、本画像描画処理の処理対象となるページに係る描画命令は全て処理済であるので、Ｓ２０４では描画命令を受信せず、Ｓ２０５では否定判定をする（Ｓ２０５：ＮＯ）。つぎに、合成中フラグの値が「真」であるか否かを判定する（Ｓ２１６）。６番目の描画命令に対する処理を終えた時点では、合成中フラグは「偽」であるので、Ｓ２１６では否定判定をし、（Ｓ２１６：ＮＯ）、画像描画処理を終了する。一方、ＳＳ２１６で、合成中フラグの値が「真」であると判定した場合（Ｓ２１６：ＹＥＳ）、最後に合成領域の描画物を描画領域に合成する合成処理（図４参照）を実施して（Ｓ２１７）、画像描画処理を終了する。
【００７６】
［効果］
本実施形態の画像処理システムによれば、以下のような効果を奏する。
（１）アプリケーションからの描画命令で示される描画色が同一である描画物に対しては、複数の描画命令で示される描画物を合成領域にまとめて描画し、これら複数の描画物を一括して太線化して描画領域へ合成することができる。このようにすることで、太線化の対象となる描画物ごとに、毎回太線化処理及び合成処理を実施する必要がなくなる。よって、プリンタドライバによる描画処理の際の太線化処理に係る処理負荷を低減でき、描画処理の処理速度を向上させることができる。
【００７７】
（２）合成領域を１画素あたり１ビットのデータで表現するビットマップ領域で構成することで、合成領域を構成するのに必要なメモリの容量を最小限にすることができる。さらに、１ビットのビットマップ領域で構成された合成領域には、各描画物は二値化された白黒画像として描画されるので、合成領域に描画物を描き込んだり、描画物をまとめて太線化する際の処理負荷も大幅に低減できる。また、太線化した複数の描画物を描画領域に合成する際には、同一の合成色にて一括して合成するので、画像の合成に係る処理負荷も低減できる。
【００７８】
（３）合成領域に描画物が記載されている状態を示す変数として合成中フラグを用いることで、図形描画処理（図３参照）のＳ２０７、Ｓ２１０、Ｓ２１６において合成処理の要否を正確に判定することができる。
【００７９】
（４）合成処理（図３のＳ２０８，Ｓ２１３，Ｓ２１７）は、合成中フラグが「真」であり、かつアプリケーションからの描画命令がない場合、又は、合成中フラグが「真」であり、かつ直前の描画命令とは描画条件が異なる（描画内容、描画色が異なる）場合に実行される。このようなタイミングで合成処理を行うように構成したことで、アプリケーションから受けた描画命令の順序に従いつつ、描画処理の処理速度を向上させることができる。
【図面の簡単な説明】
【００８０】
【図１】画像処理システムの概略構成を示すブロック図である。
【図２】印刷処理のメイン処理手順を示すフローチャートである。
【図３】画像描画処理の手順を示すフローチャートである。
【図４】合成処理の手順を示すフローチャートである。
【図５】（ａ）は画像描画処理の対象となるページの一例を示す図であり、（ｂ）は、このページを描画する際に用いられる描画命令の一覧を示す説明図である。
【図６】描画領域及び合成領域の描画状態の推移を模式的に示す説明図である。
【図７】描画領域及び合成領域の描画状態の推移を模式的に示す説明図である。
【符号の説明】
【００８１】
１…パーソナルコンピュータ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ハードディスクドライブ、１５…操作部、１６…表示部、１７…通信インタフェース、１７１…通信経路、２…プリンタ、Ｓ２０６，Ｓ２１０…判定手順の一例、Ｓ２０９，Ｓ２１４…描画手順の一例、Ｓ２０８，Ｓ２１３，Ｓ２１７…合成手順の一例、Ｓ２１２…描画条件判定手順の一例
【図１】
2010074262.tif 000003
【図２】
2010074262.tif 000004
【図３】
2010074262.tif 000005
【図４】
2010074262.tif 000006
【図５】
2010074262.tif 000007
【図６】
2010074262.tif 000008
【図７】
2010074262.tif 000009