(57)【要約】【課題】  正確なオブジェクトの種類の判定を行う画像処理装置及びその方法を提供することを目的とする。【解決手段】  描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別する。【選択図】  図１
2005222346.tif 000002
【特許請求の範囲】
【請求項１】
描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする画像処理方法。
【請求項２】
描画を指示するコマンドを入力し、該入力コマンドによって指示される描画すべきオブジェクトの種類によらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別し、識別されたオブジェクトの種類に応じて描画を行うことを特徴とする画像処理方法。
【請求項３】
前記描画処理には色処理が含まれることを特徴とする請求項１又は請求項２に記載された画像処理方法。
【請求項４】
描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理装置であって、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別する識別手段を有することを特徴とする画像処理装置。
【請求項５】
描画を指示するコマンドを入力する入力手段と、入力コマンドによって指示される描画すべきオブジェクトの種類をよらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする画像処理装置。
【請求項６】
前記描画処理には色処理が含まれることを特徴とする請求項４又は請求項５に記載された画像処理方法。
【請求項７】
描画すべきオブジェクトの種類を識別する際、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とするプログラム。
【請求項８】
画像処理のプログラムであって、前記プログラムは少なくとも、描画オブジェクトの種類を指示するコマンドを入力するステップのコードと、描画を指示するコマンドを入力するステップのコードと、入力コマンドによって指示される描画すべきオブジェクトの種類を識別するステップのコードと、識別されたオブジェクトの種類に応じて描画を行うステップのコードとを有することを特徴とするプログラム。
【請求項９】
請求項７又は請求項８に記載されたプログラムを記録したことを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその方法に関し、例えば、描画すべきオブジェクトの種類に応じた描画処理を行う画像処理装置およびその方法に関する。
【背景技術】
【０００２】
最近のワークステーション（ＷＳ）やパーソナルコンピュータ（ＰＣ）、並びに、レーザビームプリンタ（ＬＢＰ）およびインクジェットプリンタ（ＩＪＰ）などに代表されるカラープリンタの普及により、アプリケーションソフトウェアによって作成および／または編集された各種のカラー文書が印刷出力されるようになった。
【０００３】
ただし、ユーザが望むカラー印刷出力が容易に得られるようにするには、以下に示す問題を解決しなければならない。
【０００４】
（１）ユーザがカラー文書を作成・編集するＣＲＴなどのモニタと、プリンタとは色再現範囲（ｇａｍｕｔ）が異なる。一般にモニタの色再現範囲はプリンタの色再現範囲よりも広く、プリンタは、モニタにより表現される色のすべてを再現することはできない。このため、色空間の圧縮処理（色空間マッチング）が必要になり、色空間圧縮として幾つかの手法が提案されている。しかし、どの手法が適当であるかをユーザが判断することは難しい。
【０００５】
（２）上記（１）に関連するが、モニタの色はＲＧＢの加色混法で表現され、プリンタの色はＣＭＹＫの減色混法であるから、モニタで確認された複数色の混合色と、プリンタによって得られる混合色とは異なる可能性がある。
【０００６】
（３）最近のプリンタは高解像度、例えば１２００ｄｐｉや６００ｄｐｉであり、７２ｄｐｉ程度のモニタによるプレビューに比べて、遥かに高精細な印刷を必要とし、用途に応じた適切なハーフトーニング（二値化、多値化、量子化など）を選択する必要がある。
【０００７】
（４）ＬＢＰに代表される電子写真方式のプリンタは、系時変化やエンジンの個体差により微妙に色味が異なる場合がある。色味の差異を制御する方法が幾つか提案されているが、ある種類のオブジェクト（データ）には有効であるが、別種のオブジェクト（データ）には副作用が出る場合などがある。
【０００８】
また、カラー文書には、特徴が異なる各種オブジェクト、例えばテキスト、グラフィックス、イメージなどが含まれている。例えば、テキストには１バイトで示されるアルファニューメリック文字や、２バイトの漢字などがあり、イメージは二次元に配列された画素をもち、各画素毎に異なるカラー情報をもつ。そして、イメージは、効率化のために圧縮されている場合もある。また、グラフィックスは、ライン、並びに、多角形の輪郭および内部領域で表現される。
【０００９】
印刷出力において良好な色再現を実現するには、各オブジェクトの特徴に応じて、上記の問題を解決する処理が必要になる。具体的な解決策として、描画コマンドの形式に応じて、そのコマンドにより示されるオブジェクトの種類を判別する技術がある（特許文献１参照）。
【００１０】
その技術によれば、アプリケーションソフトウェアが発行するテキストコマンドに基づくオブジェクトはすべてテキストオブジェクトとして描画される。
【特許文献１】特開平７−２３６０６６
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の手法ではプリンタドライバに渡される描画コマンドのみを手がかりに各種オブジェクトの種類を判別するため、正確なオブジェクトの識別が出来ないことがあった。以下、テキスト描画における具体例を示す。
【００１２】
図１は、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（Ｒ）シリーズが稼動している印刷システムにおけるアプリケーションからプリンタドライバに到るテキスト描画の処理フローを例示している。図１の様にアプリケーションがＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ。以後ＧＤＩと称する）に対しテキスト描画を行い、それを受けてＧＤＩがプリンタドライバへテキスト描画を指示すれば、プリンタドライバは正しくテキストオブジェクトと判別出来る。
【００１３】
一方、図２は図１と同様にアプリケーションがＧＤＩに対しテキスト描画を行っているが、ＧＤＩはフォントのポイントが非常に大きいためプリンタドライバへグラフィック描画を指示している。このような場合、プリンタドライバは本来テキストオブジェクトと判別すべきものを誤ってグラフィックオブジェクトと判別してしまう。
【００１４】
図３は、アプリケーションがテキストを描画を行う際、文字形状をビットマップとして抽出してイメージ描画を行うため、ＧＤＩはそれを受けてプリンタドライバへイメージ描画を行う。このような場合、プリンタドライバは本来テキストオブジェクトと判別すべきものを誤ってイメージオブジェクトと判別してしまう。
【００１５】
本発明は、上述の問題を個々にまたはまとめて解決するためのものであり、正確なオブジェクトの種類の判定を行う画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１７】
本発明にかかる画像処理方法は、描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする。
【００１８】
また、描画を指示するコマンドを入力し、該入力コマンドによって指示される描画すべきオブジェクトの種類によらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別し、識別されたオブジェクトの種類に応じて描画を行うことを特徴とする。
【００１９】
本発明にかかる画像処理装置は、描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理装置であって、オブジェクトの描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別する識別手段を有することを特徴とする。
【００２０】
また、描画を指示するコマンドを入力する入力手段と、入力コマンドによって指示される描画すべきオブジェクトを識別されたオブジェクトの種類に応じて描画を行う描画手段とを有し、前記識別手段は、入力コマンドによって指示される描画すべきオブジェクトの種類によらず外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする。
【発明の効果】
【００２１】
以上説明したように本発明によれば、正確な描画オブジェクトの種類の判定を行う画像処理が可能となる。
【発明を実施するための最良の形態】
【００２２】
以下添付図面を参照して、本発明にかかる第一実施形態を詳細に説明する。
【００２３】
なお、以下では、本発明をカラープリンタに適用する例を説明するが、モノクロプリンタに対しても同様に適用可能であることはいうまでもない。
【００２４】
＜第１実施形態＞
［構成］
図４は第１実施形態のホストコンピュータシステムの構成例を示すブロック図である。
【００２５】
図４において、ホストコンピュータ５０２は、プリントデータおよび制御コードからなる印刷情報を印刷装置１００に出力する。ホストコンピュータ５０２は、入力デバイスであるキーボード２１００、ポインティングデバイスであるマウス２１１０、および、表示デバイスであるディスプレイモニタ２２００などを組み合わせたホストコンピュータシステムとして構成され、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（Ｒ）シリーズなどの基本オペレーティングシステム（ＯＳ）が稼動している。
【００２６】
ホストコンピュータ５０２について、本実施形態に関する機能的な部分にのみ注目し、基本ＯＳ上での機能を大きく分類すると、アプリケーションソフトウェア２０１０、画像情報処理手段であるグラフィックサブシステム２０２０、スプールサブシステム２０３０、および、ユーザインタフェイス処理部（ＵＩ）２０４０に分類される。
【００２７】
グラフィックサブシステム２０２０は、基本ＯＳの機能の一部であるグラフィックスデバイスインタフェイス（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ：  ＧＤＩ）２０２１、および、ＧＤＩ２０２１から動的にリンクされるデバイスドライバであるプリンタドライバ２０２２によって構成される。
【００２８】
プリンタドライバ２０２２は、アプリケーションソフトウェア２０１０からＧＤＩ描画命令（関数）としてコールされる命令をページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：  ＰＤＬ）に変換するのが大きな役割である。また、プリンタドライバ２０２２は、ユーザに指定されたモード、および、ＧＤＩ描画命令の種類に応じて、カラーマネージメントシステム（Ｃｏｌｏｒ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ：ＣＭＳ）モジュール２０２３、および、色調整モジュール２０２４に色処理を依頼する。
【００２９】
スプールサブシステム２０３０は、グラフィックサブシステム２０２０の後段に位置するプリンタデバイスに特有のサブシステムで、データ格納手段であるスプールファイル２０３１（実態はハードディスクなど）、および、スプールファイル２０３１に蓄えられたＰＤＬコードを読み出して印刷装置１００における処理の進行状況を監視するプロセスモニタ２０３４などから構成される。
【００３０】
ＵＩ２０４０は、基本ＯＳより提供される関数を利用しながら、印刷品位の制御パラメータを決定すべく、各種メニューボタンなどをディスプレイモニタ２２００に表示し、キーボード２１００やマウス２１１０を介したユーザアクションを解析する。
【００３１】
上述した構成（モジュール）の名称や機能的な枠組みは、基本ＯＳによって若干異なる場合があるが、各技術的手段が実現可能なモジュールであればよく、それらの名称や枠組みの差異は本実施形態の実施に影響を与えることはない。例えば、スプーラやスプールファイル２０３１は、他のＯＳにおいてはプリントキューと呼ばれるモジュールに処理を組み込むことによって実現可能である。
【００３２】
なお、一般に、これらの機能モジュールを含むホストコンピュータ５０２とは、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスクドライブ（ＨＤＤ）および各種入出力制御部（Ｉ／Ｏ）などから構成されるハードウェア上で、基本ＯＳなどのソフトウェアがそれらハードウェアの制御を司り、基本ＯＳの基でアプリケーションソフトウェア２０１０のプロセスやサブシステムのプロセスが機能モジュールとして動作するものである。
【００３３】
［プリンタドライバの処理］
以下、プリンタドライバ２０２２が実行する処理を図５に示すフローチャートに従い説明する。
【００３４】
ユーザが、ホストコンピュータ５０２上で稼動する、あるアプリケーションソフトウェア２０１０から印刷の開始を指示すると、ＵＩ２０４０により印刷の制御パラメータを設定するための印刷ダイアログがディスプレイモニタ２２００に表示される（Ｓ４０００）。そして、印刷ダイアログ上でユーザにより、出力プリンタ、記録紙サイズ、印刷部数および印刷品質などの各種設定が行われ、印刷が指示される（Ｓ４０１０）。
【００３５】
印刷が指示されると、アプリケーションソフトウェア２０１０によって作成・編集された画像を示す描画データが、印刷ジョブとしてＧＤＩ２０２１を介してプリンタドライバ２０２２に渡され、プリンタドライバ２０２２は該印刷ジョブの初期化を行う（Ｓ４０２０）。
【００３６】
プリンタドライバ２０２２は次に該印刷ジョブのページ毎の初期化を行い（Ｓ４０３０）、続いて描画を行う（Ｓ４０４０）が、この描画の詳細については後述する。
【００３７】
ページ単位の描画後は改ページ等の後処理を行い（Ｓ４０５０）、ステップＳ４０６０でまだ印刷すべきページが残っていればステップＳ４０３０へ戻って次ページの処理を行うが、ページの終端であればステップＳ４０７０に進んで印刷ジョブの後処理を行った後、印刷処理を終了する。
【００３８】
以下、ステップＳ４０４０に示した描画処理について、図６を参照して説明する。図６は、アプリケーション２０１０とＧＤＩ２０２１とプリンタドライバ２０２２間におけるエスケープコマンドと各描画コマンド（テキストコマンド、イメージ・コマンド、グラフィックスコマンド）のインタフェースを示す図である。
【００３９】
ここでアプリケーション２０１０は、説明を簡易化するために以後もアプリケーションと称するが、実際にはＧＤＩに描画を要求できるモジュールならばアプリケーション以外でもかまわない。プリンタドライバとして提供されるモジュールの一部であっても一向にかまわない。
【００４０】
エスケープコマンド５０１０は、プリンタドライバ２０２２の内部に実装されるエスケープコマンド処理関数ＤｒｖＥｓｃａｐｅやＤｒｖＤｒａｗＥｓｃａｐｅを、ＧＤＩ２０２１が呼び出すことを意味する。アプリケーションが、ＧＤＩ２０２１に対しエスケープを発行すると、ＧＤＩ２０２１をバイパスし、エスケープコードとデータはそのままプリンタドライバ２０２２に渡る。
【００４１】
なお、エスケープコマンド処理関数の名称は、Ｗｉｎｄｏｗｓ（Ｒ）ＮＴ／Ｗｉｎｄｏｗｓ（Ｒ）２０００においてはＤｒｖＥｓｃａｐｅやＤｒｖＤｒａｗＥｓｃａｐｅだが、Ｗｉｎｄｏｗｓ（Ｒ）Ｍｅ／９８／９５／３．１においてはＣｏｎｔｒｏｌである。基本ＯＳによってこれらの名称や機能は若干異なるが、基本的な考え方は同様である。
【００４２】
ＤｒｖＥｓｃａｐｅ関数の呼び出しは、例えば、次のようになる。ここでは主なパラメータだけを紹介する。
【００４３】
ＤｒｖＥｓｃａｐｅ（ｐ１、ｐ２、ｐ３、ｐ４、ｐ５）
パラメータｐ１：エスケープコード。
【００４４】
パラメータｐ２：入力データのサイズ。
【００４５】
パラメータｐ３：入力データ。
【００４６】
パラメータｐ４：出力データサイズ。
【００４７】
パラメータｐ５：出力データ。
【００４８】
テキストコマンド５０２０は、プリンタドライバ２０２２の内部に実装されるテキスト処理関数ＤｒｖＴｅｘｔＯｕｔを、ＧＤＩ２０２１が呼び出すことを意味する。アプリケーションが、ＧＤＩ２０２１に対しテキスト描画を行うと、ＧＤＩ２０２１はプリンタドライバのテキストコマンド（ＤｒｖＴｅｘｔＯｕｔ関数）をコールすることが多い。また、このとき図２で例示したように、アプリケーション２０１０とＧＤＩ２０２１間と、ＧＤＩ２０２１とプリンタドライバ間では、必ずしも対にならない。テキストコマンド５０２０は、プリンタドライバ２０２２に実装されたテキスト処理関数（ＤｒｖＴｅｘｔＯｕｔ関数）のＧＤＩ２０２１による呼び出しを意味する。
【００４９】
なお、テキスト処理関数の名称は、Ｗｉｎｄｏｗｓ（Ｒ）ＮＴ／Ｗｉｎｄｏｗｓ（Ｒ）２０００においてはＤｒｖＴｅｘｔＯｕｔだが、Ｗｉｎｄｏｗｓ（Ｒ）Ｍｅ／９８／９５／３．１においてはＥｘｔＴｅｘｔＯｕｔである。基本ＯＳによってこれらの名称や機能は若干異なるが、基本的な考え方は同様である。
【００５０】
ＤｒｖＴｅｘｔＯｕｔ関数の呼び出しは、例えば、次のようになる。ここでは主なパラメータだけを紹介する。
【００５１】
ＤｒｖＴｅｘｔＯｕｔ（ｐ１、ｐ２、ｐ３、ｐ４、ｐ５、ｐ６）
パラメータｐ１：文字列情報が格納された変数名。文字列が含まれる。
【００５２】
パラメータｐ２：フォント情報が格納された変数名。文字サイズが含まれる。
【００５３】
パラメータｐ３：文字装飾領域が格納された変数名。ＮＵＬＬの場合は装飾線なし。
【００５４】
パラメータｐ４：文字背景領域が格納された変数名。ＮＵＬＬの場合は文字背景は透明。
【００５５】
パラメータｐ５：文字色が格納された変数名。
【００５６】
パラメータｐ６：文字背景色が格納された変数名。
【００５７】
テキストコマンドと同様に、イメージ・コマンド５０３０は、プリンタドライバ２０２２に実装されたイメージ処理関数（ＤｒｖＣｏｐｙＢｉｔｓ、ＤｒｖＢｉｔＢｌｔ、ＤｒｖＳｔｒｅｔｃｈＢｌｔ関数等）のＧＤＩ２０２１による呼び出しを意味し、グラフィックスコマンド５０４０は、プリンタドライバ２０２２に実装されたグラフィックス処理関数（ＤｒｖＳｔｒｏｋｅＰａｔｈ、ＤｒｖＦｉｌｌＰａｔｈ、ＤｒｖＳｔｒｏｋｅＡｎｄＦｉｌｌＰａｔｈ関数等）のＧＤＩ２０２１による呼び出しを意味する。
【００５８】
プリンタドライバ２０２２は、これら各コマンドに対応する各描画オブジェクトの種類に応じて、カラー調整やカラーマッチング処理を行う。そして、カラーマッチング処理が行われた色情報をＰＤＬコマンドに変換することによって、描画処理が行われる。
【００５９】
以下、ステップＳ４０４０における描画処理について、図７以降のフローチャートを参照して詳細に説明する。
【００６０】
次に、図６のエスケープコマンド処理部５０１０を図７に示すフローチャートに従い説明する。
【００６１】
まず、アプリケーション２０１０とプリンタドライバ２０２２の間で認識可能なエスケープコード４つを規定する。
【００６２】
＃ｄｅｆｉｎｅ  ＵＮＫＮＯＷＮ＿ＯＢＪ０ｘ２４１０
＃ｄｅｆｉｎｅ  ＴＥＸＴ＿ＯＢＪ０ｘ２４１１
＃ｄｅｆｉｎｅ  ＩＭＡＧＥ＿ＯＢＪ０ｘ２４１２
＃ｄｅｆｉｎｅ  ＧＲＡＰＨＩＣ＿ＯＢＪ０ｘ２４１３
これらの値に特に意味は無く、ＧＤＩや一般のアプリケーションなどで定義済みのエスケープコードと重複しない限りどのような値を定義してもかまわない。
【００６３】
エスケープコードがＴＥＸＴ＿ＯＢＪのとき（Ｓ７０１０）、ｄｒａｗｏｂｊ変数にＴＥＸＴ＿ＯＢＪを代入する（Ｓ７０２０）。このｄｒａｗｏｂｊ変数は、印刷ジョブ中保持される。初期値はＵＮＫＮＯＷＮ＿ＯＢＪである。エスケープコードがＩＭＡＧＥ＿ＯＢＪのとき（Ｓ７０３０）、ｄｒａｗｏｂｊ変数にＩＭＡＧＥ＿ＯＢＪを代入する（Ｓ７０４０）。エスケープコードがＧＲＡＰＨＩＣ＿ＯＢＪのとき（Ｓ７０５０）、ｄｒａｗｏｂｊ変数にＧＲＡＰＨＩＣ＿ＯＢＪを代入する（Ｓ７０６０）。エスケープコードがＵＮＫＮＯＷＮ＿ＯＢＪのとき（Ｓ７０７０）、ｄｒａｗｏｂｊ変数にＵＮＫＮＯＷＮ＿ＯＢＪを代入する（Ｓ７０８０）。以上のエスケープコード以外のときは、本実施案と無関係な処理を行う（Ｓ７０９０）。
【００６４】
次に、図６のテキストコマンド処理部５０２０を図８に示すフローチャートに従い説明する。
【００６５】
まず、ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ８０１０）。等しい場合、テキストオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ８０２０）。ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪ以外のときは、ＧＲＡＰＨＩＣ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ８０３０）。等しい場合、グラフィックオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ８０４０）。ｄｒａｗｏｂｊ変数がＧＲＡＰＨＩＣ＿ＯＢＪ以外のときは、ＩＭＡＧＥ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ８０５０）。等しい場合、イメージオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ８０６０）。以上の色処理を終えた後、テキストの描画処理を行う（Ｓ８０７０）。
【００６６】
次に、図６のイメージ・コマンド処理部５０３０を図９に示すフローチャートに従い説明する。
【００６７】
まず、ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ９０１０）。等しい場合、イメージオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ９０２０）。ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪ以外のときは、ＧＲＡＰＨＩＣ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ９０３０）。等しい場合、グラフィックオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ９０４０）。ｄｒａｗｏｂｊ変数がＧＲＡＰＨＩＣ＿ＯＢＪ以外のときは、ＴＥＸＴ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ９０５０）。等しい場合、テキストオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ９０６０）。以上の色処理を終えた後、イメージの描画処理を行う（Ｓ９０７０）。
【００６８】
次に、図６のグラフィックコマンド処理部５０４０を図１０に示すフローチャートに従い説明する。
【００６９】
まず、ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ１００１０）。等しい場合、グラフィックオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ１００２０）。ｄｒａｗｏｂｊ変数がＵＮＫＮＯＷＮ＿ＯＢＪ以外のときは、ＴＥＸＴ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ１００３０）。等しい場合、テキストオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ１００４０）。ｄｒａｗｏｂｊ変数がＧＲＡＰＨＩＣ＿ＯＢＪ以外のときは、ＩＭＡＧＥ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ１００５０）。等しい場合、イメージオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ１００６０）。以上の色処理を終えた後、グラフィックの描画処理を行う（Ｓ１００７０）。
【００７０】
アプリケーション２０１０がＧＤＩ２０２１に対し描画命令を発行したとき、プリンタドライバ２０２２のオブジェクトの識別はどのように行われるかを、図１１に示す時系列の遷移状態例に従い説明する。
【００７１】
Ｓ１１０１０でアプリケーション２０１０は、エスケープを使って以下に続く描画が全てテキストオブジェクトであることをプリンタドライバ２０２２に通知する。つまりエスケープコードＴＥＸＴ＿ＯＢＪがプリンタドライバ２０２２に届く。このため次のエスケープが発行されるまで（Ｓ１１０４０）、プリンタドライバ２０２２はＳ１１０２０とＳ１１０３０の描画をテキストオブジェクトと判別する。もし、Ｓ１１０１０を指定しないと、図２の例が示すようにプリンタドライバ２０２２はＳ１１０２０をグラフィックオブジェクトと判別することがありえる。Ｓ１１０３０は図３の例と同じである。アプリケーション２０１０はイメージ描画を行っているが、描画されるビットマップがテキストであるため、プリンタドライバ２０２２にテキストオブジェクトとみなすよう指示している。
【００７２】
Ｓ１１０４０でアプリケーション２０１０は、エスケープを使って以下に続く描画が全てイメージオブジェクトであることをプリンタドライバ２０２２に通知する。つまりエスケープコードＩＭＡＧＥ＿ＯＢＪがプリンタドライバ２０２２に届く。このため次のエスケープが発行されるまで（Ｓ１１０６０）、プリンタドライバ２０２２はＳ１１０５０の描画をイメージオブジェクトと判別する。
【００７３】
Ｓ１１０６０でアプリケーション２０１０は、エスケープを使って以下に続く描画が全てグラフィックオブジェクトであることをプリンタドライバ２０２２に通知する。つまりエスケープコードＧＲＡＰＨＩＣ＿ＯＢＪがプリンタドライバ２０２２に届く。このため次のエスケープが発行されるまで（Ｓ１１０８０）、プリンタドライバ２０２２はＳ１１０７０の描画をイメージオブジェクトと判別する。
【００７４】
Ｓ１１０８０でアプリケーション２０１０は、エスケープを使って以下に続く描画を判定しないようにプリンタドライバ２０２２に通知する。つまりエスケープコードＵＮＫＮＯＷＮ＿ＯＢＪがプリンタドライバ２０２２に届く。このためプリンタドライバ２０２２はＳ１１０９０の描画がグラフィックコマンドであるのでグラフィックオブジェクトと判別する。
【００７５】
（他の実施形態）
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７８】
【図１】印刷処理におけるＧＤＩからプリンタドライバまでの描画処理例１。
【図２】印刷処理におけるＧＤＩからプリンタドライバまでの描画処理例２。
【図３】印刷処理におけるＧＤＩからプリンタドライバまでの描画処理例３。
【図４】本実施形態におけるホストシステム構成図。
【図５】プリンタドライバによる印刷処理フロー図。
【図６】アプリケーションとＧＤＩとプリンタドライバの構成図。
【図７】本発明の第一実施形態を示すエスケープ・コマンドの処理フロー図。
【図８】本発明の第一実施形態を示すテキスト・コマンドの処理フロー図。
【図９】本発明の第一実施形態を示すイメージ・コマンドの処理フロー図。
【図１０】本発明の第一実施形態を示すグラフィック・コマンドの処理フロー図。
【図１１】描画処理の遷移状態例。
【図１】
2005222346.tif 000003
【図２】
2005222346.tif 000004
【図３】
2005222346.tif 000005
【図４】
2005222346.tif 000006
【図５】
2005222346.tif 000007
【図６】
2005222346.tif 000008
【図７】
2005222346.tif 000009
【図８】
2005222346.tif 000010
【図９】
2005222346.tif 000011
【図１０】
2005222346.tif 000012
【図１１】
2005222346.tif 000013