JP5473782B2 - 画像処理装置及び画像処理プログラム - Google Patents

画像処理装置及び画像処理プログラム Download PDF

Info

Publication number
JP5473782B2
JP5473782B2 JP2010122329A JP2010122329A JP5473782B2 JP 5473782 B2 JP5473782 B2 JP 5473782B2 JP 2010122329 A JP2010122329 A JP 2010122329A JP 2010122329 A JP2010122329 A JP 2010122329A JP 5473782 B2 JP5473782 B2 JP 5473782B2
Authority
JP
Japan
Prior art keywords
clip
unit
processing
window
print
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.)
Active
Application number
JP2010122329A
Other languages
English (en)
Other versions
JP2011248700A (ja
Inventor
友和 星野
Original Assignee
株式会社沖データ
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 株式会社沖データ filed Critical 株式会社沖データ
Priority to JP2010122329A priority Critical patent/JP5473782B2/ja
Publication of JP2011248700A publication Critical patent/JP2011248700A/ja
Application granted granted Critical
Publication of JP5473782B2 publication Critical patent/JP5473782B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Generation (AREA)

Description

本発明はコンピュータの出力装置としてのプリンタ等の画像処理装置に関する。
従来、画像処理装置において、コンピュータから入力された画像データに対して部分的印刷を行わせるクリップ処理及び所定の領域内を彩色する塗りつぶし処理が行われている。画像処理装置において図形をクリップするには、図形コマンドを解析して実際に印刷できる印刷イメージのビットマップの状態にして、その段階で設定されているクリップウィンドウに含まれる部分を抽出し、抽出された部分のみを印刷していた。また、特開2002−73299(特許文献1)によれば、事前にクリップ領域に外接する矩形で図形をクリップしておくことにより、図形のデータ量を減らすことができ、計算速度も向上した。
特開2002−73299号公報
しかしながら、上記の方法では、クリップウィンドウに含まれているかどうか関係なく、一旦全ての図形コマンドを解析処理する時間が必要であった。また、特許文献1のように、事前にクリップ領域に外接する矩形で図形をクリップしておく方法では、塗りつぶし規則を考慮した場合、正しく塗りつぶしを行うことができない場合が発生するという問題があった。
本発明の解決しようとする課題は、クリップ処理に関して処理時間の短縮を図り、かつ、クリップされた図形に対して塗りつぶし規則に従った、正しい塗りつぶし処理を行うことを可能にすることである。
上記課題を解決するために本発明に関する画像処理装置は、上位装置から送信された印刷データを受信するデータ受信部と、前記印刷データに含まれる描画図形が矩形のクリップウィンドウ内に収まるかどうかを判定するクリップ判定部と、前記クリップ判定部での判定の結果、前記クリップウィンドウ内に収まらない場合、前記描画図形に対し前記クリップウィンドウの上下端でクリップ処理を行うクリップ処理部と、前記クリップ処理部における上下端でのクリップ処理後の図形について、塗りつぶし領域を抽出する塗りつぶし領域抽出部と、クリップ処理された図形情報から印刷イメージデータを生成するデータ展開部と印刷部に対し前記印刷イメージデータの印刷指示を行う印刷制御部を有し、更に、前記クリップ処理部は、前記塗りつぶし領域抽出部で抽出された塗りつぶし領域に対し前記クリップウィンドウの左右端でクリップ処理を行い、前記左右端でクリップ処理された図形情報に対し塗りつぶし処理を行い、かつ前記塗りつぶし処理を行った図形情報を前記データ展開部へ渡すことを特徴とするものである。
上記構成を有する本発明によれば、印刷データの描画図形が矩形のクリップウィンドウ内に収まるかどうかを判定するクリップ判定部と、クリップウィンドウ内に収まらない図形の場合、矩形のクリップウィンドウの上下端でクリップ処理を行うクリップ処理部を設け、塗りつぶし処理を行う前にクリップ処理を行うようにしたので、クリップウィンドウをまたぐ図形であった場合には、図形をクリップウィンドウの上下端で先にクリップすることにより、クリップウィンドウからはみ出る部分を除去することができる。これにより、除去した部分に関しては、処理時間の短縮が可能となり、更に、メモリ資源を節約することができるようになる。
更に、前記描画図形を複数の線分情報に変換し、前記線分情報からなる図形の頂点を通る境界線を境に塗りつぶし領域を抽出し、かつ、前記描画図形に曲線部があるときは、複数の線分で近似することにより前記線分情報への前記変換を行う塗りつぶし領域抽出部を設ければ、近似された線分情報から塗りつぶし領域を抽出できるので、クリップされた図形に対して塗りつぶし規則に従った、正しい塗りつぶし処理を行うことができる画像処理装置を提供することが可能になる。
第1の実施の形態に関する画像処理装置の構成を示すブロック図である。 塗りつぶし規則を示す説明図である。 走査する領域を示す説明図である。 クリップ処理により正しく塗りつぶせない例とその対処を示す説明図である。 線分の交点算出とy座標での整列を示す説明図である。 第1の実施の形態に関するデータ編集部の動作の概略を示すフローチャートである。 第1の実施の形態に関するクリップ処理と塗りつぶし処理の動作を示すフローチャートである。 第1の実施の形態に関するクリップ処理と線分情報の置き換えを示す説明図である。 クリップ処理の過程を示す説明図である。 同じくクリップ処理の過程を示す説明図である。 第2の実施の形態に関する画像処理装置の構成を示すブロック図である。 第2の実施の形態に関するクリップ処理と塗りつぶし処理の動作を示すフローチャートである。 第2の実施の形態に関するクリップ処理の一部を示す説明図である。
<第1の実施の形態>
本発明の第1の実施の形態について説明する前に、塗りつぶし規則について、図2乃至図5を用いて説明する。まず、図2は塗りつぶし規則を示す説明図である。図2(a)のサンプル図形を例として説明する。図2(a)のサンプル図形は外側の矩形W−1と、内側の矩形W−2からなる。ここで、塗りつぶし規則、即ち、内外判定規則には、「非ゼロ巻数規則(non-zero winding number rule)」と「偶奇規則(even-odd rule)」の2種類がある。
「非ゼロ巻数規則」とは、x軸に平行な走査線で走査した場合に、0から数えはじめて図形の辺が走査線を右から左へと横切る場合に−1、左から右へ横切る場合に+1にして計算する。こうして最終的にゼロでない領域を内側、ゼロの領域を外側と捉え、内側を塗りつぶし、外側は塗りつぶさないというものである。非ゼロ巻数規則の場合の例を図2(b)、図2(d)に示す。
「偶奇規則」とは、図形の辺の向きは考慮せずに、走査線が図形の辺を交差する度に+1にして計算する。こうして、交差する回数が偶数の領域は外側、奇数の領域は内側と捉え、非ゼロ巻数規則と同様に内側を塗りつぶし、外側を塗りつぶさないというものである。偶奇規則の場合の例を図2(c)、図2(e)に示す。
図2(b)、図2(c)は、外側の矩形W−1と内側の矩形W−2の辺が同じ向きで、即ち、図形の内外の辺が共に反時計回りで描画されている場合である。図2(d)、図2(e)は、外側の矩形W−1と内側の矩形W−2の辺が異なる向きで、即ち、外側の辺は反時計回で、内側の辺は時計回りで描画されている場合である。偶奇規則によると、図2(c)、図2(e)が同じ結果であるように、内側の矩形W−2と外側の矩形W−1を描く向きによらず、内側の矩形W−2は塗りつぶされない。図2(b)の場合は内側の矩形W−2も塗りつぶされ、図2(d)の場合は内側の矩形W−2は塗りつぶされない。
本来、x軸に平行な走査線による計算は、y軸方向の全てのドットに対する走査線で行うべきであるが、そうすると計算量が著しく増加してしまう。このため、ある程度の領域に区切って走査と計算を行う。図3は走査する領域を示す説明図である。図3(a)は、図2(a)のサンプル図形と同様に、外側の矩形W−1と内側の矩形W−2からなるサンプル図形である。図形の各頂点A、B・・・に着目し、y軸方向の上から各頂点A、B・・・を通るx軸に平行な境界線Lで領域を区切る。同図の場合は、領域R1〜R3に区切ることができる。図3(b)は多角形Wからなるサンプル図を示す。同図の場合は、領域R1〜R5に区切ることができる。このように区切られた各領域Rを走査線Sで一回走査することで、図形の形状によらず、図形全体を漏れなく走査することができる。そして、塗りつぶし規則の計算を行ない、塗りつぶし領域を抽出することができる。
次に、塗りつぶしが正しく行われない例について説明する。図4はクリップ処理により正しく塗りつぶせない例とその対処を示す説明図である。図4(a)のように、外側の矩形W−1と内側の矩形W−2からなるサンプル図形と、矩形のクリップウィンドウQTUVを考えた場合、偶奇規則に従うとすると、図形の内側の矩形W−2と外側の矩形W−1で挟まれた領域が塗りつぶされることになる。しかし、図4(b)のように塗りつぶしを判断する前にクリップ処理を行うと、塗りつぶし領域を抽出するために必要な辺情報が失われてしまう。そして、図4(d)に示すように偶数「2」と奇数「1」が混在する領域が生じてしまうため、塗りつぶしを正しく行うことができない。
そこで、塗りつぶし処理においては、まず、図4(c)に示すように矩形のクリップウィンドウQTUVにおける後述する走査線Sに平行な上下端QT、UVのみに沿ってクリップ処理を行う。その後、図4(e)に示すようにクリップされた図形に対し、走査と計算を行って塗りつぶし領域を抽出することにより、正しく塗りつぶし領域を抽出することができる。その後、クリップウィンドウQTUVの左右端TU、VQでクリップすることにより、目的とする図形を描画することができる。本発明の第1の実施の形態はこの原理を利用するものである。
更に、塗りつぶし処理においては、走査する領域を抽出するに際して、「線分の交点算出」と「交点・頂点のy座標での整列」を行う。図5は線分の交点算出とy座標での整列を示す説明図である。「線分の交点算出」とは、複数の線分AD、BCが交差する場合、その交点を座標として求めることである。図5(a)に線分AD、BCの交点算出を示す。頂点A〜Dは図形情報として与えられるが、交点Eは線分ADと線分BCの交点として算出する。
また、「交点・頂点のy座標での整列」とは、算出した交点及び図形情報として与えられた頂点を、y座標で順に整列することである。図5(b)に交点・頂点のy座標での整列を示す。各頂点A、B、E、D、Cを通るx軸に平行な境界線Lで領域Rを区切る。そして、図3に示すように走査する領域Rが順に決定され、これにより、効率のよい走査と計算を行うことができる。y座標で昇順に整列すると、交点・頂点はA→B→E→D→Cとなり、これは同時に走査と計算をする領域を示すことになる。
なお、本実施の形態の説明では走査方向をx軸に平行な方向としているが、必ずしもこれに限らず、y軸に平行な方向や斜め方向の走査でも、実現は可能である。
図1は、第1の実施の形態に関する画像処理装置の構成を示すブロック図である。画像処理装置としての印刷装置10は、上位装置1から送信された印刷データを受信して印刷を行うものである。上位装置1と印刷装置10は、ケーブルやネットワークで接続されている。印刷装置10は、データ受信部11、Job制御部12、データ展開部18、印刷制御部19、データ編集部20及び装置制御部21から構成される。
装置制御部21は、図示しない記憶部に格納したプログラムにより動作し、これら各部の制御を行う。データ受信部11は、上位装置1から送信された印刷データを受信し、受信した印刷データをJob制御部12へ渡す。Job制御部12は、データ受信部11から渡された印刷データの編集をデータ編集部20へ依頼し、印刷制御部19に指示を出して印刷を行わせる。
データ編集部20は、データ解析判断部13、クリップ判定部14、クリップ処理部23、塗りつぶし領域抽出部24、図形抽出部16、解析結果格納部17、編集部制御部22から構成され、データ受信部11で受信した印刷データの解析を行う。データ編集部20のデータ解析判断部13は、受信した印刷データの解析が全て終了したかどうかを判断し、データの解析が終了していないならば、受信した印刷データをコマンド単位で読み込む。
クリップ判定部14は、図形とクリップウィンドウの位置を判定することにより、読み込んだ図形描画コマンドから、描画図形が矩形のクリップウィンドウ内に収まるかどうかを判定する。図形抽出部16は、クリップ判定部14による判定がクリップウィンドウ内に収まる図形の場合、通常の図形処理を行って図形の抽出を行う。
クリップ処理部23は、後に詳述するクリップ処理を行う。クリップ判定部14による判定がクリップウィンドウ内に収まらないような図形の場合、まず矩形のクリップウィンドウの上下端からはみ出る部分を除去する上下端のクリップ処理を行う。更にまた、次に説明する塗りつぶし領域抽出部24で抽出した塗りつぶし領域に対して、矩形のクリップウィンドウの左右端でクリップ処理を行う。そして、上下左右端でクリップ処理された図形情報に対し塗りつぶし処理を行う。最後に、塗りつぶし処理された図形情報を解析結果格納部17へ渡す。
塗りつぶし領域抽出部24は、まず図形情報を線分情報に変換する。線分情報への変換は、頂点などのパラメータとして与えられている図形情報を具体的な線分の情報に変換する処理を行うものである。なお、図形に曲線部があるときは、後述するように複数の線分で近似することにより、近似された線分情報を得る。更に、塗りつぶし領域抽出部24は、図形に対し塗りつぶし領域を抽出する。即ち、前記図形の頂点を通る境界線Lを境に塗りつぶし領域を形成する。そして、形成された塗りつぶし領域に対して、x軸に平行な方向に走査を行うことにより、塗りつぶし規則の計算を行い、塗りつぶし領域を抽出する。更にまた、塗りつぶし領域抽出部24は、クリップウィンドウの上下端でのクリップ処理により、図形の線分の一部が除去された場合に、塗りつぶし処理ができるようにその線分とクリップウィンドウ端部との交点を算出し、前記線分情報を置き換える。
解析結果格納部17は、図形抽出部16で抽出した図形又はクリップ処理部23で塗りつぶし処理された図形情報を格納する。編集部制御部22は、データ編集部20内の各部を制御する。データ展開部18は、解析結果格納部17から塗りつぶし処理された図形情報やその他の印刷データの解析結果を受け取り、それらを基に印刷イメージデータを生成し、印刷制御部19へ渡す。印刷制御部19は、データ展開部18から渡された印刷イメージデータについて、図示しない印刷部に対し印刷の指示を行う。
次に、第1の実施の形態に関する印刷装置の動作を説明する。まず、上位装置1から印刷装置10に対して印刷データが送信される。印刷装置10の装置制御部21は、データ受信部11に対し印刷データを受信するよう指示する。次に、装置制御部21は、データ受信部11に対し、受信した印刷データをJob制御部12へ渡すよう指示する。更に、装置制御部21は、Job制御部12に対し、受信した印刷データの解析をデータ編集部20に依頼するよう指示する。
データ編集部20の動作は、図6のフローチャートに従った動作を行う。図6は第1の実施の形態に関するデータ編集部20の動作の概略を示すフローチャートである。
ステップ101:データ編集部20の編集部制御部22はデータ解析判断部13に対し、受信した印刷データの解析が全て終了したかどうかを判断するよう指示する。データの解析が終了していないならば、ステップ102へ進み、データの解析が終了していれば、ステップ107へ進む。
ステップ102:データの解析が終了していないならば、編集部制御部22はデータ解析判断部13に対し、受信した印刷データをコマンド単位で読み込むよう指示する。
ステップ103:編集部制御部22は、クリップ判定部14に対し、読み込んだ図形描画コマンドから、描画図形がクリップウィンドウ内に収まるかどうかを判断するよう指示する。クリップ判定部14が行う判定は、図形描画を行うためのパラメータ(座標軸など)とクリップウィンドウの座標を比較することで、図形がクリップウィンドウ内に収まるかどうかを判定することができる。クリップウィンドウ内に収まる図形であった場合には、ステップ104へ進み、クリップウィンドウ内に収まらない図形であった場合には、ステップ106へ進む。
ステップ104:クリップウィンドウ内に収まる図形であった場合には、編集部制御部22は図形抽出部16に対し、描画コマンドの解析処理を行うよう指示する。
ステップ105:編集部制御部22は解析結果格納部17に対し、図形抽出部16で解析処理した解析結果を格納するよう指示する。
ステップ106:前記ステップ103において、クリップウィンドウ内に収まらない図形、即ち、クリップウィンドウをまたぐ図形であった場合には、編集部制御部22はクリップ処理部23に対し、後述する図形のクリップ処理と塗りつぶし処理を行うよう指示する。その後、ステップ105へ進む。ステップ105において、編集部制御部22は解析結果格納部17に対し、クリップ処理部23で塗りつぶし処理された図形情報を格納するよう指示する。
ステップ105の後はステップ101に戻り、編集部制御部22はデータ解析判断部13に対し、全受信データを解析し終えたかを判断するよう指示する。終えていない場合には、ステップ102以降をデータが終了するまで繰り返す。
ステップ107:ステップ101において全データ解析終了した場合には、編集部制御部22は、全データ解析の終了を装置制御部21に報告する。すると、装置制御部21はデータ展開部18に対し、解析結果格納部17から塗りつぶし処理された図形情報やその他の印刷データの解析結果を受け取り、印刷イメージデータを作成し、作成した印刷イメージデータを印刷制御部19に渡すよう指示する。
ステップ108:装置制御部21は印刷制御部19に対し、印刷イメージデータを印刷するよう指示する。
次に、ステップ106のクリップ処理、即ち、図形がクリップウィンドウ内に収まらない場合のクリップ処理について説明する。図7は、第1の実施の形態に関するクリップ処理と塗りつぶし処理の動作を示すフローチャートである。
ステップ201:編集部制御部22はクリップ処理部23に対し、変数bClipUと変数bClipLにfalseを設定するよう指示する。
ステップ202:編集部制御部22はクリップ処理部23に対し、クリップウィンドウの上端、下端両方をまたぐ図形かどうかを判断するよう指示する。
ステップ203:クリップウィンドウの上端、下端両方をまたぐ図形の場合(図9(a)参照)には、編集部制御部22はクリップ処理部23に対し、変数bClipUと変数bClipLにrueを設定するよう指示する。これにより、クリップウィンドウ外の線分を除去する処理を行う。
ステップ204:ステップ202でクリップウィンドウの上端、下端両方をまたがない描画の場合には、編集部制御部22はクリップ処理部23に対し、クリップウィンドウの上端のみをまたぐ図形かどうかを判断するよう指示する。
ステップ205:クリップウィンドウの上端のみをまたぐ図形の場合には、編集部制御部22はクリップ処理部23に対し、変数bClipUにtrueを設定するよう指示する。これにより、クリップウィンドウ外の線分を除去する処理を行う。
ステップ206:ステップ204でクリップウィンドウの上端のみをまたぐ図形でない場合には、編集部制御部22はクリップ処理部23に対し、クリップウィンドウの下端のみをまたぐ図形かどうかを判断するよう指示する。クリップウィンドウの下端のみをまたぐ図形でない場合には、クリップウィンドウ外の描画であるということなので、以降は処理を行わずに描画処理を終了する。
ステップ207:クリップウィンドウの下端のみをまたぐ図形の場合には、編集部制御部22はクリップ処理部23に対し、変数bClipLにtrueを設定するよう指示する。これにより、クリップウィンドウ外の線分を除去する処理を行う。
ステップ208:編集部制御部22は塗りつぶし領域抽出部24に対し、図形情報を線分情報に変換するよう指示する。線分情報への変換は、頂点などのパラメータとして与えられている図形情報を具体的な線分の情報に変換する処理を行う。また、曲線の部分があるときは、線分に近似して複数の線分に変換する(図9(b)参照)。次に、実際にクリップを行うことになる。
ステップ209:編集部制御部22はクリップ処理部23に対し、変数bClipUがtrueかどうかを判断するよう指示する。
ステップ210:変数bClipUがtrueであれば、クリップウィンドウの上端を図形がまたぐということなので、編集部制御部22はクリップ処理部23に対し、クリップウィンドウの上端で図形をクリップするよう指示する。
ステップ211:ステップ209で変数bClipUがtrueでないならば、編集部制御部22はクリップ処理部23に対し、変数bClipLがtrueかどうかを判断するよう指示する。
ステップ212:ステップ211で変数bClipLがtrueであれば、クリップウィンドウの下端を図形がまたぐということなので、編集部制御部22はクリップ処理部23に対し、クリップウィンドウの下端で図形をクリップするよう指示する(図10(a)参照)。
ここで、前記ステップ208において図形情報は線分情報に変換されているので、ステップ210及びステップ212で行うクリップ処理は、次のようになる。即ち、まず、線分情報とクリップウィンドウの座標とを比較して、クリップウィンドウ外の線分を除去する処理となる。そして、編集部制御部22は塗りつぶし領域抽出部24に対して、クリップウィンドウと交差する線分には、その線分とクリップウィンドウとの交点を算出し、線分情報を置き換えるよう指示する。
この内、ステップ210のクリップウィンドウの上端で図形をクリップする様子を図8に示す。図8は第1の実施の形態に関するクリップ処理と線分情報の置き換えを示す説明図である。図8(a)に示すような図形ABCDEFと矩形のクリップウィンドウQTUVが与えられた場合、クリップ処理を行うと図8(b)に示すようになる。
即ち、線分AB、線分FAは、クリップウィンドウQTUV外なので除去される。線分CD、線分DEは、クリップウィンドウQTUV内なのでそのまま保持される。線分BCと線分EFは、クリップウィンドウQTUVの上端QTと交差し、クリップ処理により、その一部が除去される。線分BCとクリップウィンドウQTUVの上端QTが交わる頂点G、線分EFとクリップウィンドウQTUVの上端QTが交わる頂点Hを算出し、線分BCを線分GCに置き換え、線分EFを線分EHに置き換え、以降の処理を行う。このようにして、線分情報AB、BC、CD、DE、EF、FAとクリップウィンドウQTUVの座標とを比較することにより、クリップウィンドウQTUV外の線分を除去する処理を行う。除去する処理を行うことにより、除去した部分に関しては、線分の交点算出及び交点・頂点のy座標での整列が不要になり、更に走査による塗りつぶし規則の計算といった処理時間が不要になる。
そして、クリップウィンドウQTUVの上端QTと交差する線分には、塗りつぶし処理ができるようにその線分とクリップウィンドウQTUVの上端QTとの交点を算出し、線分情報を置き換える処理を行う。よって、矩形のクリップウィンドウQTUVの上下端QT、UVについてクリップ処理を行うことによって、除去される図形があるとき、図形ABCDEFは線分情報の置き換えにより、図形GCDEHとなる。これにより、正しい塗りつぶし処理が可能となる。
図7に戻りステップ213:次に、編集部制御部22は塗りつぶし領域抽出部24に対し、クリップされた図形を対象に、塗りつぶし規則に従って塗りつぶし領域を抽出するよう指示する。このときに、図5に示す前記「線分の交点算出」や前記「交点・頂点のy座標での整列」を行い、整列されたy座標軸に従い走査と計算を行い、塗りつぶし領域を抽出する。
ステップ214:編集部制御部22はクリップ処理部23に対し、抽出した塗りつぶし領域をクリップウィンドウの左右端でクリップし、上下左右端でクリップ処理されて残った塗りつぶし領域について塗りつぶし処理を行うよう指示する。
ステップ215:最後に、編集部制御部22は解析結果格納部17に対し、解析結果を格納するよう指示し、クリップ処理と塗りつぶし処理を終了する。
図9及び図10で実際に図形Wをクリップ処理と塗りつぶし処理の過程を説明する。図9及び図10はクリップ処理と塗りつぶし処理の過程を示す説明図である。図9(a)にクリップされる図形Wの例を示す。まず、描画図形Wが矩形のクリップウィンドウQTUVの上端QT、下端UVをまたぐ図形かどうかを判断する。図9(a)に示す描画図形Wは上端QT、下端UV両方ともまたぐ図形であると判断する(ステップ203)。次に、図形情報を線分情報に変換する(ステップ208)。ここで図形に曲線が含まれている場合は、直線近似を行う。この様子を図9(b)に示す。描画図形Wは曲線部分W−3が含まれる図形なので、この曲線部分W−3は複数の線分W−4で近似する。図9(b)では、分かりやすさのために曲線を粗く分割して示している。
その後実際に、矩形のクリップウィンドウQTUVにおける後述する走査線Sに平行な上下端QT、UV両方でクリップを行い、クリップウィンドウQTUV外の線分を除去する処理を行う(ステップ210、212)。図10(a)では、クリップウィンドウQTUVの上下端QT、UVによるクリップの様子を示している。即ち、複数の線分W−4で近似された部分の内の複数の線分IJ〜OPは、複数の頂点I〜頂点Pで結ばれる。そして、図10(b)に示すように、各頂点I〜Pを通るx軸に平行な境界線Lで領域Rを区切り、領域R1〜領域R6を抽出する。この領域R1〜領域R6内を、x軸と平行な方向の走査線Sによる走査により塗りつぶし規則の計算を行い、塗りつぶし領域を抽出している(ステップ213)。図10(c)に示すように、抽出された塗りつぶし領域に対して矩形のクリップウィンドウQTUVの左右端VQ、TUでクリップを行い、最後に塗りつぶし領域Zに対して塗りつぶし処理を行う(ステップ214)。
以上のように、第1の実施の形態は、クリップウィンドウQTUV内に収まらない図形、即ち、クリップウィンドウQTUVをまたぐ図形であった場合には、図形を矩形のクリップウィンドウQTUVの上下端QT、UVで先にクリップすることにより、クリップウィンドウQTUVの上下端QT、UVからはみ出る部分を除去する。その後、x軸に平行な方向の走査線Sにより走査を行うことにより、塗りつぶし規則の計算を行い、塗りつぶし領域を抽出する。そして、クリップウィンドウQTUVの左右端TU、VQでクリップして塗りつぶし処理を行う。これにより、第1の実施の形態によれば、クリップウィンドウQTUVの上下端QT、UVからはみ出る部分を除去した部分に関しては、線分の交点算出及び交点・頂点のy座標での整列を不要とすることができる。更に第1の実施の形態によれば、走査による塗りつぶし規則の計算といった処理時間の短縮が可能となるとともに、メモリ資源を節約することができるようになる。また、図形に曲線部があるときは、複数の線分で近似することにより、近似された線分情報から塗りつぶし領域を抽出できるので、クリップされた図形に対して塗りつぶし規則に従った、正しい塗りつぶし処理を行うことができるようになる。
<第2の実施の形態>
前記第1の実施の形態では、描画する図形をまず線分情報に分割し、クリップウィンドウQTUVの上端、下端QT、UVでクリップし、クリップウィンドウQTUVの上下端QT、UVからはみ出る部分を除去する。そして、x軸に平行な方向の走査線Sによる走査と計算をして塗りつぶし領域を抽出する。最後にクリップウィンドウの左端VQ、右端TUでクリップして、塗りつぶし処理を行った。これは、塗りつぶし規則に従った塗りつぶしを行うためには、線分情報を失っていると正しい塗りつぶしが行えないためであった。しかし、左右端はクリップを行わずに、塗りつぶし領域の抽出を行っている。そのため、左右端部分に関しては、線分の交点算出及び交点・頂点のy座標での整列は必要であり、更に走査と計算の処理に余分な時間がかかり、メモリ資源も余分に使われてしまう。第2の実施の形態ではこの点に着目し、事前に上下端だけでなく、左右端もクリップできていれば、時間とメモリ資源をより節約することができるようにしたものである。
図11は、第2の実施の形態に関する画像処理装置の構成を示すブロック図である。同図の印刷装置30において、データ受信部11、Job制御部12、データ解析判断部13、クリップ判定部14、図形抽出部16、解析結果格納部17、データ展開部18及び印刷制御部19については、前記第1の実施の形態における印刷装置10の各部と同じであるので、説明を省略する。
印刷装置30の装置制御部21は、図示しない記憶部に格納したプログラムにより動作し、データ編集部50を含めたこれら各部の制御を行う。データ編集部50のクリップ処理部53は、クリップ判定部14において、クリップウィンドウ内に収まらない図形であると判定された図形に対して、クリップウィンドウの上下端及び左右端からはみ出る部分を除去するクリップ処理を行う。
塗りつぶし領域抽出部54は、クリップ処理部53のクリップ処理により図形の一部が除去された場合に、塗りつぶし処理ができるようにクリップウィンドウに沿って線分を補間する。そして、補間された図形について塗りつぶし領域を抽出し、その塗りつぶし領域に対して塗りつぶし処理を行う。そして、クリップされた図形情報を解析結果格納部17へ渡す。編集部制御部52は、データ編集部50の各部を制御する。
第2の実施の形態について動作を説明する。第2の実施の形態に関するデータ編集部50の動作の概略は、前記第1の実施の形態の図6と同一であるので同図を用いて説明する。即ち、図6のステップ106おいては、前記ステップ103で矩形のクリップウィンドウ内に収まらない図形、即ち、クリップウィンドウをまたぐ図形であった場合に、編集部制御部52はクリップ処理部53に対し、後述する図形のクリップ処理を行うよう指示する。
クリップ処理部53はクリップウィンドウ内に収まらない図形に対して、はみ出る部分を除去するクリップ処理を行う。ステップ106のクリップ処理について、図12の詳細フローに沿って、処理の手順を説明する。図12は、第2の実施の形態に関するクリップ処理と塗りつぶし処理の動作を示すフローチャートである。
ステップ301:データ編集部50の編集部制御部52はクリップ処理部53に対して、描画図形が矩形のクリップウィンドウの外であるかどうかを判断するよう指示する。クリップ処理部53は、図形描画コマンドのパラメータとクリップウィンドウの座標値から判断する。描画図形が完全にクリップウィンドウの内に位置する場合には、その図形全体がクリップ対象となるため、以降の処理を行わずに終了となる。
一方、描画図形が一部でもクリップウィンドウの外にある場合には、完全にクリップウィンドウ内に収まっておらず、クリップウィンドウからはみ出ている部分があるということになるので、クリップ処理対象図形として、以降の処理を行う。
ステップ302:編集制御部52はクリップ処理部53に対して、図形を線分情報に変換するよう指示する。即ち、クリップ処理部53は図形に曲線が含まれる場合には、複数の線分を用いて曲線を近似して線分情報に変換する。
ステップ303:編集制御部52はクリップ処理部53に対して、クリップウィンドウで図形をクリップするよう指示する。即ち、前記ステップ302において図形情報は線分情報に変換されているので、クリップ処理部53は、クリップウィンドウの座標と比較して、クリップウィンドウ外の線分を除去する処理をする。クリップウィンドウと交差する線分がある場合には、その線分とクリップウィンドウとの交点を算出し、線分情報を置き換える。
ステップ304:次に、編集制御部52は塗りつぶし領域抽出部54に対し、塗りつぶし規則に従った塗りつぶし領域の抽出が正しく行われるよう、図形のクリップした部分に対して線分を補間する処理を行うよう指示する。この様子を図13に示す。
図13は第2の実施の形態に関するクリップ処理の一部を示す説明図である。図13(a)は、描画図形Wと矩形のクリップウィンドウQTUVが与えられた場合、描画図形WとクリップウィンドウQTUVが交わる頂点をA、B、C、D、E、F、G、Hとすることを示す。これに対してクリップウィンドウQTUVにおける走査線Sに平行な上下端QT、UV及び左右端TU、VQでクリップ処理を行う。そうすると、図13(c)に示すような図形BC、DE、FG、HAが得られる。この図形BC、DE、FG、HAに対してクリップされた部分に線分AB、CD、EF、GHを補間すると、図13(e)に示す図形ABCDEFGHとなる。これにより、塗りつぶし領域の抽出を正しく行うことができる。
また、図13(b)は、描画図形Wと矩形のクリップウィンドウQTUVが与えられた場合、描画図形WとクリップウィンドウQTUVが交わる頂点をI、J、K、Lとすることを示す。これに対して、クリップウィンドウQTUVにおける走査線Sに平行な上下端QT、UV及び左右端TU、VQでクリップ処理を行う。そうすると、図13(d)のような図形IL、JKが得られる。この図形IL、JKに対しクリップされた部分に、線分QIJ、QLKを補間すると図13(f)に示す図形QIJKLのようになる。線分QI、線分QJ、線分QL、線分QKの4本の線分を補間する。つまり、線分QI間、及び線分QL間は線分が2本存在することになる。これにより、塗りつぶし規則に従った塗りつぶし領域の抽出を正しく行うことができるようになる。
ステップ305:次に、編集制御部52は塗りつぶし領域抽出部54に対し、ステップ304で生成された図形に対し走査と計算を行って塗りつぶし領域を抽出することにより、正しく塗りつぶし領域を抽出するよう指示する。そして、実際に塗りつぶし処理を行うよう指示する。
ステップ306:最後に、編集制御部52は解析結果格納部37に対し、解析結果を格納するよう指示する。その後、処理を終了する。
以上のように、第2の実施の形態によれば、描画図形を予め矩形のクリップウィンドウの上下左右でクリップして、クリップウィンドウからはみ出る部分を除去するとともに、足りない部分の線分を補うことにより、塗りつぶし規則に従った塗りつぶしを正しく行えるようにしたので、クリップウィンドウ上下外及び左右外の描画図形における線分の交点算出及び交点・頂点のy座標での整列を不要にすることができる。更に第2の実施の形態によれば、走査と計算の処理の短縮が図れるとともに、メモリ資源の節約をすることができる。
以上の実施の形態では、描画コマンドを解析して印刷イメージを生成する形式の画像処理装置に対するものであるが、上位装置から印刷イメージデータが送信され、その印刷イメージデータを印刷する形式の装置であっても、上位装置で印刷イメージを生成する際に、上記実施の形態を適用することもできる。
10 印刷装置
14 クリップ判定部
20 データ編集部
21 装置制御部
22 編集部制御部
23 クリップ処理部
24 塗りつぶし領域抽出部

Claims (4)

  1. 上位装置から送信された印刷データを受信するデータ受信部と、
    前記印刷データに含まれる描画図形が矩形のクリップウィンドウ内に収まるかどうかを判定するクリップ判定部と、
    前記クリップ判定部での判定の結果、前記クリップウィンドウ内に収まらない場合、前記描画図形に対し前記クリップウィンドウの上下端でクリップ処理を行うクリップ処理部と、
    前記クリップ処理部における上下端でのクリップ処理後の図形について、塗りつぶし領域を抽出する塗りつぶし領域抽出部と、
    塗りつぶし処理された図形情報から印刷イメージデータを生成するデータ展開部と
    印刷部に対し前記印刷イメージデータの印刷指示を行う印刷制御部を有し、
    更に、前記クリップ処理部は、前記塗りつぶし領域抽出部で抽出された塗りつぶし領域に対し前記クリップウィンドウの左右端でクリップ処理を行い、前記左右端でクリップ処理された図形情報に対し前記塗りつぶし処理を行い、かつ前記塗りつぶし処理を行った図形情報を前記データ展開部へ渡すことを特徴とする画像処理装置。
  2. 前記塗りつぶし領域抽出部は、前記描画図形を複数の線分情報に変換し、前記線分情報からなる図形の頂点を通る境界線を境に塗りつぶし領域を抽出し、
    かつ、前記描画図形に曲線部があるときは、複数の線分で近似することにより前記線分情報への前記変換を行うことを特徴とする請求項1記載の画像処理装置。
  3. 前記塗りつぶし領域抽出部は、前記クリップウィンドウの上下端でのクリップ処理により、図形の線分の一部が除去された場合に、塗りつぶし処理ができるようにその線分と前記クリップウィンドウの端部との交点を算出し、前記線分の情報を置き換えることを特徴とする請求項2記載の画像処理装置。
  4. 上位装置から送信された印刷データをデータ受信部により受信するデータ受信ステップと、
    前記印刷データ描画図形が矩形のクリップウィンドウ内に収まるかどうかをクリップ判定部により判定するクリップ判定ステップと、
    前記クリップウィンドウ内に収まらない場合、クリップ処理部により矩形のクリップウィンドウの上下端でのクリップ処理を行う第1のクリップ処理ステップと、
    前記クリップ処理部における上下端でのクリップ処理後の図形について、塗りつぶし領域を塗りつぶし領域抽出部により抽出する塗りつぶし領域抽出ステップと、
    前記塗りつぶし領域抽出部で抽出された図形に対して、前記クリップ処理部により左右端でのクリップ処理を行う第2のクリップ処理ステップと、
    前記左右端でクリップ処理された図形情報に対し前記クリップ処理部により塗りつぶし処理を行う塗りつぶし処理ステップと、
    前記塗りつぶし処理された図形情報からデータ展開部により印刷イメージデータを生成するデータ展開ステップと、
    印刷部に対し前記印刷イメージデータの印刷指示を印刷制御部により行う印刷制御ステップをコンピュータに実行させるための画像処理プログラム。
JP2010122329A 2010-05-28 2010-05-28 画像処理装置及び画像処理プログラム Active JP5473782B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010122329A JP5473782B2 (ja) 2010-05-28 2010-05-28 画像処理装置及び画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010122329A JP5473782B2 (ja) 2010-05-28 2010-05-28 画像処理装置及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2011248700A JP2011248700A (ja) 2011-12-08
JP5473782B2 true JP5473782B2 (ja) 2014-04-16

Family

ID=45413867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010122329A Active JP5473782B2 (ja) 2010-05-28 2010-05-28 画像処理装置及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP5473782B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5782401B2 (ja) * 2012-03-29 2015-09-24 株式会社沖データ 画像形成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613052A (en) * 1993-09-02 1997-03-18 International Business Machines Corporation Method and apparatus for clipping and determining color factors for polygons
JPH11198489A (ja) * 1998-01-14 1999-07-27 Fuji Xerox Co Ltd 印刷処理装置
JP2001307114A (ja) * 2000-04-19 2001-11-02 Fuji Xerox Co Ltd 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
JP2011248700A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
JP4614389B2 (ja) 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム
JP6385406B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US9317944B2 (en) Alignment of start and end of dashed curves
EP0537030B1 (en) Character or graphic processing method
US5095520A (en) Method and apparatus for drawing wide lines in a raster graphics system
WO2018135295A1 (ja) 印刷制御装置、ページデータ修正方法、および、ラスタデータ生成方法
AU2011205085B2 (en) 2D region rendering
JP5473782B2 (ja) 画像処理装置及び画像処理プログラム
US20150023595A1 (en) Method for Rendering Paths without Outlining Artifacts
JP5782401B2 (ja) 画像形成装置
JP5476103B2 (ja) ページ記述データ処理装置、方法及びプログラム
JP2009271700A (ja) 画像処理装置および画像処理方法
US9437014B2 (en) Method for labeling segments of paths as interior or exterior
JPH1131231A (ja) 画像形成装置およびグラデーション描画方法
US20150022546A1 (en) Method for Rendering Paths without Aliasing Artifacts
JP2002244643A (ja) 画像処理装置
JP2001307115A (ja) 画像処理装置および画像処理方法
JP3843794B2 (ja) 図形処理装置
JP3823730B2 (ja) 画像処理装置及びその方法
AU2015268723B1 (en) Method, system and apparatus for modifying a font character
JP3211591B2 (ja) イメージ処理装置
JP4764730B2 (ja) 画像形成装置及び画像形成方法
JP6926394B2 (ja) 印刷装置及びプログラム
JP3750363B2 (ja) 描画情報処理装置及び描画情報処理方法
US9430851B2 (en) Method for converting paths defined by a nonzero winding rule

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131212

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: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140204

R150 Certificate of patent or registration of utility model

Ref document number: 5473782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350