(57)【要約】      （修正有）【課題】透過画像の描画命令を不透過画像に変換する際に、他の描画オブジェクトへの影響を抑えることができる情報処理装置、プリンタドライバ、情報処理方法を提供する。【解決手段】入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定し、当該判定された変換対象の画像描画命令について、くり抜き描画命令に変換し、当該変換されたくり抜き描画命令に基づいて、描画コマンドを生成する。【選択図】図６
2019185365.tif 000002
【特許請求の範囲】
【請求項１】
入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知手段と、
前記検知手段で判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換手段と、
前記変換手段で変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、前記アルファチャンネルのアルファ値により完全透過の画素と完全不透過の画素とで構成されていると判定される画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、当該画像の描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在し、かつ、前記アルファチャンネルのアルファ値により完全透過の画素と完全不透過の画素とで構成されていると判定される画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、当該画像の描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在する画像の描画命令を、前記変換対象の画像描画命令として判定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記検知手段は、前記入力された描画命令が、前記アルファチャンネルのアルファ値に基づいて、半透過の画素を含む画像の描画命令であると判定された場合、前記半透過の画素に関して、当該描画命令により描画される画像の背後に存在する別の描画命令による描画オブジェクトを合成することにより完全不透過の画素とし、当該合成後の画像が完全透過の画素と完全不透過の画素とで構成されている場合に、当該合成後の画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記アルファチャンネルのアルファ値が０の画素が完全透過の画素であり、前記アルファチャンネルのアルファ値が２５５の画素が完全不透過の画素であり、前記アルファチャンネルのアルファ値が１〜２５４のいずれかである画素が半透過の画素である、ことを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記変換手段は、前記変換対象の画像描画命令について、前記アルファチャンネルのアルファ値により示される完全不透過の画素の領域を描画対象の領域とし、かつ、前記アルファチャンネルのアルファ値により示される完全透過の画素の領域を描画対象外の領域とした、前記くり抜き描画命令に変換することを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記変換手段は、前記くり抜き描画命令として、ＲＯＰ描画命令を用いることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記変換手段は、前記検知手段で判定された前記変換対象の画像描画命令に基づいて、前記アルファチャンネルを削除した画像を生成し、前記アルファチャンネルのアルファ値により示される完全不透過の画素と完全透過の画素とに基づいて二値画像を生成し、前記アルファチャンネルを削除した画像と前記二値画像とＲＯＰコードとを用いたくり抜き描画命令を生成し、前記変換対象の画像描画命令を当該生成したくり抜き描画命令に変換する、ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記変換手段は、前記くり抜き描画命令として、Ｍａｓｋ描画命令を用いることを特徴とする請求項７に記載の情報処理装置。
【請求項１１】
前記変換手段は、前記くり抜き描画命令として、Ｃｌｉｐ描画命令を用いることを特徴とする請求項７に記載の情報処理装置。
【請求項１２】
コンピュータを、請求項１乃至１１のいずれか１項に記載の情報処理装置の各手段として機能させるためのプリンタドライバ。
【請求項１３】
請求項１２に記載のプリンタドライバを格納した、コンピュータ読取可能な記憶媒体。
【請求項１４】
情報処理装置の検知手段が、入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知ステップと、
情報処理装置の変換手段が、前記検知ステップで判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換ステップと、
情報処理装置の生成手段が、前記変換ステップで変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成ステップと、
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画命令の処理に関するものである。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ用プリンタドライバには、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）プリンタドライバとＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリンタドライバ（以降Ｖ４プリンタドライバと呼ぶ）がある。ＧＤＩプリンタドライバは、ＧＤＩを解釈して印刷データを生成するドライバであり、Ｖ４プリンタドライバはＸＰＳを解釈して印刷データを生成するプリンタドライバである。
【０００３】
従来型のアプリケーションは、印刷処理を行う際、ＧＤＩ描画命令をＧＤＩプリンタドライバに対して出力する。本明細書では、このようなＧＤＩ描画命令を出力するアプリケーションを、ＧＤＩアプリケーションと呼ぶこととする。一方、Ｖ４プリンタドライバに対応している新たなアプリケーションは、印刷処理を行う際に、Ｖ４プリンタドライバに対してＸＰＳ描画命令を直接出力する。本明細書では、このようなＸＰＳ描画命令を出力可能なアプリケーションをＸＰＳアプリケーションと呼ぶこととする。Ｖ４プリンタドライバではＸＰＳ描画命令が渡されることになる。
【０００４】
ＧＤＩ描画命令とＸＰＳ描画命令とのそれぞれにおける画像描画の違いのひとつとして、透過画像の扱いの可否がある。ＧＤＩ描画命令は透過画像を扱うことができないが、ＸＰＳ描画命令では透過画像を扱うことが可能である。なお、透過画像とは、各画素についてアルファ値（Ａｌｐｈａ値）が指定されている画像（すなわち、アルファチャンネルを有する画像）である。一般的に、アルファ値が０〜２５５の範囲で表される場合、アルファ値＝０のときが完全透明、アルファ値＝２５５のときが完全不透明を示している。
【０００５】
また、プリンタは、プリンタドライバから受信した印刷データに基づいて、印刷処理に用いるイメージデータを生成した後、用紙に印刷を行う。印刷データは、ページ記述言語（ＰＤＬ）のコマンドによって構成されており、ＰＤＬコマンドは描画の種類や大きさ、色、位置などを定義するための制御コードである。ＰＤＬには多くの種類が存在し、それぞれのＰＤＬで規定されているコマンドの種類や、表現できる描画が異なる。その中でもＰＣＬ（登録商標）は世界中で広く利用されているＰＤＬの１つである。しかしながら、ＰＣＬでは、透過画像を描画するコマンドが規定されていない。その為、ＰＣＬ形式の印刷データを出力するＶ４プリンタドライバでは、透過画像の描画命令が入力された場合、該プリンタドライバにて、透過画像と背後のオブジェクトとを合成して不透過の画像に変換する処理などを実行することによって、透過画像を含まないＰＣＬコマンドにして印刷データを生成する必要が生じる。
【０００６】
しかしながら、透過画像と背後のオブジェクトとの合成処理を行って不透過画像に変換すると、背後に存在していたオブジェクトによる描画は画像の描画として扱われることになる。その具体例を図１に示す。図１（Ａ）は、入力されるＸＰＳ描画命令に含まれる複数の描画命令に対応する複数のオブジェクト間の上下関係を示す概念図を表している。１０１は、透過画像の描画命令を描画した場合の透過画像オブジェクトの矩形領域を示している。透過画像オブジェクト１０１内の星マークの形状を有する領域は完全不透明（アルファ値＝２５５）であり、星マーク以外の領域は完全透明（アルファ値＝０）であったとする。１０２は文字の描画命令による文字オブジェクトを示しており、透過画像オブジェクト１０１の背後に存在している。ＰＣＬコマンドを生成する際は透過画像を不透過画像に変換する必要があるが、透過画像オブジェクト１０１全体を単に不透過の画像に変換するだけだとその背後の文字ブジェクト１０２が見えなくなってしまう。したがって、透過画像オブジェクト１０１を不透過画像に変換する際に、透過画像オブジェクト１０１のアルファ値に基づいて、背景のオブジェクトと合成する処理も行う。図１（Ｂ）は、図１（Ａ）の透過画像オブジェクト１０１を不透過画像に変換する際に、透過画像オブジェクト１０１の描画とその背景にある文字オブジェクト１０２の描画とを合成した結果として得られる不透過画像のオブジェクト１１１の一例を表している。一般に、ＰＣＬの出力はこの形態となる。１１３は、文字オブジェクト１０２の描画が透過画像オブジェクト１０１と合成されて不透過画像に変換された様子を示している。尚、文字オブジェクト１０２の描画命令自体は、文字オブジェクト１１２のＰＣＬ形式の描画コマンドとして残してもよいが、その上に不透過画像１１１が描画されるので、印刷処理時はその領域は不透過画像１１１によって描画された画像描画として扱われることになる。図２は不透過画像描画をＰＣＬで出力した場合のコマンド例の概要である。左からＰＣＬコマンド、コマンド付属情報、コマンド付属情報値である。通常、ＰＣＬによる画像描画は、“ＢｅｇｉｎＩｍａｇｅ”、“ＲｅａｄＩｍａｇｅ”、“ＥｎｄＩｍａｇｅ”のＰＣＬコマンドを用いて描画する。
【０００７】
文字画像１１３は不透過画像と合成されているので画像描画となっており、テキスト描画の描画コマンドではなくなっている。その結果、プリンタにおいて該ＰＣＬを解釈して印刷処理を実行する際に、その領域は画像描画として扱われるので、テキスト描画に適した処理が行われなくなる。テキスト描画に適した処理とは、例えば、スムージング処理や図形の黒色を黒トナーのみで印刷する処理などである。このように、透過画像を不透過画像に変換する際に、それに重なる別の種類の描画オブジェクト（文字オブジェクトや線画等のグラフィックオブジェクトなど）を合成して不透過画像に変換すると、その別の種類の描画オブジェクトの本来の属性（テキスト属性やグラフィック属性）は失われる。すなわち、透過画像の背後に存在した文字やグラフィックなどの描画オブジェクトによる描画は、不透過画像と合成されることにより、画像属性の描画として処理されてしまうことになり、テキスト属性の描画に適した処理やグラフィック属性の描画に適した処理が実行されずに印刷されてしまう。
【０００８】
特許文献１では、プリンタが、画像を重ね合わせる際に、上に重ねる画像の透過率に応じて、各画素の属性を、上に重ねる画像の属性と下にある画像の属性とのどちらにするか決める方法が開示されている。しかし、特許文献１は、プリンタにおいて透過画像を合成するものであり、そもそもＰＣＬのような透過描画を扱うことができないＰＤＬでは透過画像を扱えないので、特許文献１の手法をそのまま適用することができない。また、プリンタドライバ側で透過画像を背後の描画オブジェクトと合成する際に、特許文献１の合成手法を適用したとしても、ＰＣＬでは、画像に対して画素毎に描画属性を指定する手段がないため、ＰＣＬを用いて合成後の画像について画素単位で属性をプリンタへ送信することはできない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−０１６７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
透過画像を扱うことができないＰＤＬを出力するプリンタドライバにおいて、透過画像を含む描画命令が入力されて、当該入力された透過画像の描画命令を不透過画像に変換する際に、その透過画像の背後に存在していた描画オブジェクトを合成して該不透過画像を生成するように構成すると、背後の描画オブジェクトによる描画部分も画像属性として扱われてしまい、本来の描画属性で処理されない、という問題があった。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の情報処理装置は、入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知手段と、前記検知手段で判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換手段と、前記変換手段で変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、透過画像の描画命令を不透過画像に変換する際に、他の描画オブジェクトへの影響を抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】透過画像が背景と合成され、不透過画像に変換される例を示した図である。
【図２】ＰＣＬを用いた画像描画のコマンド概要例を示した図である。
【図３】本実施例の情報処理システム構成の一例を示したブロック図である。
【図４】本実施例のソフトウエア構成を示すシステム構成図である。
【図５】実施例における本発明にかかるシステム全体を示すフローチャートである。
【図６】最適化処理のフローチャートである。
【図７】くり抜き描画命令への変換対象を検知する検知処理のフローチャートである。
【図８】くり抜き描画変換処理のフローチャートである。
【図９】くり抜き描画にＲＯＰ描画を用いる際に使用する画像例を示した図である。
【図１０】ＰＣＬを用いたＲＯＰ描画のコマンド概要例を示した図である。
【図１１】ＲＯＰ描画の概要例を示した図である。
【図１２】Ｍａｓｋ描画命令およびＣｌｉｐ描画命令を用いたくり抜き描画の例を示した図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１５】
まず、本実施例の説明で用いる用語についての定義をまとめておく。
【００１６】
「アルファ値（Ａｌｐｈａ値）」とは、透明度を表す値であり、本実施例では、０（完全透過）〜２５５（完全不透過）の範囲の値で示される。完全透過の領域はアルファ値＝０の領域であり、半透過の領域はアルファ値＝１〜２５４の領域であり、不透過の領域はアルファ値＝２５５の領域である。「ＲＧＢＡ画像」とは、各画素のアルファ値を指定するためのアルファチャンネル（Ａ）を有するＲＧＢ画像である。
【００１７】
「ＲＯＰ（Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ）描画」とは、描画先の画像（デスティネーション画像）の各画素に対して、ソース画像とパターン画像とを用いて、ＲＯＰコードで指定された論理演算を行うことにより、ＲＯＰ描画後の各画素の値を決定する描画方法である。「ＲＯＰコード」は、複数種類のコードがあり、各コードに対し予め定められた演算式が割り当てられている。本実施例で使用するＲＯＰコードの詳細については後述する。
【００１８】
図３は、本実施形態における情報処理装置７と印刷装置６とを含む情報処理システムの構成例である。中央処理装置１は、補助記憶装置３（ＨＤＤ，ＳＳＤ，ＦＤ，ＣＤ−ＲＯＭ，ＩＣメモリカード等の記憶媒体）からシステムプログラムやアプリケーションプログラムやプリンタドライバを主記憶装置２にロードして実行するプロセッサである。中央処理装置１は、入力装置４から入力される指示に基づいて情報を処理して、処理結果を表示装置５や印刷装置６に出力する。なお、本実施例では、表示装置５はディスプレイであり、処理結果の情報を表示する。また、入力装置４はキーボード、ポインティングデバイス等で構成されているものとする。また、印刷装置６は、情報処理装置７とネットワーク等を介して接続されていても構わない。なお、本発明を実現するためのプリンタドライバ等のプログラムは、ネットワーク又はコンピュータ読取可能な各種記憶媒体を介して装置或いはシステムに供給されるものであってもよい。
【００１９】
図４は本実施形態におけるソフトウエア構成例であり、中央処理装置（プロセッサ）１が各プログラムを実行することにより、各処理部１２〜１８として機能する。中央処理装置１は、ＯＳ８のプログラムを実行することにより、情報処理装置７全体を制御する。
【００２０】
プリンタドライバ１１は、ＯＳ８上で実行され、かつ、印刷装置を制御するためのプログラムであり、中央処理装置を各処理部１２〜１７として機能させるためのモジュールを含んでいる。
【００２１】
１２はユーザーが各種印刷設定を入力したり、印刷開始指示をしたりするためのユーザーインタフェース部である。
【００２２】
レイアウト処理部１３は、文書作成等を行うアプリケーション（不図示）から印刷時に指定される描画命令を受け、Ｎ−ｕｐ（Ｎｉｎ１）などレイアウトに関する変換を行う。
【００２３】
印刷データ制御部１４は、レイアウト処理部１３からレイアウト変換処理済みの描画命令を受け、印刷装置において処理できるデータを作成する。この印刷データ制御部１４は、本発明である印刷システムにおける情報処理装置側の重要な処理を含む。
【００２４】
最適化処理部１５は、透過画像が入力された場合に、透過画像の背後にある描画オブジェクトが適切に出力されるように描画命令を変換する処理を行う。
【００２５】
描画コマンド生成部１６は、最適化処理部１５から渡される描画命令に基づき、ＰＤＬの描画コマンドを作成する。
【００２６】
印刷データ制御部１７は、描画コマンド生成部１６により作成された描画コマンドに対し、印刷データ全体を制御するための印刷ジョブの設定等を行って、出力先の印刷装置に対応したＰＤＬの印刷データに変更する。印刷ジョブの設定とは、例えば、ＰＪＬなどを用いて印刷ジョブ自体の設定を行うものである。
【００２７】
データ送受信部１８は、ＯＳの機能であり、印刷装置６とデータの送受信を行う。データ送受信部１８は、印刷データ制御部１７で生成された印刷データを後述する印刷装置６へ送信する。印刷装置６は、受信した印刷データに応じた印刷処理を行う。
【００２８】
以上のように構成された本発明の実施の形態にかかるプリンタドライバの動作を、図を用いて説明する。なお、本フローに係るプリンタドライバ１１のプログラムは、補助記憶装置３に記憶されており、主記憶装置２に読み出され中央処理装置１によって実行される。
【００２９】
図５は、中央処理装置（プロセッサ）１がプリンタドライバ１１を実行することによって行われる処理フローである。ユーザーが、文書作成等を行うアプリケーションにおいて印刷を実行すると、該アプリケーションから出力された描画命令が、プリンタドライバ１１へ渡ってくる。そこでこのフローチャートがスタートする。
【００３０】
ステップＳ５０１において、プリンタドライバ１１のレイアウト処理部１３は、入力された描画命令を解析して、レイアウト変換等を行う。
【００３１】
ステップＳ５０２において、プリンタドライバ１１の最適化処理部１５は、レイアウト処理部１３から受け取った描画命令に対して最適化処理を行う。ここでは、図６を用いて後述するように、Ｓ５０１のレイアウト変換処理済みの描画命令の中から、くり抜き描画に変換すべき描画命令を判定して、その描画命令をくり抜き描画に変換することによって、中間データを生成する。
【００３２】
ステップＳ５０３において、プリンタドライバ１１の描画コマンド生成部１６は、Ｓ５０２の最適化処理の結果として得られる中間データ（後述）を、印刷装置で処理可能な描画コマンドに変換する。ここでは、例えば、中間データにＡｌｐｈａチャンネルを含む描画命令が残っていれば、そのＡｌｐｈａチャンネルを削除したり、別の描画に置き換えるなどして、印刷装置で処理可能な描画コマンドに変換する処理が行われる。なお、描画コマンドとは具体的にはＰＳ（Ａｄｏｂｅ社製）やＰＣＬ（ＨＰ社製）などのＰＤＬ描画コマンドを指す。本明細書において、特に断りが無い限り、出力されるＰＤＬの形式はＰＣＬとする。また、中間データとは、プリンタドライバ１１内で描画命令を処理する途中のデータ形式であり、Ｓ５０２の最適化処理実行後の描画命令そのままであってもよいし、最適化処理実行後の描画命令をプリンタドライバ独自の形式にしたものであってもよい。中間データの形式の違いによって本発明には影響は無い。
【００３３】
ステップＳ５０４において、プリンタドライバ１１の印刷データ制御部１７は、Ｓ５０３で生成されたＰＤＬ描画コマンドに印刷ジョブの設定を行って印刷データを生成し、印刷データ送受信部１８を介して、印刷装置６へ当該生成した印刷データを送信する。印刷装置６は、受信した印刷データをレンダリング及びハーフトーン化したのち紙へ印字し、印刷処理が完了する。
【００３４】
図６は、ステップＳ５０２で説明した最適化処理の詳細を示すフローチャートである。
【００３５】
Ｓ６０１において、最適化処理部１５は、レイアウト処理部１３から受信した描画命令に含まれる各画像描画命令を順に処理対象として、以降のステップＳ６０２、Ｓ６０３、Ｓ６０４を繰り返し実行する。
【００３６】
ステップＳ６０２において、最適化処理部１５は、処理対象の画像描画命令が「くり抜き描画命令へ変換すべき描画命令」であるかを判定するための「変換対象検知処理」を行う。
【００３７】
ステップＳ６０３において、最適化処理部１５は、Ｓ６０２における検知処理の結果、Ｓ６０１で処理対象とされた画像描画が、くり抜き描画命令への変換対象の画像描画であると判断された場合はステップＳ６０４へ処理を進める。一方、Ｓ６０３でくり抜き描画命令への変換対象の画像描画でないと判断された場合は、ステップＳ６０１に進んで、次の処理対象とすべき画像描画があるか判断し、あれば次の処理対象の画像描画に対してＳ６０２〜Ｓ６０４の処理を行い、なければ図６のフローを終了して、Ｓ５０３の処理に進む。
【００３８】
ステップＳ６０４において、最適化処理部１５は、変換対象と判断された画像描画の描画命令に対して、くり抜き描画に変換するためのくり抜き描画変換処理を行う。くり抜き描画変換処理の詳細については、図８を用いて後述する。
【００３９】
図７は、図６のステップＳ６０２の「くり抜き描画命令へ変換すべき描画命令であるかを判定するための変換対象検知処理」の詳細を示すフローチャートである。
【００４０】
ステップＳ７０１において、最適化処理部１５は、当該処理対象の画像描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在するかを判断する。もし背後に別の描画命令による描画オブジェクトが存在していなければ、本発明の課題は発生しないので、ステップＳ７０７へ進む。一方、背後に別の描画命令による描画オブジェクトが存在する場合はステップＳ７０２へ処理を進める。
【００４１】
ステップＳ７０２において、最適化処理部１５は、当該処理対象の画像描画命令がＡｌｐｈａチャンネルを含む画像であるかどうかを判断する。当該処理対象の画像描画命令がＡｌｐｈａチャンネルを含まない場合にはステップＳ７０７へ進み、Ａｌｐｈａチャンネルを含む場合にはステップＳ７０３へ進む。
【００４２】
ステップＳ７０３において、最適化処理部１５は、該処理対象の画像描画命令が、Ａｌｐｈａチャンネルに０（完全透過）と２５５（完全不透過）のいずれかのＡｌｐｈａ値が設定された画素のみで構成されている画像であるかどうかを判断する。すなわち、半透過の画素（Ａｌｐｈａチャンネルの値が１〜２５４の画素）を含まない画像描画命令であるかどうかを判断する。Ａｌｐｈａチャンネルの値が１〜２５４の画素を含まない画像描画命令であると判断した場合はステップＳ７０５へ進む。一方、Ａｌｐｈａチャンネルの値が１〜２５４の画素を含む画像描画命令であると判断した場合（すなわち、半透過の画素を含む画像描画命令であると判断した場合）は、ステップＳ７０４へ処理を進める。
【００４３】
ステップＳ７０４において、最適化処理部１５は、該処理対象の画像描画命令内の半透過領域（Ａｌｐｈａ値が１〜２５４である画素の領域）についてのみ、背後の別の描画オブジェクトとの合成処理を行って、その領域の画素のＡｌｐｈａ値を２５５（完全不透過）とする。尚、完全透過領域（Ａｌｐｈａ値が０の画素の領域）、ならびに、完全不透過領域（Ａｌｐｈａ値が２５５の画素の領域）については、背後の別の描画オブジェクトとの合成処理を行わない。
【００４４】
ステップＳ７０５において、最適化処理部１５は、処理対象の画像描画が、Ａｌｐｈａ値が２５５（完全不透過）の画素のみで構成されている画像であるかどうかを判断する。なお、Ｓ７０４の処理を経由していた場合は合成後の画像描画がＳ７０５での判断対象となる。Ａｌｐｈａ値が２５５である画素のみで構成されている画像であると判断した場合はステップＳ７０７へ進み、Ａｌｐｈａ値が０である画素を含む画像であると判断した場合はステップＳ７０６へ処理を進める。ただし、Ａｌｐｈａ値が０（完全透過）である画素のみで構成される画像描画である場合には、その画像描画自体を削除してもよい。
【００４５】
ステップＳ７０６において、最適化処理部１５は、当該処理対象の画像描画命令が「変換対象」であると判定する。
【００４６】
ステップＳ７０７において、最適化処理部１５は、当該処理対象の画像描画命令が「変換対象」で無いと判定する。
【００４７】
尚、ステップＳ７０１，Ｓ７０２，Ｓ７０３，Ｓ７０５の判定の順序を入れ替えて実行するように構成しても、変換対象検知処理を実現することが可能である。
【００４８】
また、ステップＳ７０１において、最適化処理部１５は、処理対象の画像描画命令の背後にある別の描画命令が、画像の描画命令のみであると判定した場合には、ステップＳ７０２に進んでも良い。なぜなら、背後にある別の描画命令がもともと画像の描画命令であれば、当該処理対象の画像描画命令に合成されても、属性は画像属性のままで変わらず、問題にならない為である。
【００４９】
このように、図７の変換対象検知処理のフローチャートにより、描画命令の中から、くり抜き描画へ変換すべき変換対象の描画命令を検知することができる。
【００５０】
また、図７で示したように、Ａｌｐｈａチャンネルを有する画像の描画命令であっても、背後に別の描画オブジェクトが存在しない画像の描画命令や、Ａｌｐｈａ値が２５５の画素のみで構成される画像の描画命令については、くり抜き描画命令への変換の対象外としている。これにより、Ａｌｐｈａチャンネルを有する画像の描画命令すべてを、くり抜き描画命令に変換する必要がなくなるので、くり抜き描画命令への変換処理の負荷を低減することができる。
【００５１】
図８は、図６のステップＳ６０４のくり抜き描画変換処理の詳細を示すフローチャートである。図９に具体的な画像例を示しながら説明する。図９（Ａ）は、図７で変換対象の画像描画命令であると判定された画像の例である。図９（Ａ）の画像では、互いに画素値が異なる４つの領域（Ａ−１〜Ａ−４）に分かれており、それぞれの領域における（Ｒ，Ｇ，Ｂ，Ａ）の値を示している。
【００５２】
なお、くり抜き描画命令とは、矩形状の画像のうち、描画対象としたい領域（くり抜き対象領域）のみをくり抜いて描画し、それ以外の領域（くり抜き対象外の領域）については描画を行わないようにする描画命令である。くり抜き対象外の領域については、その描画命令による描画が行われないので、それ以前に描画済みの画素値がそのまま残るようになる。
【００５３】
本実施例では、くり抜き描画命令として、ＲＯＰ描画を用いたくり抜き描画命令について説明する。また、本実施例では、変換対象の画像描画命令を「ＲＯＰ描画によるくり抜き描画命令」に変換する際、ＲＯＰコードとして「Ｅ２」を用いる場合を例として説明するが、ＲＯＰコードは「Ｅ２」に限るものではない。
【００５４】
ステップＳ８０１において、最適化処理部１５は、変換対象の画像描画命令による画像に基づいて、Ａｌｐｈａチャンネルを削除した画像を、パターン画像として生成する。図９（Ｐ）は、図９（Ａ）の画像からＡｌｐｈａチャンネルを削除することにより得られる画像例である。
【００５５】
ステップＳ８０２において、最適化処理部１５は、変換対象の画像描画命令におけるＡｌｐｈａチャンネルのＡｌｐｈａ値に基づいて、完全不透過ピクセル（Ａｌｐｈａ値が２５５の画素）を１、完全透過ピクセル（Ａｌｐｈａ値が０の画素）を０とした二値画像を、ソース画像として生成する。図９（Ｓ）は、図９（Ａ）の画像からＳ８０２により得られる画像例である。
【００５６】
ステップＳ８０３において最適化処理部（１５）は、Ｓ８０１とＳ８０２で生成したパターン画像とソース画像を用いたＲＯＰ描画命令を発行する。具体的には、ＲＯＰコードとして「Ｅ２」、パターン画像としてＳ８０１で生成した画像、ソース画像としてＳ８０２で生成した画像を設定したＲＯＰ描画命令を発行する。そして、当該変換対象の画像描画命令を当該発行されたＲＯＰ描画命令で置換する。
【００５７】
このＲＯＰ描画命令を用いて描画を行うと、Ａｌｐｈａチャンネル削除後の画像（図９（Ｐ））のうち、図９（Ｓ）の二値画像の画素値１に対応する領域（Ｂ−１〜Ｂ−３の領域）がくり抜き対象領域として描画され、それ以外の領域（Ｂ−４の領域）が描画対象外となる。すなわち、変換対象の画像描画命令（例えば図９（Ａ））は、Ａｌｐｈａチャンネルを含まない画像描画命令（図９（Ｐ））に変換され、かつ、変換対象の画像描画命令にて完全不透過であった画素の領域（Ａ−１〜Ａ−３）をくり抜き対象（描画対象）とするＲＯＰ描画命令に変換される。
【００５８】
図１０は、図８で説明した処理により、ＲＯＰ描画を用いたくり抜き描画命令に変換された後のＰＣＬコマンド例である。まず、“ＳｅｔＲＯＰ”を用いて、ＲＯＰコード「Ｅ２」を設定する。
【００５９】
次に”ＢｅｇｉｎＲａｓｔＰａｔｔｅｒｎ”，”ＲｅａｄＲａｓｔＰａｔｔｅｒｎ”，”ＥｎｄＲａｓｔＰａｔｔｅｒｎ”を用いて、Ｐａｔｔｅｒｎ画像を設定し、”ＳｅｔＢｒｕｓｈＳｏｕｒｃｅ”，”ＢｅｇｉｎＩｍａｇｅ”，”ＲｅａｄＩｍａｇｅ”，”ＥｎｄＩｍａｇｅ”を用いて、Ｓｏｕｒｃｅ画像を設定してＰＣＬコマンドのＲＯＰ描画を用いたコマンド列が完成する。
【００６０】
図１１はＲＯＰコード「Ｅ２」を用いた場合のくり抜き描画命令の概要を示した図である。１１０１はある描画領域において、それ以前の描画命令（すなわち、変換対象画像の背後の描画オブジェクトの描画命令）によって描画した画像（Ｄｅｓｔｉｎａｔｉｏｎ画像と呼ぶ）の例を示している。ＲＯＰ描画を用いたくり抜き描画命令は、Ｐａｔｔｅｒｎ画像１１０２、Ｓｏｕｒｃｅ画像１１０３、ＲＯＰコード１１０４で構成される。Ｄｅｓｔｉｎａｔｉｏｎ画像１１０１に対して、このくり抜き描画命令を実行した結果が１１０６となる。ＲＯＰコード「Ｅ２」は、Ｓｏｕｒｃｅ画像が１（白）に対応する領域についてはＰａｔｔｅｒｎ画像の画素値で描画され、Ｓｏｕｒｃｅ画像が０（黒）に対応する領域についてはＤｅｓｔｉｎａｔｉｏｎ画像の画素値がそのまま残るような論理演算である。
【００６１】
なお、上述したように、ＲＯＰコードは「Ｅ２」に限るものではなく、例えば、ＲＯＰコードとして「Ｂ８」を用いることも可能である。ＲＯＰコード「Ｂ８」を用いる場合は、Ｓ８０２で生成される二値画像における１，０を反転させてソース画像とすれば、ＲＯＰコード「Ｅ２」を用いた場合と同様のくり抜き描画結果を得ることができる。
【００６２】
また、「Ｅ２」、「Ｂ８」と異なる別のＲＯＰコードを用いて、くり抜き描画命令を発行することも可能である。また、ＲＯＰコードの種類によっては、ステップＳ８０１で生成されるＡｌｐｈａチャンネルを削除した画像をソース画像とし、ステップＳ８０２で生成される二値画像をパターン画像とする場合もありうる。例えば、ＲＯＰコード「ＣＡ」を用いる場合は、ステップＳ８０１で生成されるＡｌｐｈａチャンネルを削除した画像をソース画像とし、ステップＳ８０２で生成される二値画像をパターン画像とすればよい。また、ＲＯＰコード「ＡＣ」を用いる場合は、ステップＳ８０１で生成されるＡｌｐｈａチャンネルを削除した画像をソース画像とし、ステップＳ８０２で生成される二値画像の１，０を反転させた画像をパターン画像とすればよい。
【００６３】
いずれのＲＯＰコードを用いる場合も、変換対象画像からＡｌｐｈａチャンネルを削除した画像を生成し、変換対象画像にて完全不透過であった画素に対応する領域をくり抜き対象領域（描画対象領域）とし、前記くり抜き対象領域については、前記生成されたＡｌｐｈａチャンネル削除後の画像における前記くり抜き対象領域が、描画先のメモリ（背後の描画オブジェクトの描画命令によって描画済みの画像が格納されているメモリ）に描画され、それ以外の領域については描画対象外領域としてメモリ内に格納済みの元の画素値がそのまま残るような演算となるようにする。
【００６４】
以上述べたように、プリンタドライバに入力された描画命令のうち、くり抜き描画に変換すべき変換対象の描画命令を検知し、変換対象の描画命令をくり抜き描画に変換することにより、透過画像を不透過画像に変換する際に、その透過画像の背後に存在していた文字やグラフィック等の描画オブジェクトができるだけ不透過画像に合成されないようにする。これにより、文字やグラフィック等の描画オブジェクトに対応する部分は、本来の描画属性で処理することが可能となる。
【実施例２】
【００６５】
実施例１では、くり抜き描画命令としてＲＯＰ描画を用いる例を示したが、ＲＯＰ描画に限るものではなく、変換対象の画像中の特徴に応じて、ＲＯＰ描画以外のくり抜き描画命令を使用することも可能である。図１２は、その他のくり抜き描画命令の例を示した図である。
【００６６】
例えば、Ｍａｓｋ描画命令に対応しているＰＤＬであれば、図１２（Ａ）のように、くり抜き描画命令としてＭａｓｋ描画命令を用いることができる。これは、Ａｌｐｈａチャンネル削除後の画像１２０１の中で、どのピクセルを描画するかを１２０２に示した画像（Ｍａｓｋ画像と呼ばれる）が表現している描画である。Ｍａｓｋ画像１２０２は、図９（Ｓ）の作成方法と同様に、Ａｌｐｈａチャンネルが完全不透過であった画素に対応する画素を１とし、完全透過であった画素に対応する画素を０とすることで作成できる。
【００６７】
また、図１２（Ｂ）は、くり抜き描画命令として、Ｃｌｉｐ描画命令を用いる例である。これは、Ａｌｐｈａチャンネル削除後の画像１２１１の中で、どのピクセルを描画するかを１２１２のようなベクター情報で表現している描画である。ベクター情報１２１２に関しては、Ａｌｐｈａチャンネルが完全不透過であった画素と完全透過であった画素の境界を抽出する、もしくは、二値画像１２０２を作成してその二値画像内のエッジを抽出することにより作成できる。
【００６８】
以上述べたように、実施例２によれば、ＰＤＬの種類によっては、くり抜き描画命令として、Ｍａｓｋ描画命令やＣｌｉｐ描画命令を利用することが可能となる。
【図１】
2019185365.tif 000003
【図２】
2019185365.tif 000004
【図３】
2019185365.tif 000005
【図４】
2019185365.tif 000006
【図５】
2019185365.tif 000007
【図６】
2019185365.tif 000008
【図７】
2019185365.tif 000009
【図８】
2019185365.tif 000010
【図９】
2019185365.tif 000011
【図１０】
2019185365.tif 000012
【図１１】
2019185365.tif 000013
【図１２】
2019185365.tif 000014