JP2019185365A - 情報処理装置、プリンタドライバ、情報処理方法 - Google Patents

情報処理装置、プリンタドライバ、情報処理方法 Download PDF

Info

Publication number
JP2019185365A
JP2019185365A JP2018075086A JP2018075086A JP2019185365A JP 2019185365 A JP2019185365 A JP 2019185365A JP 2018075086 A JP2018075086 A JP 2018075086A JP 2018075086 A JP2018075086 A JP 2018075086A JP 2019185365 A JP2019185365 A JP 2019185365A
Authority
JP
Japan
Prior art keywords
image
drawing command
command
converted
information processing
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.)
Pending
Application number
JP2018075086A
Other languages
English (en)
Inventor
仁 長坂
Hitoshi Nagasaka
仁 長坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018075086A priority Critical patent/JP2019185365A/ja
Priority to US16/362,493 priority patent/US20190311234A1/en
Publication of JP2019185365A publication Critical patent/JP2019185365A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • G06K15/1838Rasterization from outline-coded data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1867Post-processing of the composed and rasterized print image
    • G06K15/1889Merging with other data
    • G06K15/189Merging with other data adding a background, e.g. a pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/12Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by photographic printing, e.g. by laser printers
    • G06K15/129Colour printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1852Generation of the printable image involving combining data of different types
    • G06K15/1855Combining raster data and graphic primitives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1867Post-processing of the composed and rasterized print image
    • G06K15/1889Merging with other data
    • G06K15/1893Form merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】透過画像の描画命令を不透過画像に変換する際に、他の描画オブジェクトへの影響を抑えることができる情報処理装置、プリンタドライバ、情報処理方法を提供する。【解決手段】入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定し、当該判定された変換対象の画像描画命令について、くり抜き描画命令に変換し、当該変換されたくり抜き描画命令に基づいて、描画コマンドを生成する。【選択図】図6

Description

本発明は、描画命令の処理に関するものである。
Windows用プリンタドライバには、GDI(Graphics Device Interface)プリンタドライバとXPS(XML Paper Specification)プリンタドライバ(以降V4プリンタドライバと呼ぶ)がある。GDIプリンタドライバは、GDIを解釈して印刷データを生成するドライバであり、V4プリンタドライバはXPSを解釈して印刷データを生成するプリンタドライバである。
従来型のアプリケーションは、印刷処理を行う際、GDI描画命令をGDIプリンタドライバに対して出力する。本明細書では、このようなGDI描画命令を出力するアプリケーションを、GDIアプリケーションと呼ぶこととする。一方、V4プリンタドライバに対応している新たなアプリケーションは、印刷処理を行う際に、V4プリンタドライバに対してXPS描画命令を直接出力する。本明細書では、このようなXPS描画命令を出力可能なアプリケーションをXPSアプリケーションと呼ぶこととする。V4プリンタドライバではXPS描画命令が渡されることになる。
GDI描画命令とXPS描画命令とのそれぞれにおける画像描画の違いのひとつとして、透過画像の扱いの可否がある。GDI描画命令は透過画像を扱うことができないが、XPS描画命令では透過画像を扱うことが可能である。なお、透過画像とは、各画素についてアルファ値(Alpha値)が指定されている画像(すなわち、アルファチャンネルを有する画像)である。一般的に、アルファ値が0〜255の範囲で表される場合、アルファ値=0のときが完全透明、アルファ値=255のときが完全不透明を示している。
また、プリンタは、プリンタドライバから受信した印刷データに基づいて、印刷処理に用いるイメージデータを生成した後、用紙に印刷を行う。印刷データは、ページ記述言語(PDL)のコマンドによって構成されており、PDLコマンドは描画の種類や大きさ、色、位置などを定義するための制御コードである。PDLには多くの種類が存在し、それぞれのPDLで規定されているコマンドの種類や、表現できる描画が異なる。その中でもPCL(登録商標)は世界中で広く利用されているPDLの1つである。しかしながら、PCLでは、透過画像を描画するコマンドが規定されていない。その為、PCL形式の印刷データを出力するV4プリンタドライバでは、透過画像の描画命令が入力された場合、該プリンタドライバにて、透過画像と背後のオブジェクトとを合成して不透過の画像に変換する処理などを実行することによって、透過画像を含まないPCLコマンドにして印刷データを生成する必要が生じる。
しかしながら、透過画像と背後のオブジェクトとの合成処理を行って不透過画像に変換すると、背後に存在していたオブジェクトによる描画は画像の描画として扱われることになる。その具体例を図1に示す。図1(A)は、入力されるXPS描画命令に含まれる複数の描画命令に対応する複数のオブジェクト間の上下関係を示す概念図を表している。101は、透過画像の描画命令を描画した場合の透過画像オブジェクトの矩形領域を示している。透過画像オブジェクト101内の星マークの形状を有する領域は完全不透明(アルファ値=255)であり、星マーク以外の領域は完全透明(アルファ値=0)であったとする。102は文字の描画命令による文字オブジェクトを示しており、透過画像オブジェクト101の背後に存在している。PCLコマンドを生成する際は透過画像を不透過画像に変換する必要があるが、透過画像オブジェクト101全体を単に不透過の画像に変換するだけだとその背後の文字ブジェクト102が見えなくなってしまう。したがって、透過画像オブジェクト101を不透過画像に変換する際に、透過画像オブジェクト101のアルファ値に基づいて、背景のオブジェクトと合成する処理も行う。図1(B)は、図1(A)の透過画像オブジェクト101を不透過画像に変換する際に、透過画像オブジェクト101の描画とその背景にある文字オブジェクト102の描画とを合成した結果として得られる不透過画像のオブジェクト111の一例を表している。一般に、PCLの出力はこの形態となる。113は、文字オブジェクト102の描画が透過画像オブジェクト101と合成されて不透過画像に変換された様子を示している。尚、文字オブジェクト102の描画命令自体は、文字オブジェクト112のPCL形式の描画コマンドとして残してもよいが、その上に不透過画像111が描画されるので、印刷処理時はその領域は不透過画像111によって描画された画像描画として扱われることになる。図2は不透過画像描画をPCLで出力した場合のコマンド例の概要である。左からPCLコマンド、コマンド付属情報、コマンド付属情報値である。通常、PCLによる画像描画は、“BeginImage”、“ReadImage”、“EndImage”のPCLコマンドを用いて描画する。
文字画像113は不透過画像と合成されているので画像描画となっており、テキスト描画の描画コマンドではなくなっている。その結果、プリンタにおいて該PCLを解釈して印刷処理を実行する際に、その領域は画像描画として扱われるので、テキスト描画に適した処理が行われなくなる。テキスト描画に適した処理とは、例えば、スムージング処理や図形の黒色を黒トナーのみで印刷する処理などである。このように、透過画像を不透過画像に変換する際に、それに重なる別の種類の描画オブジェクト(文字オブジェクトや線画等のグラフィックオブジェクトなど)を合成して不透過画像に変換すると、その別の種類の描画オブジェクトの本来の属性(テキスト属性やグラフィック属性)は失われる。すなわち、透過画像の背後に存在した文字やグラフィックなどの描画オブジェクトによる描画は、不透過画像と合成されることにより、画像属性の描画として処理されてしまうことになり、テキスト属性の描画に適した処理やグラフィック属性の描画に適した処理が実行されずに印刷されてしまう。
特許文献1では、プリンタが、画像を重ね合わせる際に、上に重ねる画像の透過率に応じて、各画素の属性を、上に重ねる画像の属性と下にある画像の属性とのどちらにするか決める方法が開示されている。しかし、特許文献1は、プリンタにおいて透過画像を合成するものであり、そもそもPCLのような透過描画を扱うことができないPDLでは透過画像を扱えないので、特許文献1の手法をそのまま適用することができない。また、プリンタドライバ側で透過画像を背後の描画オブジェクトと合成する際に、特許文献1の合成手法を適用したとしても、PCLでは、画像に対して画素毎に描画属性を指定する手段がないため、PCLを用いて合成後の画像について画素単位で属性をプリンタへ送信することはできない。
特開2002−016783号公報
透過画像を扱うことができないPDLを出力するプリンタドライバにおいて、透過画像を含む描画命令が入力されて、当該入力された透過画像の描画命令を不透過画像に変換する際に、その透過画像の背後に存在していた描画オブジェクトを合成して該不透過画像を生成するように構成すると、背後の描画オブジェクトによる描画部分も画像属性として扱われてしまい、本来の描画属性で処理されない、という問題があった。
上記課題を解決するために、本発明の情報処理装置は、入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知手段と、前記検知手段で判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換手段と、前記変換手段で変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成手段と、を有することを特徴とする。
本発明によれば、透過画像の描画命令を不透過画像に変換する際に、他の描画オブジェクトへの影響を抑えることができる。
透過画像が背景と合成され、不透過画像に変換される例を示した図である。 PCLを用いた画像描画のコマンド概要例を示した図である。 本実施例の情報処理システム構成の一例を示したブロック図である。 本実施例のソフトウエア構成を示すシステム構成図である。 実施例における本発明にかかるシステム全体を示すフローチャートである。 最適化処理のフローチャートである。 くり抜き描画命令への変換対象を検知する検知処理のフローチャートである。 くり抜き描画変換処理のフローチャートである。 くり抜き描画にROP描画を用いる際に使用する画像例を示した図である。 PCLを用いたROP描画のコマンド概要例を示した図である。 ROP描画の概要例を示した図である。 Mask描画命令およびClip描画命令を用いたくり抜き描画の例を示した図である。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
まず、本実施例の説明で用いる用語についての定義をまとめておく。
「アルファ値(Alpha値)」とは、透明度を表す値であり、本実施例では、0(完全透過)〜255(完全不透過)の範囲の値で示される。完全透過の領域はアルファ値=0の領域であり、半透過の領域はアルファ値=1〜254の領域であり、不透過の領域はアルファ値=255の領域である。「RGBA画像」とは、各画素のアルファ値を指定するためのアルファチャンネル(A)を有するRGB画像である。
「ROP(Raster Operation)描画」とは、描画先の画像(デスティネーション画像)の各画素に対して、ソース画像とパターン画像とを用いて、ROPコードで指定された論理演算を行うことにより、ROP描画後の各画素の値を決定する描画方法である。「ROPコード」は、複数種類のコードがあり、各コードに対し予め定められた演算式が割り当てられている。本実施例で使用するROPコードの詳細については後述する。
図3は、本実施形態における情報処理装置7と印刷装置6とを含む情報処理システムの構成例である。中央処理装置1は、補助記憶装置3(HDD,SSD,FD,CD−ROM,ICメモリカード等の記憶媒体)からシステムプログラムやアプリケーションプログラムやプリンタドライバを主記憶装置2にロードして実行するプロセッサである。中央処理装置1は、入力装置4から入力される指示に基づいて情報を処理して、処理結果を表示装置5や印刷装置6に出力する。なお、本実施例では、表示装置5はディスプレイであり、処理結果の情報を表示する。また、入力装置4はキーボード、ポインティングデバイス等で構成されているものとする。また、印刷装置6は、情報処理装置7とネットワーク等を介して接続されていても構わない。なお、本発明を実現するためのプリンタドライバ等のプログラムは、ネットワーク又はコンピュータ読取可能な各種記憶媒体を介して装置或いはシステムに供給されるものであってもよい。
図4は本実施形態におけるソフトウエア構成例であり、中央処理装置(プロセッサ)1が各プログラムを実行することにより、各処理部12〜18として機能する。中央処理装置1は、OS8のプログラムを実行することにより、情報処理装置7全体を制御する。
プリンタドライバ11は、OS8上で実行され、かつ、印刷装置を制御するためのプログラムであり、中央処理装置を各処理部12〜17として機能させるためのモジュールを含んでいる。
12はユーザーが各種印刷設定を入力したり、印刷開始指示をしたりするためのユーザーインタフェース部である。
レイアウト処理部13は、文書作成等を行うアプリケーション(不図示)から印刷時に指定される描画命令を受け、N−up(Nin1)などレイアウトに関する変換を行う。
印刷データ制御部14は、レイアウト処理部13からレイアウト変換処理済みの描画命令を受け、印刷装置において処理できるデータを作成する。この印刷データ制御部14は、本発明である印刷システムにおける情報処理装置側の重要な処理を含む。
最適化処理部15は、透過画像が入力された場合に、透過画像の背後にある描画オブジェクトが適切に出力されるように描画命令を変換する処理を行う。
描画コマンド生成部16は、最適化処理部15から渡される描画命令に基づき、PDLの描画コマンドを作成する。
印刷データ制御部17は、描画コマンド生成部16により作成された描画コマンドに対し、印刷データ全体を制御するための印刷ジョブの設定等を行って、出力先の印刷装置に対応したPDLの印刷データに変更する。印刷ジョブの設定とは、例えば、PJLなどを用いて印刷ジョブ自体の設定を行うものである。
データ送受信部18は、OSの機能であり、印刷装置6とデータの送受信を行う。データ送受信部18は、印刷データ制御部17で生成された印刷データを後述する印刷装置6へ送信する。印刷装置6は、受信した印刷データに応じた印刷処理を行う。
以上のように構成された本発明の実施の形態にかかるプリンタドライバの動作を、図を用いて説明する。なお、本フローに係るプリンタドライバ11のプログラムは、補助記憶装置3に記憶されており、主記憶装置2に読み出され中央処理装置1によって実行される。
図5は、中央処理装置(プロセッサ)1がプリンタドライバ11を実行することによって行われる処理フローである。ユーザーが、文書作成等を行うアプリケーションにおいて印刷を実行すると、該アプリケーションから出力された描画命令が、プリンタドライバ11へ渡ってくる。そこでこのフローチャートがスタートする。
ステップS501において、プリンタドライバ11のレイアウト処理部13は、入力された描画命令を解析して、レイアウト変換等を行う。
ステップS502において、プリンタドライバ11の最適化処理部15は、レイアウト処理部13から受け取った描画命令に対して最適化処理を行う。ここでは、図6を用いて後述するように、S501のレイアウト変換処理済みの描画命令の中から、くり抜き描画に変換すべき描画命令を判定して、その描画命令をくり抜き描画に変換することによって、中間データを生成する。
ステップS503において、プリンタドライバ11の描画コマンド生成部16は、S502の最適化処理の結果として得られる中間データ(後述)を、印刷装置で処理可能な描画コマンドに変換する。ここでは、例えば、中間データにAlphaチャンネルを含む描画命令が残っていれば、そのAlphaチャンネルを削除したり、別の描画に置き換えるなどして、印刷装置で処理可能な描画コマンドに変換する処理が行われる。なお、描画コマンドとは具体的にはPS(Adobe社製)やPCL(HP社製)などのPDL描画コマンドを指す。本明細書において、特に断りが無い限り、出力されるPDLの形式はPCLとする。また、中間データとは、プリンタドライバ11内で描画命令を処理する途中のデータ形式であり、S502の最適化処理実行後の描画命令そのままであってもよいし、最適化処理実行後の描画命令をプリンタドライバ独自の形式にしたものであってもよい。中間データの形式の違いによって本発明には影響は無い。
ステップS504において、プリンタドライバ11の印刷データ制御部17は、S503で生成されたPDL描画コマンドに印刷ジョブの設定を行って印刷データを生成し、印刷データ送受信部18を介して、印刷装置6へ当該生成した印刷データを送信する。印刷装置6は、受信した印刷データをレンダリング及びハーフトーン化したのち紙へ印字し、印刷処理が完了する。
図6は、ステップS502で説明した最適化処理の詳細を示すフローチャートである。
S601において、最適化処理部15は、レイアウト処理部13から受信した描画命令に含まれる各画像描画命令を順に処理対象として、以降のステップS602、S603、S604を繰り返し実行する。
ステップS602において、最適化処理部15は、処理対象の画像描画命令が「くり抜き描画命令へ変換すべき描画命令」であるかを判定するための「変換対象検知処理」を行う。
ステップS603において、最適化処理部15は、S602における検知処理の結果、S601で処理対象とされた画像描画が、くり抜き描画命令への変換対象の画像描画であると判断された場合はステップS604へ処理を進める。一方、S603でくり抜き描画命令への変換対象の画像描画でないと判断された場合は、ステップS601に進んで、次の処理対象とすべき画像描画があるか判断し、あれば次の処理対象の画像描画に対してS602〜S604の処理を行い、なければ図6のフローを終了して、S503の処理に進む。
ステップS604において、最適化処理部15は、変換対象と判断された画像描画の描画命令に対して、くり抜き描画に変換するためのくり抜き描画変換処理を行う。くり抜き描画変換処理の詳細については、図8を用いて後述する。
図7は、図6のステップS602の「くり抜き描画命令へ変換すべき描画命令であるかを判定するための変換対象検知処理」の詳細を示すフローチャートである。
ステップS701において、最適化処理部15は、当該処理対象の画像描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在するかを判断する。もし背後に別の描画命令による描画オブジェクトが存在していなければ、本発明の課題は発生しないので、ステップS707へ進む。一方、背後に別の描画命令による描画オブジェクトが存在する場合はステップS702へ処理を進める。
ステップS702において、最適化処理部15は、当該処理対象の画像描画命令がAlphaチャンネルを含む画像であるかどうかを判断する。当該処理対象の画像描画命令がAlphaチャンネルを含まない場合にはステップS707へ進み、Alphaチャンネルを含む場合にはステップS703へ進む。
ステップS703において、最適化処理部15は、該処理対象の画像描画命令が、Alphaチャンネルに0(完全透過)と255(完全不透過)のいずれかのAlpha値が設定された画素のみで構成されている画像であるかどうかを判断する。すなわち、半透過の画素(Alphaチャンネルの値が1〜254の画素)を含まない画像描画命令であるかどうかを判断する。Alphaチャンネルの値が1〜254の画素を含まない画像描画命令であると判断した場合はステップS705へ進む。一方、Alphaチャンネルの値が1〜254の画素を含む画像描画命令であると判断した場合(すなわち、半透過の画素を含む画像描画命令であると判断した場合)は、ステップS704へ処理を進める。
ステップS704において、最適化処理部15は、該処理対象の画像描画命令内の半透過領域(Alpha値が1〜254である画素の領域)についてのみ、背後の別の描画オブジェクトとの合成処理を行って、その領域の画素のAlpha値を255(完全不透過)とする。尚、完全透過領域(Alpha値が0の画素の領域)、ならびに、完全不透過領域(Alpha値が255の画素の領域)については、背後の別の描画オブジェクトとの合成処理を行わない。
ステップS705において、最適化処理部15は、処理対象の画像描画が、Alpha値が255(完全不透過)の画素のみで構成されている画像であるかどうかを判断する。なお、S704の処理を経由していた場合は合成後の画像描画がS705での判断対象となる。Alpha値が255である画素のみで構成されている画像であると判断した場合はステップS707へ進み、Alpha値が0である画素を含む画像であると判断した場合はステップS706へ処理を進める。ただし、Alpha値が0(完全透過)である画素のみで構成される画像描画である場合には、その画像描画自体を削除してもよい。
ステップS706において、最適化処理部15は、当該処理対象の画像描画命令が「変換対象」であると判定する。
ステップS707において、最適化処理部15は、当該処理対象の画像描画命令が「変換対象」で無いと判定する。
尚、ステップS701,S702,S703,S705の判定の順序を入れ替えて実行するように構成しても、変換対象検知処理を実現することが可能である。
また、ステップS701において、最適化処理部15は、処理対象の画像描画命令の背後にある別の描画命令が、画像の描画命令のみであると判定した場合には、ステップS702に進んでも良い。なぜなら、背後にある別の描画命令がもともと画像の描画命令であれば、当該処理対象の画像描画命令に合成されても、属性は画像属性のままで変わらず、問題にならない為である。
このように、図7の変換対象検知処理のフローチャートにより、描画命令の中から、くり抜き描画へ変換すべき変換対象の描画命令を検知することができる。
また、図7で示したように、Alphaチャンネルを有する画像の描画命令であっても、背後に別の描画オブジェクトが存在しない画像の描画命令や、Alpha値が255の画素のみで構成される画像の描画命令については、くり抜き描画命令への変換の対象外としている。これにより、Alphaチャンネルを有する画像の描画命令すべてを、くり抜き描画命令に変換する必要がなくなるので、くり抜き描画命令への変換処理の負荷を低減することができる。
図8は、図6のステップS604のくり抜き描画変換処理の詳細を示すフローチャートである。図9に具体的な画像例を示しながら説明する。図9(A)は、図7で変換対象の画像描画命令であると判定された画像の例である。図9(A)の画像では、互いに画素値が異なる4つの領域(A−1〜A−4)に分かれており、それぞれの領域における(R,G,B,A)の値を示している。
なお、くり抜き描画命令とは、矩形状の画像のうち、描画対象としたい領域(くり抜き対象領域)のみをくり抜いて描画し、それ以外の領域(くり抜き対象外の領域)については描画を行わないようにする描画命令である。くり抜き対象外の領域については、その描画命令による描画が行われないので、それ以前に描画済みの画素値がそのまま残るようになる。
本実施例では、くり抜き描画命令として、ROP描画を用いたくり抜き描画命令について説明する。また、本実施例では、変換対象の画像描画命令を「ROP描画によるくり抜き描画命令」に変換する際、ROPコードとして「E2」を用いる場合を例として説明するが、ROPコードは「E2」に限るものではない。
ステップS801において、最適化処理部15は、変換対象の画像描画命令による画像に基づいて、Alphaチャンネルを削除した画像を、パターン画像として生成する。図9(P)は、図9(A)の画像からAlphaチャンネルを削除することにより得られる画像例である。
ステップS802において、最適化処理部15は、変換対象の画像描画命令におけるAlphaチャンネルのAlpha値に基づいて、完全不透過ピクセル(Alpha値が255の画素)を1、完全透過ピクセル(Alpha値が0の画素)を0とした二値画像を、ソース画像として生成する。図9(S)は、図9(A)の画像からS802により得られる画像例である。
ステップS803において最適化処理部(15)は、S801とS802で生成したパターン画像とソース画像を用いたROP描画命令を発行する。具体的には、ROPコードとして「E2」、パターン画像としてS801で生成した画像、ソース画像としてS802で生成した画像を設定したROP描画命令を発行する。そして、当該変換対象の画像描画命令を当該発行されたROP描画命令で置換する。
このROP描画命令を用いて描画を行うと、Alphaチャンネル削除後の画像(図9(P))のうち、図9(S)の二値画像の画素値1に対応する領域(B−1〜B−3の領域)がくり抜き対象領域として描画され、それ以外の領域(B−4の領域)が描画対象外となる。すなわち、変換対象の画像描画命令(例えば図9(A))は、Alphaチャンネルを含まない画像描画命令(図9(P))に変換され、かつ、変換対象の画像描画命令にて完全不透過であった画素の領域(A−1〜A−3)をくり抜き対象(描画対象)とするROP描画命令に変換される。
図10は、図8で説明した処理により、ROP描画を用いたくり抜き描画命令に変換された後のPCLコマンド例である。まず、“SetROP”を用いて、ROPコード「E2」を設定する。
次に”BeginRastPattern”,”ReadRastPattern”,”EndRastPattern”を用いて、Pattern画像を設定し、”SetBrushSource”,”BeginImage”,”ReadImage”,”EndImage”を用いて、Source画像を設定してPCLコマンドのROP描画を用いたコマンド列が完成する。
図11はROPコード「E2」を用いた場合のくり抜き描画命令の概要を示した図である。1101はある描画領域において、それ以前の描画命令(すなわち、変換対象画像の背後の描画オブジェクトの描画命令)によって描画した画像(Destination画像と呼ぶ)の例を示している。ROP描画を用いたくり抜き描画命令は、Pattern画像1102、Source画像1103、ROPコード1104で構成される。Destination画像1101に対して、このくり抜き描画命令を実行した結果が1106となる。ROPコード「E2」は、Source画像が1(白)に対応する領域についてはPattern画像の画素値で描画され、Source画像が0(黒)に対応する領域についてはDestination画像の画素値がそのまま残るような論理演算である。
なお、上述したように、ROPコードは「E2」に限るものではなく、例えば、ROPコードとして「B8」を用いることも可能である。ROPコード「B8」を用いる場合は、S802で生成される二値画像における1,0を反転させてソース画像とすれば、ROPコード「E2」を用いた場合と同様のくり抜き描画結果を得ることができる。
また、「E2」、「B8」と異なる別のROPコードを用いて、くり抜き描画命令を発行することも可能である。また、ROPコードの種類によっては、ステップS801で生成されるAlphaチャンネルを削除した画像をソース画像とし、ステップS802で生成される二値画像をパターン画像とする場合もありうる。例えば、ROPコード「CA」を用いる場合は、ステップS801で生成されるAlphaチャンネルを削除した画像をソース画像とし、ステップS802で生成される二値画像をパターン画像とすればよい。また、ROPコード「AC」を用いる場合は、ステップS801で生成されるAlphaチャンネルを削除した画像をソース画像とし、ステップS802で生成される二値画像の1,0を反転させた画像をパターン画像とすればよい。
いずれのROPコードを用いる場合も、変換対象画像からAlphaチャンネルを削除した画像を生成し、変換対象画像にて完全不透過であった画素に対応する領域をくり抜き対象領域(描画対象領域)とし、前記くり抜き対象領域については、前記生成されたAlphaチャンネル削除後の画像における前記くり抜き対象領域が、描画先のメモリ(背後の描画オブジェクトの描画命令によって描画済みの画像が格納されているメモリ)に描画され、それ以外の領域については描画対象外領域としてメモリ内に格納済みの元の画素値がそのまま残るような演算となるようにする。
以上述べたように、プリンタドライバに入力された描画命令のうち、くり抜き描画に変換すべき変換対象の描画命令を検知し、変換対象の描画命令をくり抜き描画に変換することにより、透過画像を不透過画像に変換する際に、その透過画像の背後に存在していた文字やグラフィック等の描画オブジェクトができるだけ不透過画像に合成されないようにする。これにより、文字やグラフィック等の描画オブジェクトに対応する部分は、本来の描画属性で処理することが可能となる。
実施例1では、くり抜き描画命令としてROP描画を用いる例を示したが、ROP描画に限るものではなく、変換対象の画像中の特徴に応じて、ROP描画以外のくり抜き描画命令を使用することも可能である。図12は、その他のくり抜き描画命令の例を示した図である。
例えば、Mask描画命令に対応しているPDLであれば、図12(A)のように、くり抜き描画命令としてMask描画命令を用いることができる。これは、Alphaチャンネル削除後の画像1201の中で、どのピクセルを描画するかを1202に示した画像(Mask画像と呼ばれる)が表現している描画である。Mask画像1202は、図9(S)の作成方法と同様に、Alphaチャンネルが完全不透過であった画素に対応する画素を1とし、完全透過であった画素に対応する画素を0とすることで作成できる。
また、図12(B)は、くり抜き描画命令として、Clip描画命令を用いる例である。これは、Alphaチャンネル削除後の画像1211の中で、どのピクセルを描画するかを1212のようなベクター情報で表現している描画である。ベクター情報1212に関しては、Alphaチャンネルが完全不透過であった画素と完全透過であった画素の境界を抽出する、もしくは、二値画像1202を作成してその二値画像内のエッジを抽出することにより作成できる。
以上述べたように、実施例2によれば、PDLの種類によっては、くり抜き描画命令として、Mask描画命令やClip描画命令を利用することが可能となる。

Claims (14)

  1. 入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知手段と、
    前記検知手段で判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換手段と、
    前記変換手段で変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成手段と、
    を有することを特徴とする情報処理装置。
  2. 前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、前記アルファチャンネルのアルファ値により完全透過の画素と完全不透過の画素とで構成されていると判定される画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、当該画像の描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在し、かつ、前記アルファチャンネルのアルファ値により完全透過の画素と完全不透過の画素とで構成されていると判定される画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項1に記載の情報処理装置。
  4. 前記検知手段は、前記入力された描画命令のうち、アルファチャンネルを有する画像の描画命令であって、当該画像の描画命令により描画される画像の背後に別の描画命令による描画オブジェクトが存在する画像の描画命令を、前記変換対象の画像描画命令として判定する、ことを特徴とする請求項1に記載の情報処理装置。
  5. 前記検知手段は、前記入力された描画命令が、前記アルファチャンネルのアルファ値に基づいて、半透過の画素を含む画像の描画命令であると判定された場合、前記半透過の画素に関して、当該描画命令により描画される画像の背後に存在する別の描画命令による描画オブジェクトを合成することにより完全不透過の画素とし、当該合成後の画像が完全透過の画素と完全不透過の画素とで構成されている場合に、当該合成後の画像の描画命令を、前記変換対象の画像描画命令として判定することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
  6. 前記アルファチャンネルのアルファ値が0の画素が完全透過の画素であり、前記アルファチャンネルのアルファ値が255の画素が完全不透過の画素であり、前記アルファチャンネルのアルファ値が1〜254のいずれかである画素が半透過の画素である、ことを特徴とする請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記変換手段は、前記変換対象の画像描画命令について、前記アルファチャンネルのアルファ値により示される完全不透過の画素の領域を描画対象の領域とし、かつ、前記アルファチャンネルのアルファ値により示される完全透過の画素の領域を描画対象外の領域とした、前記くり抜き描画命令に変換することを特徴とする請求項2乃至6のいずれか1項に記載の情報処理装置。
  8. 前記変換手段は、前記くり抜き描画命令として、ROP描画命令を用いることを特徴とする請求項7に記載の情報処理装置。
  9. 前記変換手段は、前記検知手段で判定された前記変換対象の画像描画命令に基づいて、前記アルファチャンネルを削除した画像を生成し、前記アルファチャンネルのアルファ値により示される完全不透過の画素と完全透過の画素とに基づいて二値画像を生成し、前記アルファチャンネルを削除した画像と前記二値画像とROPコードとを用いたくり抜き描画命令を生成し、前記変換対象の画像描画命令を当該生成したくり抜き描画命令に変換する、ことを特徴とする請求項8に記載の情報処理装置。
  10. 前記変換手段は、前記くり抜き描画命令として、Mask描画命令を用いることを特徴とする請求項7に記載の情報処理装置。
  11. 前記変換手段は、前記くり抜き描画命令として、Clip描画命令を用いることを特徴とする請求項7に記載の情報処理装置。
  12. コンピュータを、請求項1乃至11のいずれか1項に記載の情報処理装置の各手段として機能させるためのプリンタドライバ。
  13. 請求項12に記載のプリンタドライバを格納した、コンピュータ読取可能な記憶媒体。
  14. 情報処理装置の検知手段が、入力された描画命令のうち、くり抜き描画命令に変換すべき変換対象の画像描画命令を判定する検知ステップと、
    情報処理装置の変換手段が、前記検知ステップで判定された前記変換対象の画像描画命令について、くり抜き描画命令に変換する変換ステップと、
    情報処理装置の生成手段が、前記変換ステップで変換された前記くり抜き描画命令を含む前記入力された描画命令に基づいて、描画コマンドを生成する生成ステップと、
    を有することを特徴とする情報処理方法。
JP2018075086A 2018-04-09 2018-04-09 情報処理装置、プリンタドライバ、情報処理方法 Pending JP2019185365A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018075086A JP2019185365A (ja) 2018-04-09 2018-04-09 情報処理装置、プリンタドライバ、情報処理方法
US16/362,493 US20190311234A1 (en) 2018-04-09 2019-03-22 Information processing apparatus, method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018075086A JP2019185365A (ja) 2018-04-09 2018-04-09 情報処理装置、プリンタドライバ、情報処理方法

Publications (1)

Publication Number Publication Date
JP2019185365A true JP2019185365A (ja) 2019-10-24

Family

ID=68096024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018075086A Pending JP2019185365A (ja) 2018-04-09 2018-04-09 情報処理装置、プリンタドライバ、情報処理方法

Country Status (2)

Country Link
US (1) US20190311234A1 (ja)
JP (1) JP2019185365A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4235393A1 (en) 2022-02-25 2023-08-30 FUJI-FILM Corporation Image processing device, image processing method, and image processing program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5849485B2 (ja) * 2011-07-15 2016-01-27 株式会社リコー 印刷制御プログラム、情報処理装置及び記録媒体
JP5829231B2 (ja) * 2013-04-24 2015-12-09 京セラドキュメントソリューションズ株式会社 画像処理装置及びプログラム並びに画像形成システム
JP6482432B2 (ja) * 2015-08-21 2019-03-13 キヤノン株式会社 描画命令処理装置および描画命令処理方法
US10235612B2 (en) * 2016-07-29 2019-03-19 Canon Kabushiki Kaisha Information processing apparatus, information processing method, storage medium, and image forming apparatus for converting drawing data of a transparent object that does not overlap another drawing object into drawing data of a drawing object that does not have an alpha channel as color information
JP2019050489A (ja) * 2017-09-08 2019-03-28 キヤノン株式会社 情報処理装置、プログラム、変換方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4235393A1 (en) 2022-02-25 2023-08-30 FUJI-FILM Corporation Image processing device, image processing method, and image processing program

Also Published As

Publication number Publication date
US20190311234A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
JP2018147259A (ja) 情報処理装置、プログラム、記憶媒体、情報処理方法
US9013718B2 (en) Print control apparatus, control method thereof, and device driver for converting commands from one format to another
US10303409B2 (en) Information processing apparatus, information processing method, and storage medium
JP2009188816A (ja) プリンタドライバおよび画像形成装置
US20140168695A1 (en) Image forming apparatus and control method for image forming apparatus
US10583670B2 (en) Method for displaying objects based on display resolution, information processing apparatus for implementing method, and computer-readable medium storing instructions therefor
JP2019185365A (ja) 情報処理装置、プリンタドライバ、情報処理方法
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
JP2001293936A (ja) 描画情報処理装置および描画情報処理方法
KR100565054B1 (ko) 인쇄파일 편집방법 및 장치와 이를 채용한 칼라화상형성시스템
JP2020144807A (ja) 情報処理装置とその制御方法、及びプログラム
JP6755644B2 (ja) 文字処理装置、文字処理方法、文字処理プログラム
JP6437076B2 (ja) 情報処理装置及びその制御方法とプログラム
JP5171973B2 (ja) 情報処理装置及びその制御方法
JP2010105191A (ja) 画像処理装置
JP2017041174A (ja) 描画命令処理装置および描画命令処理方法
JP7316829B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP7146455B2 (ja) 描画処理装置、描画処理方法、及びプログラム
US7595898B2 (en) Print control apparatus, printer apparatus, information processing apparatus, and program product
JP2008219418A (ja) 画像形成装置、画像処理方法、及び画像処理プログラム
JP2019192087A (ja) 情報処理装置、プログラム、情報処理方法
JP2018026093A (ja) 情報処理装置、情報処理方法、プログラム、及び画像形成装置
JP5840174B2 (ja) 情報処理装置、その装置の制御方法、プログラム
JP2006079475A (ja) 印刷処理システム、プログラムおよび記録媒体
JP2019197327A (ja) 画像処理装置、画像処理方法、及びプログラム