(57)【要約】【課題】線オブジェクトの場合には、細線補償処理によりレンダリング処理後の画像データから消失することなく描画されるが、その他の属性のオブジェクトの場合は、細線補償処理に相当する仕組みがないために消失してしまう可能性がある。【解決手段】  印刷データに含まれる線オブジェクトとは異なるオブジェクトのサイズを取得し、その取得したサイズと、印刷データがレンダリングされる座標系での画素のサイズとを比較し、取得したサイズが画素のサイズより小さいと判定すると、そのオブジェクトを線オブジェクトに変換し、その変換された線オブジェクトに細線補償処理を実行する。【選択図】  図２
2017154313.tif 000002
【特許請求の範囲】
【請求項１】
線オブジェクトとは異なるオブジェクトを含む印刷データを処理する画像処理装置であって、
前記異なるオブジェクトのサイズを取得する取得手段と、
前記取得手段が取得したサイズと、前記印刷データがレンダリングされる画素のサイズとを比較し、前記取得したサイズが前記画素のサイズより小さいか否かを判定する判定手段と、
前記判定に基づいて、前記取得したサイズが前記画素のサイズより小さい前記異なるオブジェクトを線オブジェクトに変換する変換手段と、
前記変換手段により変換された線オブジェクトに細線補償処理を実行する細線補償手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記取得手段は、前記異なるオブジェクトの高さ及び幅を取得し、前記判定手段は、前記オブジェクトの高さ及び幅と、前記画素の高さ及び幅のそれぞれとを比較して、前記取得した高さ及び幅がともに前記画素の高さ及び幅より小さい場合に、前記取得したサイズが前記画素のサイズより小さいと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素の高さ及び幅は同じであることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記異なるオブジェクトは、塗りオブジェクトであることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記変換手段は、前記異なるオブジェクトの高さが当該オブジェクトの幅よりも長いときは、前記異なるオブジェクトの幅が線オブジェクトの線幅に、前記異なるオブジェクトの高さが線オブジェクトの線の長さになるように変換し、
前記異なるオブジェクトの幅さが当該オブジェクトの高さよりも長いときは、前記異なるオブジェクトの高さが線オブジェクトの線幅に、前記異なるオブジェクトの幅が線オブジェクトの線の長さになるように変換することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記異なるオブジェクトが、外周上の複数の点と内周上の複数の点を含む枠線オブジェクトの場合、
前記取得手段は、前記外周上の複数の点からサンプリングした複数の点と、当該サンプリングした複数の点のそれぞれから最小距離にある前記内周上の点との間の距離を求めて前記枠線オブジェクトのサイズとすることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記判定手段は、前記外周上の複数の点のそれぞれから最小距離にある内周上の点との間の複数の距離と、前記出力する画像の画素のサイズとを比較し、前記複数の距離が全て前記画素のサイズより小さいときに、前記取得したサイズが前記画素のサイズより小さいと判定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記変換手段は、前記枠線オブジェクトの塗り幅を線オブジェクトの線幅に、前記枠線オブジェクトの外周を線オブジェクトの線長さとするように線オブジェクトへ変換することを特徴とする請求項６又は７に記載の画像処理装置。
【請求項９】
前記印刷データは、ＰＤＬ（ページ記述言語）データであることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記変換手段により変換された線オブジェクトであって前記細線補償処理がなされた線オブジェクトと、前記変換手段により変換されていない前記印刷データに含まれるオブジェクトを前記座標系でレンダリングするレンダリング手段を更に有することを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
線オブジェクトとは異なるオブジェクトを含む印刷データを処理する画像処理装置を制御する制御方法であって、
前記異なるオブジェクトのサイズを取得する取得工程と、
前記取得工程で取得したサイズと、前記印刷データがレンダリングされる座標系での画素のサイズとを比較し、前記取得したサイズが前記画素のサイズより小さいか否かを判定する判定工程と、
前記判定に基づいて、前記取得したサイズが前記画素のサイズより小さい前記異なるオブジェクトを線オブジェクトに変換する変換工程と、
前記変換工程で変換された線オブジェクトに細線補償処理を実行する細線補償工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
レンダリング処理では、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）データに代表されるＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを入力とする。そして、そのＰＤＬデータに含まれるオブジェクトを、ＲＧＢのピクセル値を含む画像データに変換する。その際、ＰＤＬデータに含まれるオブジェクトのサイズが極めて小さい場合は、レンダリング処理後の画像データにおいて画素のサイズよりも小さくなってしまい、レンダリング処理後の画像データから消失してしまう。このような問題に対処する技術として細線補償処理が広く知られている。この細線補償処理では、消失が予想される線は、予めその線幅を太らせて画素のサイズよりも大きくすることにより、その細線の消失を防いでいる。例えば特許文献１では、描画されるべき線が消失すると予想される場合は、その線幅を予め太らせてからレンダリングすることにより、本来描画されるべき線が消失するのを防止している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１６３７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した細線補償処理により、本来描画すべき線の消失を防止してレンダリング処理を行うことが可能になる。
【０００５】
一方で、ＰＤＬデータに含まれるオブジェクトの属性には、線オブジェクト以外に、塗りオブジェクト、画像オブジェクト、及びテキストオブジェクト等が存在する。線オブジェクトの場合には、上述した細線補償処理によりレンダリング処理後の画像データから消失することなく描画されるが、その他の属性のオブジェクトの場合は、細線補償処理に相当する仕組みがないために消失してしまう可能性がある。例えば、塗りオブジェクトをレンダリング処理する際に、その塗りオブジェクトの高さ又は幅がレンダリング処理後の画像データの座標系での画素のサイズよりも小さい場合、その塗りオブジェクトが消失してしまうことが考えられる。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の目的は、線オブジェクト以外のオブジェクトをレンダリングした際に、そのオブジェクトがレンダリングで得られた画像データから消失してしまうのを防止する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
線オブジェクトとは異なるオブジェクトを含む印刷データを処理する画像処理装置であって、前記異なるオブジェクトのサイズを取得する取得手段と、前記取得手段が取得したサイズと、前記印刷データがレンダリングされる画素のサイズとを比較し、前記取得したサイズが前記画素のサイズより小さいか否かを判定する判定手段と、前記判定に基づいて、前記取得したサイズが前記画素のサイズより小さい前記異なるオブジェクトを線オブジェクトに変換する変換手段と、前記変換手段により変換された線オブジェクトに細線補償処理を実行する細線補償手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、線オブジェクト以外のオブジェクトをレンダリングした際に、そのオブジェクトがレンダリングで得られた画像データから消失してしまうのを防止できる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る画像処理装置の構成を説明するブロック図。
【図２】本実施形態１に係る画像処理装置のレンダリング機能を説明する機能ブロック図。
【図３】実施形態１に係る塗りオブジェクトの一例を示す図。
【図４】図３の塗りオブジェクトの領域の幅及び高さを示す図。
【図５】実施形態１に係る大きさ保管部が格納しているデータの一例を示す図。
【図６】実施形態１に係るオブジェクト変換部による塗りオブジェクトから線オブジェクトへの変換の一例を説明する図。
【図７】実施形態１に係る画像形成装置によるレンダリング処理を説明するフローチャート。
【図８】図７のＳ７０３のオブジェクト変換処理を説明するフローチャート。
【図９】図８のＳ８０３のブジェクト変換処理を説明するフローチャート。
【図１０】実施形態２に係る塗りオブジェクトの一例を示す図。
【図１１】図１０の塗りオブジェクトの左上頂点Ａ０の近傍、及び右側の枠の部分を拡大した図。
【図１２】実施形態２に係る画像処理装置において、大きさ保管部に格納された各点と、それに対応する距離のデータ例を示す図。
【図１３】実施形態２に係る画像処理装置のオブジェクト変換部によるオブジェクト変換の一例を説明する図。
【図１４】実施形態２に係る画像形成装置によるオブジェクト変換処理を説明するフローチャート。
【図１５】図１４のＳ１４０６のオブジェクト変換処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
［実施形態１］
図１は、本発明の実施形態１に係る画像処理装置１０１の構成を説明するブロック図である。
【００１４】
画像処理装置１０１は、入出力インターフェース（Ｉ／Ｆ）１０２、ＣＰＵ１０３、ＲＡＭ１０４、ネットワークＩ／Ｆ１０５、記憶装置１０６を有し、これらはバス１０７を介して接続されている。入出力Ｉ／Ｆ１０２はデータの入出力を行う。データの入力元としては、ＰＣ（パーソナルコンピュータ）等の情報機器や、ＣＤ／ＤＶＤ／ＵＳＢ／ＳＤカードなどの各種メディアがあり、データの出力先としては、各種メディアに加えてプリンタや表示装置などが挙げられる。入出力Ｉ／Ｆ１０２はまた、ＰＤＬデータの入力や、レンダリング処理後の画像データを外部機器等へ出力するのにも使用される。
【００１５】
ＣＰＵ１０３は、記憶装置１０６にインストールされＲＡＭ１０４に展開されたプログラムを実行して、画像処理装置１０１の各種動作を制御している。ここでは特に、画像処理装置１０１による、後述するＰＤＬデータの解析処理、中間データの生成処理、各種判定処理などの各種処理を制御している。具体的には、後述の図２に示すＰＤＬデータ解析部２０３、制御部２０６、大きさ算出部２０４、大小判定部２０７、オブジェクト変換部２０８、中間データ生成部２１０、細線補償部２０９、ＲＩＰ部２１２等の処理を担う。ＲＡＭ１０４は、ＣＰＵ１０３のワークエリアを提供し、制御プログラムや各種データの保存に用いられる。実施形態１では、ＰＤＬデータ、画像データ及び一時変数等を保存し、またＣＰＵ１０３により実行されるプログラムも保存する。図２の大きさ保管部２０５、中間データ及びレンダリング処理後の画像データ２１３を保存する記憶部としても機能している。
【００１６】
記憶装置１０６は、例えばハードディスクドライブ（ＨＤＤ）等で、主に永続的なデータの保存に用いられ、プログラムや画像データを格納するとともに、ＲＡＭ１０４で格納するには容量が大きすぎるデータの一時保存にも用いられる。記憶装置１０６はＲＡＭ１０４と同様に、図２の大きさ保管部２０５、中間データ及びレンダリング処理後の画像データ２１３を保存する記憶部としても機能している。ネットワークＩ／Ｆ１０５は、ネットワークを介した外部機器とのデータ転送を行う。例えば、クラウドサーバなどとの間でデータの送受信を行う場合は、ネットワークＩ／Ｆ１０５から有線ＬＡＮ、或いは無線ＬＡＮを介してデータ転送が行われる。
【００１７】
図２は、本実施形態１に係る画像処理装置１０１のレンダリング機能を説明する機能ブロック図である。前述したように、この図２における各機能は、ＣＰＵ１０３が記憶装置１０６からＲＡＭ１０４に展開したプログラムを実行することにより達成される。
【００１８】
レンダリングプログラム２０１は、ＰＤＬデータ解析部２０３、制御部２０６、大きさ算出部２０４、大小判定部２０７、オブジェクト変換部２０８、細線補償部２０９、中間データ生成部２１０、ＲＩＰ部２１２を備えている。そしてデータとして、ＰＤＬデータ２０２、中間データ２１１、レンダリングの結果を示す画像データ２１３があり、大きさ保管部２０５は、大きさ算出部２０４が算出した幅や高さ、距離などのデータを保持している。これは詳しく後述する。
【００１９】
ＰＤＬデータ２０２は、ＰＤＦやＸＰＳデータに代表されるページ記述言語で、レンダリング処理の対象となるデータである。このＰＤＬデータ２０２は、出力する画像を記述した印刷データの一例であり、ページ記述言語（ＰＤＬ）に限らない。このＰＤＬデータ２０２は、ネットワークＩ／Ｆ１０５或いは入出力インターフェース１０２を介して入力される。このＰＤＬデータ２０２には、線オブジェクト、塗りオブジェクト、画像オブジェクト等が記述されており、これに従ってドキュメントや頁の画像が生成される。ＰＤＬデータ解析部２０３は、ＰＤＬデータ２０２を解析し、ドキュメントの頁数、レンダリングの対象となる頁の大きさ等を抽出する。また、頁に含まれるオブジェクトの数及び属性も、このＰＤＬデータ２０２から取得される。
【００２０】
制御部２０６は、ＰＤＬデータ２０２に、線オブジェクト以外の、例えば塗りオブジェクトが含まれるかどうかを判定する。また大きさ算出部２０４、大小判定部２０７、オブジェクト変換部２０８との間でデータの交換を行って、レンダリングにより消失する可能性のある塗りオブジェクトを線オブジェクトに変換する。線オブジェクトとは異なるオブジェクトを線オブジェクトに変換すると言う場合、その変換されるオブジェクトの属性を、線オブジェクトの属性に変更することも含む。また、線オブジェクトとは異なるオブジェクトを線オブジェクトに変換すると言う場合、その変換されるオブジェクトを、線の形状（すなわち、線の幅および長さに対応する情報で表現される形状）を表現するデータに変換することも含む。ＰＤＬデータ２０２に塗りオブジェクトが含まれるかどうかの判定は、ＰＤＬデータ解析部２０３がＰＤＬデータ２０２から読み取った属性に基づいて行われる。そして属性が塗りオブジェクトの場合は、そのオブジェクトが画素のサイズよりも細い或いは小さい場合に前処理として、塗りオブジェクトから線オブジェクトへの変換処理が行われる。その他の属性である画像オブジェクトや線オブジェクト等の場合は、この変換処理は実行されない。
【００２１】
塗りオブジェクトから線オブジェクトへの変換処理では、制御部２０６が塗りオブジェクトを大きさ算出部２０４に渡し、大きさ算出部２０４によって算出された塗りオブジェクトの大きさが大きさ保管部２０５に格納される。大小判定部２０７と制御部２０６との間のデータ交換では、大小判定部２０７が塗りオブジェクトの大きさと、画像データ２１３における画素のサイズと比較し、その比較結果を制御部２０６に渡す。オブジェクト変換部２０８と制御部２０６との間のデータ交換では、大小判定部２０７による比較結果に基づいて、画素のサイズよりも小さいと判定された塗りオブジェクトを、オブジェクト変換部２０８に渡す。そしてオブジェクト変換部２０８は、その塗りオブジェクトを線オブジェクトに変換し、その変換した得られた線オブジェクトを制御部２０６に返す。
【００２２】
大きさ算出部２０４は、塗りオブジェクトのデバイス座標系でのサイズを算出する。この算出処理は、塗りオブジェクトの大きさを記述するデータを取得することによっても行われる。すなわち大きさ算出部２０４は、塗りオブジェクトのデバイス座標系でのサイズを取得するとも言える。ここでデバイス座標系は、画像データに基づく画像を表示或いは印刷するデバイスにおいて、その画像データがレンダリングされる際の座標系を示す。前述の画素のサイズも同様に、このデバイスにおける座標系でのサイズである。こうして大きさ算出部２０４で得られた塗りオブジェクトのサイズは、ＰＤＬデータ解析部２０３によって解析された情報を基に判定される。このようにサイズを判定するのは次の理由からである。画像データに含まれるオブジェクトは、デバイスにおける座標系にしたがってレンダリングされる。このレンダリングには様々な方式がある。例えば、オブジェクトの領域に包含されるデバイス座標系における画素だけにそのオブジェクトが描かれる方式がある。この方式では、オブジェクトのサイズがデバイス座標系における画素のサイズ未満であると、そのオブジェクトは描かれないで消失することになる。したがって、消失してしまうオブジェクトを特定するために、オブジェクトのサイズを判定するのである。
【００２３】
図３は、実施形態１に係る塗りオブジェクトの一例を示す図である。
【００２４】
ここに示す座標系はＰＤＬデータの座標系であり、紙面右方向をｘ、紙面下方向をｙとする。塗りオブジェクトの領域３００は、（ｘ０，ｙ０）を原点としてベクトルＶ１，Ｖ２，Ｖ３，Ｖ４を順々に加算して求められた４点で囲われた領域となる。即ち、（ｘ０，ｙ０）、（ｘ０＋ｘ１，ｙ０＋ｙ１）、（ｘ０＋ｘ１＋ｘ２，ｙ０）、（ｘ０＋ｘ２，ｙ０−ｙ１）の４点で囲まれた矩形領域となる。尚、ここで説明した塗りオブジェクトの表現形式はあくまでも一例であり、扱うＰＤＬデータによって表現形式は異なる。
【００２５】
図４は、図３の塗りオブジェクトの領域３００の幅及び高さを示す図である。
【００２６】
ここではｘ方向を幅とし、ｙ方向を高さとする。大きさ算出部２０４は、このオブジェクトの幅としてｘ方向の変位を、高さとしてｙ方向の変位を求める。図３で示される塗りオブジェクトの領域３００は、原点（ｘ０，ｙ０）をスタートとして、ｘ方向に（ｘ０）〜（ｘ０＋ｘ１＋ｘ２）の間を、ｙ方向に（ｙ０−ｙ１）〜（ｙ０＋ｙ１）の間を変位する。これにより、塗りオブジェクトの領域３００の幅は（ｘ１＋ｘ２）、高さは（２ｙ１）となる。塗りオブジェクトの領域の幅及び高さを求める計算式は、以下の式（１）のようになる。
【００２７】
幅  ＝max（変位するｘ座標）−min（変位するｘ座標）
高さ＝max（変位するｙ座標）−min（変位するｙ座標）        …式（１）
ここでmax（変位するｘ座標）は、オブジェクトのｘ座標の最大値を示し、min（変位するｘ座標）はオブジェクトのｘ座標の最小値を示す。上述の例では、max（変位するｘ座標）は（ｘ０＋ｘ１＋ｘ２）、min（変位するｘ座標）はｘ０である。よって、幅は、ｘ０＋ｘ１＋ｘ２）−ｘ０＝ｘ１＋ｘ２となる。またmax（変位するｙ座標）は、オブジェクトのｙ座標の最大値を示し、min（変位するｙ座標）はオブジェクトのｙ座標の最小値を示す。上述の例では、max（変位するｙ座標）は（ｙ０＋ｙ１）、min（変位するｙ座標）は（ｙ０−ｙ１）である。よって、高さは、（ｙ０＋ｙ１）−（ｙ０−ｙ１）＝ｙ１＋ｙ１＝２ｙ１となる。
【００２８】
また、ＸＰＳでのＲｅｎｄｅｒＴｒａｎｓｆｏｒｍに代表される、ＰＤＬ座標系からデバイスの座標系への変換のために予め重畳すべきアフィン係数があれば、幅及び高さに対して畳みこんでおく。
【００２９】
大きさ保管部２０５は、大きさ算出部２０４が求めたオブジェクトの幅及び高さを格納する。
【００３０】
図５は、実施形態１に係る大きさ保管部２０５が格納しているデータの一例を示す図である。
【００３１】
列５０１は、格納されるオブジェクトを一意に示すオブジェクトＩＤ、列５０２はオブジェクトの高さ、列５０３はオブジェクトの幅である。図５では、（高さ、幅）がそれぞれ（０．２，０．７）、（０．７，１２．３）、（３２．２，１３．９）であるオブジェクトのデータが格納されている。このように、大きさ保管部２０５に格納されたデータからオブジェクトの大きさを取得できる。
【００３２】
大小判定部２０７は、大きさ保管部２０５に格納された高さ及び幅を基に、デバイス座標系での画素のサイズと比較して、画素のサイズより大きいかどうか大小判定を行う。本実施形態１で想定するデバイスの座標系では、画素の高さ及び幅は同じで、かつその大きさ（以下、サイズと呼ぶ）を「１」とする。尚、本発明は、画素の高さ及び幅が互いに異なる場合、或いは高さ及び幅が「１」でない場合も成立するが、ここでは説明を簡単にするため上述の場合で説明する。大小判定部２０７は、最初に、大きさ保管部２０５に格納されたデータを参照し、画素のサイズである「１」と比較する。
【００３３】
図５の例を参照して説明する。オブジェクトＩＤが「１」のデータ５０４は、高さ及び幅が共に画素のサイズ「１」を下回るため「小さい」と判定される。またオブジェクトＩＤが「２」のデータ５０５は、幅は画素のサイズ「１」を上回るが、高さが画素のサイズ「１」を下回るため「小さい」と判定される。またオブジェクトＩＤが「３」のデータ５０６は、幅及び高さともに画素のサイズ「１」を上回るために「大きい」と判定される。このように、オブジェクトの領域の高さ及び幅の少なくとも一方が画素のサイズ「１」を下回る場合は「小さい」と判定され、それ以外は「大きい」と判定される。
【００３４】
オブジェクト変換部２０８は、大小判定部２０７による判定結果に基づいて、画素のサイズ「１」を下回るため「小さい」と判定された塗りオブジェクトを線オブジェクトへ変換する。オブジェクト変換部２０８は、制御部２０６から大小判定部２０７による判定結果を受け取り、「小さい」と判定された塗りオブジェクトを線オブジェクトへ変換する。一方、「大きい」と判定された塗りオブジェクトに対しては変換処理は行わない。
【００３５】
図６は、実施形態１に係るオブジェクト変換部２０８による塗りオブジェクトから線オブジェクトへの変換の一例を説明する図である。
【００３６】
線オブジェクトの横幅をｗ、高さをｈとした場合、図６（Ａ）のように、幅（ｗ）が高さ（ｈ）よりも長いオブジェクト（ｗ＞ｈ）の場合は、線長さがｗで、線幅がｈの線オブジェクトに変換する。
【００３７】
一方、図６（Ｂ）のように、高さ（ｈ）が幅（ｗ）よりも長い場合（ｗ＜ｈ）は、線長さがｈで、線幅がｗとなる線オブジェクトへ変換される。
【００３８】
このように、必ず線長さが線幅よりも長くなるように線オブジェクトへ変換することにより、線幅は、必ず画素のサイズよりも小さくなるように変換される。
【００３９】
中間データ生成部２１０は、中間データ２１１を生成する。ＰＤＬデータ２０２からＰＤＬデータ解析部２０３によって解析された情報、及びオブジェクト変換部２０８によって変換された線オブジェクトを基に、中間データが生成される。細線補償部２０９は線オブジェクトのみに対して細線補償処理を実行する。即ち、線幅が、デバイス座標系において画素サイズよりも小さいと判定された線オブジェクトに対しては、線幅を膨らます処理を実行する。中間データ２１１は、中間データ生成部２１０によって生成されるＲＩＰ用データである。画像データ生成処理を行うために好適な形式を持つデータであり、ＲＩＰ部２１２の入力データとして用いられる。ＲＩＰ部２１２は、中間データ２１１から画像データ２１３をデバイス座標系で生成して出力する。
【００４０】
図７は、実施形態１に係る画像形成装置１０１によるレンダリング処理を説明するフローチャートである。この処理を実行するプログラムは記憶装置１０６に格納されており、ＣＰＵ１０３が、そのプログラムをＲＡＭ１０４に展開して実行することにより、このフローチャートで示す処理が達成される。従って、ここではＣＰＵ１０３を、各ステップの処理の主体として説明する。
【００４１】
まずＳ７０１でＣＰＵ１０３はＰＤＬデータ解析部２０３として機能し、入力したＰＤＬデータ２０２の解析処理を行う。次にＳ７０２に進みＣＰＵ１０３は、Ｓ７０１の解析処理の結果に基づいて、そのＰＤＬデータ２０２に含まれるオブジェクトが塗りオブジェクトかどうか判定する。ここで塗りオブジェクトと判定するとＳ７０３に進み、ＣＰＵ１０３は、その塗りオブジェクトを線オブジェクトに変換する。このときＣＰＵ１０３は、制御部２０６、大きさ算出部２０４、大小判定部２０７及びオブジェクト変換部２０８として機能し、これらの間でデータの交換を行って線オブジェクトに変換してＳ７０４に進む。この処理は図８、図９を参照して後述する。またＳ７０２で塗りオブジェクトでないと判定するとＳ７０４に進む。Ｓ７０４でＣＰＵ１０３は、１頁分のＰＤＬデータの解析処理が終了したかどうか判定し、終了していない場合にはＳ７０１に進んで、引き続きＰＤＬデータ解析処理を実行する。
【００４２】
こうしてＳ７０４で、１頁分のＰＤＬデータの解析処理が終了するとＳ７０５に進み、ＣＰＵ１０３は中間データ生成部２１０として機能して中間データ２１１を生成する。この際、線オブジェクトに対しては、細線補償部２０９により細線補償処理が行われる。そして最後にＳ７０６に進みＣＰＵ１０３はＲＩＰ部２１２として機能し、レンダリング処理により中間データ２１１から画像データ２１３をデバイス座標系で生成する。
【００４３】
このように、小さいと判定された塗りオブジェクトは線オブジェクトに変換され、かつその線オブジェクトはレンダリング処理の前に細線補償部２０９により細線補償処理が行われている。これにより、小さいと判定された塗りオブジェクトは、画像データ２１３から消失することなく確実に描画されることになる。
【００４４】
図８は、図７のＳ７０３のオブジェクト変換処理を説明するフローチャートである。
【００４５】
まずＳ８０１でＣＰＵ１０３は、デバイス座標系でのオブジェクトの高さと、画素の高さとを比較し、そのオブジェクトの高さが画素の高さよりも低い（小さい）かどうか判定する。オブジェクトの高さが画素の高さよりも低い（小さい）と判定するとＳ８０３に進み、ＣＰＵ１０３は、その塗りオブジェクトを線オブジェクトに変換して、この処理を終了する。
【００４６】
一方、Ｓ８０１でＣＰＵ１３０は、オブジェクトの高さが画素の高さよりも高い（大きい）と判定した場合はＳ８０２に進む。Ｓ８０２でＣＰＵ１０３は、オブジェクトの幅と画素の幅とを比較し、オブジェクトの幅が画素の幅より短い（小さい）と判定するとＳ８０３に進み、ＣＰＵ１０３は、その塗りオブジェクトを線オブジェクトに変換して、この処理を終了する。一方、Ｓ８０２でオブジェクトの幅が画素の幅より大きいと判定すると、Ｓ８０３のオブジェクト変換を実行することなく、この処理を終了する。
【００４７】
図９は、図８のＳ８０３のブジェクト変換処理を説明するフローチャートである。
【００４８】
先ずＳ９０１でＣＰＵ１０３は、オブジェクトの高さが、そのオブジェクトの幅よりも短い（小さい）かどうか判定する。ここでオブジェクトの高さの方が幅よりも短いと判定するとＳ９０２に進み、ＣＰＵ１０３は、図６（Ａ）を参照して説明したように、オブジェクトの高さを線幅に、オブジェクトの幅が線長さとなるように線オブジェクトに変換して、この処理を終了する。
【００４９】
一方、Ｓ９０１でオブジェクトの高さの方が、そのオブジェクトの幅よりも長いと判定した場合はＳ９０３に進む。Ｓ９０３でＣＰＵ１０３は、図６（Ｂ）を参照して説明したように、オブジェクトの幅が線幅に、オブジェクトの高さが線長さになるように線オブジェクトに変換して、この処理を終了する。
【００５０】
これにより、小さいと判定された塗りオブジェクトを変換した線オブジェクトの線幅が、画素の幅よりも小さいことが保証される。これにより、塗りオブジェクトから変換された線オブジェクトは、確実に細線補償の対象となるため、その塗りオブジェクトが、レンダリングにより生成された画像データから消失することがなくなる。
【００５１】
［実施形態２］
次に、塗りオブジェクトを線オブジェクトに変換する他の例を実施形態２で説明する。尚、実施形態２に係る画像形成装置１０１の構成は前述の実施形態１に係る画像形成装置と同じであるため、その説明を省略する。
【００５２】
図１０は、実施形態２に係る塗りオブジェクト１０００の一例を示す図である。ここでは、枠線の塗りオブジェクトとしている。
【００５３】
この塗りオブジェクト１０００は、左上頂点Ａ０の座標が（ｘ０、ｙ０）で、幅ｗ２、高さがｈ２の外周と、左上頂点Ｂ０の座標が（ｘ１、ｙ１）で、幅ｗ１、高さがｈ１の内周で構成されており、この内部が塗られるオブジェクトである。次に、この塗りオブジェクト１０００から線オブジェクトへの変換を説明する。またＡ１〜Ａ３はそれぞれ外周の頂点を示し、Ｂ１〜Ｂ３はそれぞれ内周の頂点を示している。
【００５４】
ここではまず最初に、内周と外周の距離を導出する。
【００５５】
図１１（Ａ）（Ｂ）は、図１０の塗りオブジェクト１０００の左上頂点Ａ０の近傍、及び右側の枠の部分を拡大した図である。図１１（Ａ）は、塗りオブジェクト１０００の外周の左上頂点Ａ０と内周の頂点Ｂ０付近の拡大図である。上述したように、外周の左上頂点Ａ０の座標は（ｘ０，ｙ０）で、内周の左上頂点Ｂ０の座標は（ｘ１，ｙ１）である。このとき、頂点Ａ０から内周までの距離Ｃ０を求めると、図１１（Ａ）より、距離Ｃ０は、頂点Ａ０と頂点Ｂ０との間の長さである。従って、頂点Ａ０から内周までの距離Ｃ０は、
Ｃ０＝√｛（ｘ１−ｘ０）２＋（ｙ１−ｙ０）２｝
で求められる。
【００５６】
図１１（Ｂ）は、図１０の右側の線Ａ１−Ａ３上のｙ座標がｙ２である点Ａ４と、点Ａ４から内周の点Ｂ４までの距離Ｃ４を求める図である。このとき内周の線Ｂ１−Ｂ３と直線ｙ＝ｙ２が交わる点が点Ｂ４（ｘ１＋ｗ１，ｙ２）である。従って、外周上の点Ａ４から内周までの距離Ｃ４は、
Ｃ４＝（ｘ０＋ｗ２）−（ｘ１＋ｗ１）＝ｘ０＋ｗ２−ｘ１−ｗ１
となる。
【００５７】
このようにして、一定間隔で外周上の点をサンプリングして、その外周上の各点と内周との距離を複数求める。これらの処理は、大きさ算出部２０４で行われ、求められた距離は大きさ保管部２０５に格納される
図１２は、実施形態２に係る画像処理装置１０１において、上述の処理により大きさ保管部２０５に格納された各点と、それに対応する距離のデータ例を示す図である。
【００５８】
列１２０１は、オブジェクトを一意に表わすオブジェクトＩＤを示す。列１２０２は、一定間隔で外周上の点をサンプリングした点を示す情報である。図１２（Ａ）のオブジェクトでは、Ｄ０−Ｅ０間、Ｄ１−Ｅ１間、Ｄ２−Ｅ２間、Ｄ３−Ｅ３間、の４点のサンプリングを行っていることを表わす。列１２０３は、４点のサンプリングした点についてそれぞれ複数の距離を表わしている。尚、ここで、Ｄ０，Ｄ１，Ｄ２，Ｄ３はそれぞれ外周上のサンプリング点を示し、Ｅ０，Ｅ１，Ｅ２，Ｅ３はそれぞれ、外周上のサンプリング点に対応する内周上のサンプリング点を示す。
【００５９】
大きさ保管部２０５に保管された各点に対応する距離に基づいて、大小判定部２０７で判定が行われる。この判定方法は、オブジェクトＩＤ１２０１が同じであるオブジェクトのデータに対して、それぞれ画素のサイズとの比較が行われる。サンプリングされた全ての点に対して、距離１２０３と画素のサイズ「１」と比較する。こうして、全ての点において、距離が画素のサイズ「１」を下回ると、判定結果は画素よりも「小さい」と判定される。図１２（Ａ）の場合は、参照番号１２０６で示す場合の距離は「１」を下回っているが、参照番号１２０４〜１２０５及び１２０７の場合は距離が「１」を上回っているため、判定結果は「大きい」となる。
【００６０】
一方、図１２（Ｂ）のオブジェクトＩＤが「３」のオブジェクトの場合、参照番号１２０８〜１２１１で示す４点全ての距離が「１」を下回るため、判定結果は「小さい」となる。このように大小判定部２０７で「小さい」と判定されたオブジェクトは、オブジェクト変換部２０８により線オブジェクトに変換される。尚、ここで、Ｆ０，Ｆ１，Ｆ２，Ｆ３はそれぞれ外周上のサンプリング点を示し、Ｇ０，Ｇ１，Ｇ２，Ｇ３はそれぞれ、外周上のサンプリング点に対応する内周上のサンプリング点を示す。
【００６１】
図１３は、実施形態２に係る画像処理装置１０１のオブジェクト変換部２０８によるオブジェクト変換の一例を説明する図である。
【００６２】
外周１３０１と内周１３０２で表わされる枠線の塗りオブジェクト１３００の変換を例示したものである。このオブジェクト変換では、外周を線長さとし、塗り幅１３０３が線幅１３０４と等しくなるように変換が行われる。塗り幅は、大きさ保管部２０５から求められ、格納される距離１２０３のうち最も小さいものが選ばれる。
【００６３】
例えば図１２（Ｂ）の場合には、参照番号１２１１の「０．２」が塗り幅となる。このように変換することで、変換後の線オブジェクトの線幅は、画素のサイズを下回る線オブジェクトとなる。これにより、この線オブジェクトは、細線補償処理により、レンダリング後の画像データから消失されなくなる。図１３で、実線１３０５は、変換された線オブジェクトを示している。
【００６４】
図１４は、実施形態２に係る画像形成装置１０１によるオブジェクト変換処理を説明するフローチャートである。これは前述の実施形態１の図７のＳ７０３の処理に相当する。この処理を実行するプログラムは記憶装置１０６に格納されており、ＣＰＵ１０３が、そのプログラムをＲＡＭ１０４に展開して実行することにより、このフローチャートで示す処理が達成される。従って、ここではＣＰＵ１０３を、各ステップの処理の主体として説明する。
【００６５】
まずＳ１４０１でＣＰＵ１３０は大きさ算出部２０４として機能し、枠線オブジェクトに対して一定間隔で外周上の点をサンプリングして抽出する。次にＳ１４０２に進みＣＰＵ１３０は、そのサンプリングした点に最も近い内周上の点との距離（最小距離）を求める。次にＳ１４０３に進みＣＰＵ１０３は、その算出した距離を大きさ保管部２０５に格納する。そしてＳ１４０４でＣＰＵ１０３は、その枠線オブジェクトに対するサンプリングが全て終了したかどうか判定し、サンプリングが終了すればＳ１４０５に進み、未終了であればＳ１４０１に進む。そしてＳ１４０１から引き続きサンプリング点と、その点における前述の距離の算出及び保存を行う。尚、このサンプリングが終了したかどうかの判定は、予め幾つのポイントで距離を求めるかを決めておき、その決められた数に達したときにサンプリング終了と判定すればよい。
【００６６】
Ｓ１４０５でＣＰＵ１０３は大小判定部２０７として機能し、大きさ保管部２０５に格納された距離と画像のサイズ「１」とを比較して、画素のサイズとの大小判定を行う。Ｓ１４０５でＣＰＵ１０３は、格納された複数のサンプリング点に対応する複数の距離の全てが、画素のサイズよりも小さいと判定するとＳ１４０６に進み、ＣＰＵ１０３は、その枠線オブジェクトを線オブジェクトに変換して、この処理を終了する。一方、Ｓ１４０５でＣＰＵ１０３は、少なくとも１つのサンプリング点において画素のサイズを上回る距離があれば、Ｓ１４０６のオブジェクト変換処理を実行することなく、この処理を終了する。
【００６７】
図１５は、図１４のＳ１４０６のオブジェクト変換処理を説明するフローチャートである。
【００６８】
Ｓ１５０１でＣＰＵ１０３はオブジェクト変換部２０８として機能し、枠線オブジェクトの塗り幅１３０３（図１３）を取得する。そしてＳ１５０２に進みＣＰＵ１３０は、例えば図１３で説明したように、その塗り幅を線幅に、外周を線長さとするように、枠線オブジェクトを線オブジェクトへ変換する。
【００６９】
以上説明したように実施形態２によれば、枠線オブジェクトのような塗りオブジェクトで画素のサイズよりも細いオブジェクトを、画素サイズよりも細い線オブジェクトに変換する。これにより、その変換された線オブジェクトが細線補償処理の対象となり、細い塗りオブジェクトであっても、レンダリング後の画像データから消失する虞がなくなるという効果がある。
【符号の説明】
【００７０】
１０１…画像処理装置、１０３…ＣＰＵ、１０４…ＲＡＭ、１０６…記憶装置、２０４…大きさ算出部、２０５…大きさ保管部、２０７…大小判定部、２０８…オブジェクト変換部、２０９…細線補償部
【図１】
2017154313.tif 000003
【図２】
2017154313.tif 000004
【図３】
2017154313.tif 000005
【図４】
2017154313.tif 000006
【図５】
2017154313.tif 000007
【図６】
2017154313.tif 000008
【図７】
2017154313.tif 000009
【図８】
2017154313.tif 000010
【図９】
2017154313.tif 000011
【図１０】
2017154313.tif 000012
【図１１】
2017154313.tif 000013
【図１２】
2017154313.tif 000014
【図１３】
2017154313.tif 000015
【図１４】
2017154313.tif 000016
【図１５】
2017154313.tif 000017