(57)【要約】【課題】  画像処理装置において、レンダリング条件に基づいて、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。【解決手段】  本発明の画像処理装置は、ＰＤＬデータにレンダリング処理を実行し、ビットマップデータを生成するレンダリング手段と、レンダリング処理に用いられるレンダリング条件であって、レンダリング条件の設定を受け付ける受付手段と、レンダリング手段が生成したビットマップデータにスムージング処理を実行するスムージング手段とを有し、受付手段がレンダリング条件の設定を受け付けたことに基づいて、スムージング手段はビットマップデータ内の斜め線を太らせるスムージング処理を実行し、受付手段がレンダリング条件の設定を受け付けていないことに基づいて、スムージング手段は斜め線を細らせるスムージング処理を実行することを特徴とする。【選択図】  図７
2020104304.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータにレンダリング処理を実行し、ビットマップデータを生成するレンダリング手段と、
前記レンダリング処理に用いられるレンダリング条件であって、前記ＰＤＬデータで指定された所定の線幅の斜め線が前記所定の線幅の水平な線よりも太くなるビットマップデータを生成するためレンダリング条件の設定を受け付ける受付手段と、
前記レンダリング手段が生成した前記ビットマップデータにスムージング処理を実行するスムージング手段とを有し、
前記受付手段が前記レンダリング条件の設定を受け付けたことに基づいて、前記スムージング手段は前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、
前記受付手段が前記レンダリング条件の設定を受け付けていないことに基づいて、前記スムージング手段は前記斜め線を細らせるスムージング処理を実行することを特徴とする画像処理装置。
【請求項２】
前記スムージング手段は、前記ビットマップデータ内の注目画素周辺の画素と所定の画素パターンとが一致する前記注目画素にスムージング処理を実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記斜め線を太らせるスムージング処理は、前記注目画素周辺の画素と第１の画素パターンとが一致する注目画素であり、前記注目画素周辺の画素がライン属性を示す前記注目画素にスムージング処理を実行することであることを特徴とする請求項２に画像処理装置。
【請求項４】
前記斜め線を細らせるスムージング処理は、前記注目画素周辺の画素と第２の画素パターンとが一致する注目画素であり、ライン属性を示す前記注目画素にスムージング処理を実行することであることを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記スムージング手段は、用紙に対する前記斜め線の角度が水平または垂直から遠いほどより強いスムージング処理を実行することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記レンダリング条件は、ＰｏｓｔＳｃｒｉｐｔのＳｔｒｏｋｅＡｄｊｕｓｔ機能がオンになっていることに基づいて設定されたレンダリング条件であることを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記ＳｔｒｏｋｅＡｄｊｕｓｔ機能をオンするか、もしくはオフにするかの設定を受け付ける受付手段を有することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記スムージング手段が前記スムージング処理を実行することにより生成されるビットマップデータに基づいて、画像を用紙に印刷する印刷手段をさらに有することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
ＰＤＬデータにレンダリング処理を実行し、ビットマップデータを生成するレンダリング工程と、
前記レンダリング処理に用いられるレンダリング条件であって、前記ＰＤＬデータで指定された所定の線幅の斜め線が前記所定の線幅の水平な線よりも太くなるビットマップデータを生成するためレンダリング条件の設定を受け付ける受付工程と、
前記レンダリング工程で生成した前記ビットマップデータにスムージング処理を実行するスムージング工程とを有し、
前記受付工程で前記レンダリング条件の設定を受け付けたことに基づいて、前記スムージング工程で、前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、
前記受付工程で前記レンダリング条件の設定を受け付けていないことに基づいて、前記スムージング工程で前記斜め線を細らせるスムージング処理を実行することを特徴とする画像処理方法。
【請求項１０】
請求項１乃至８の何れか１項に記載の画像処理装置の各手段をコンピュータが実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像処理装置がＰｏｓｔＳｃｒｉｐｔ（以後ＰＳと呼ぶ）で記述された印刷ジョブを実行する際のレンダリング処理には、ＰＳのレンダリング条件が用いられる。ＰＳのレンダリング条件で細線をレンダリングし印刷すると、同じ線幅が指定された描画コマンドであっても、線の描画指示された座標がピクセルにまたがっているか否かによって、描画される線の太さが異なる場合がある。
【０００３】
特許文献１では、ＰＳのＳｔｒｏｋｅＡｄｊｕｓｔ（ＳＡ）機能を使用してレンダリング条件を変更し、同じ線幅が指定された描画コマンドを、どの描画位置で指定しても同じ太さの線を描画する技術が開示されている。
【０００４】
また、特許文献２では、パターンマッチングを行い、段差部のパターンにスムージング処理を行う技術が開示されている。また、線を太らせるか、細らせるかはユーザにより指示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２３４４５４号公報
【特許文献２】特開平７−３３４６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＡ機能をオフにした際のレンダリング条件でレンダリング処理が行われると、ＰＳの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが太くなる。
【０００７】
一方、ＳＡ機能をオンにした際のレンダリング条件でレンダリング処理が行われると、ＰＳの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【０００８】
特許文献２の方法を使用すれば、レンダリング処理が行われた後に、ユーザの指示により用紙に対して斜めに描画される線を太くしたり、細くしたりすることができる。しかし、ＳＡ機能がオンになっている時にユーザは線を太らせる指示、ＳＡ機能がオフになっている時にユーザは線を細らせる指示をする必要があり、ＳＡ機能の設定に基づいて指示をする必要があるため、煩わしい。また、例えば、ＳＡ機能がオンになっている時にユーザが線を細らせる指示をすると、ユーザが意図した結果を得られない。ＳＡ機能がオフになっている時にユーザが線を太らせる指示をした場合も同様である。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、画像処理装置において、レンダリング条件に基づいて、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えられるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置は、ＰＤＬデータにレンダリング処理を実行し、ビットマップデータを生成するレンダリング手段と、前記レンダリング処理に用いられるレンダリング条件であって、前記ＰＤＬデータで指定された所定の線幅の斜め線が前記所定の線幅の水平な線よりも太くなるビットマップデータを生成するためレンダリング条件の設定を受け付ける受付手段と、前記レンダリング手段が生成した前記ビットマップデータにスムージング処理を実行するスムージング手段とを有し、前記受付手段が前記レンダリング条件の設定を受け付けたことに基づいて、前記スムージング手段は、前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、前記受付手段が前記レンダリング条件の設定を受け付けていないことに基づいて、前記スムージング手段は前記斜め線を細らせるスムージング処理を実行することを特徴とする。
【発明の効果】
【００１１】
画像処理装置において、レンダリング条件に基づいて、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。
【図面の簡単な説明】
【００１２】
【図１】印刷システムの構成の一例を示す図
【図２】ＭＦＰ１２０の画像処理部１２５の構成の一例を示す図
【図３】ＰＤＬデータからビットマップデータを生成するまでの処理の一例を示すフローチャート
【図４】ＳｔｒｏｋｅＡｄｊｕｓｔ機能の設定画面の一例を示す図
【図５】異なるレンダリング条件のレンダリング処理で生成されたビットマップデータの一例を示す図
【図６】エッジ補正処理部２０２の構成の一例を示す図
【図７】エッジ補正処理の切替え処理の一例を示すフローチャート
【図８】スムージング処理の一例を示すフローチャート
【図９】エッジ補正判定部６０５で「通常処理」と判定された際のスムージング処理の一例を示すフローチャート
【図１０】２値化データとパターンマッチングするためのパターンの一例を示す図
【図１１】ビットマップデータと属性データの一例を示す図
【図１２】図１１（ｃ）と図１０とのパターンマッチングの例を示す図である。
【図１３】属性判定部６０３で判定された結果の一例を示した図
【図１４】図１１（ａ）の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図
【図１５】図１１（ａ）の線がグラフィック属性である場合に、従来通りの通常処理のスムージング処理を行う一例を示す図
【図１６】ビットマップデータと属性データの一例を示す図
【図１７】図１６（ｃ）と図１０とのパターンマッチングの一例を示す図
【図１８】スムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図
【図１９】図１６（ａ）の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図
【図２０】スムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図
【図２１】スムージング処理時のビットマップデータの一例を示す図
【図２２】エッジ補正判定部６０５で判定された判定結果に基づいて、スムージング処理後の濃度変換処理を切り替える処理の一例を示すフローチャート
【図２３】ＳＡ機能がＯＦＦでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図
【図２４】ＳＡ機能がＯＮでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例であり本発明は図示された構成に限定されるものではない。
【実施例１】
【００１４】
図１は、印刷システムの構成の一例を示す図である。本実施例の印刷システムは、情報処理装置の一例であるＰＣ１１０、画像処理装置の一例であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１２０、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１３０から構成される。ＭＦＰ１２０は、ＰＣ１１０とＬＡＮ１３０を介して接続されている。
【００１５】
ユーザからＰＣ１１０のプリンタドライバを介して印刷指示を受けることにより、ＰＣ１１０はアプリケーションデータをＭＦＰ１２０に合わせたＰＤＬデータに変換し、変換したＰＤＬデータをＭＦＰ１２０にＬＡＮ１３０を介して送信する。ここで、ＰＤＬとはＰａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｕｎｇｕａｇｅである。ＭＦＰ１２０はＬＡＮ１３０を介して受信したＰＤＬデータに基づいて印刷処理を実行する。
【００１６】
ＭＦＰ１２０は、ＣＰＵ１２１、ＲＯＭ１２２、ＲＡＭ１２３、ＨＤＤ１２９、ＵＩ表示部１２４、画像処理部１２５、プリント部１２６、ネットワークＩ／Ｆ１２７およびバス１２８を備える。
【００１７】
ＣＰＵ１２１は、ＭＦＰ１２０を統括的に制御する。なお、ＣＰＵ１２１はバス１２８により各種ハードウェアに信号を送り、他のハードウェアと相互にデータ通信を行うことを実現する。
【００１８】
またＭＦＰ１２０のＣＰＵ１２１は、ＲＯＭ１２２に記憶された制御プログラムに従ってＭＦＰ１２０の動作を制御する。より詳細には、ＭＦＰ１２０の制御を行うオペレーティングシステム（ＯＳ）と、ハードウェアを制御するためのドライバプログラムをＣＰＵ１２１が実行する。そしてＯＳ上に配置されたアプリケーションプログラムらが相互に動作することにより、ユーザの所望する機能の動作、制御が行われる。これらのＯＳや各種プログラムはＲＯＭ１２２に記憶され、ＲＡＭ１２３において読み出されることで実行される。
【００１９】
ＲＯＭ１２２はＣＰＵ１２１が使用するプログラムや各種データを記憶するためのメモリである。ＲＡＭ１２３は、プログラムや、ＣＰＵ１２１が演算に用いるデータを一時的に記憶するためのワークメモリである。またＭＦＰ内で生成する中間データ、レンダリング処理を行う際の作業領域であるワーク領域や、入力された画像データを一時記憶するためのメモリでもある。ＨＤＤ１２９は、各種データや各種プログラム等を記憶する記憶装置である。
【００２０】
ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）表示部１２４は、ＭＦＰ１２０を操作するため画面等を表示する表示部である。また、タッチパネル等のＭＦＰ１２０をユーザによる操作や入力を受け付ける所定の受付手段であってもよい。
【００２１】
画像処理部１２５は、ビットマップデータに基づいて印刷するための画像処理を行う。画像処理部の詳細については、図２で説明する。
【００２２】
プリンタ部１２６は、受信した画像データに基づいて、画像を用紙に印刷する。
【００２３】
ネットワークＩ／Ｆ１２７は、例えばＥｔｈｅｒｎｅｔのような有線ＬＡＮ通信を行うためのネットワークＩ／Ｆである。なお、このネットワークＩ／Ｆ１２７は無線ＬＡＮ通信を行うためのネットワークＩ／Ｆであっても良いし、ＵＳＢ−ＬＡＮＩ／Ｆ等でもよい。
【００２４】
本実施例のＭＦＰ１２０のＣＰＵ１２１は、受信したＰＤＬデータを解釈し、レンダリング処理を実行し、ビットマップデータを生成する。なお、レンダリング処理は、ＣＰＵ１２１がソフトウェアを実行することで行っているが、ハードウェアでレンダリングを行ってもよい。
【００２５】
また、レンダリング処理には複数ルールがあり、ルールを変更することで変換されるビットマップデータが変わる。
【００２６】
レンダリング処理を行うことで、１画素あたり複数の色成分を持つビットマップデータを生成する。複数の色成分とは、グレースケールやＲＧＢ（赤、緑、青）などの色空間において独立した色成分のことである。ビットマップデータは、画素毎に１つの色成分につき８ビット（２５６階調）の値を持つ。すなわち、ビットマップデータは多値の画素を含む、多値の画像データである。
【００２７】
またレンダリング処理では、画像データの他に、画像データの画素の属性を画素毎に示す属性データも生成される。この属性データは、画素がどの種類のオブジェクトに属するかを示し、例えば文字や線、図形、イメージ、非描画領域である「オブジェクトなし」といったオブジェクトの種類を示す値が画素の属性として記憶される。
【００２８】
［画像処理部についての説明］
図２は、ＭＦＰ１２０の画像処理部１２５の構成の一例を示す図である。画像処理部１２５の詳細について説明する。画像処理部１２５は、色変換部２０１、スムージング処理部２０２、ガンマ補正部２０３、中間調処理部２０４を有する。画像処理部１２５には、レンダリング処理を実行された多値のビットマップデータ２０５とそのビットマップデータのそれぞれの画素に対応した属性データ２０６が入力される。また、レンダリング処理で使用したルールを示すレンダリング条件データ２０７も併せて入力される。レンダリング条件とは、論理座標からＭＦＰ１２０の物理座標に変換する際の変換ルールである。
【００２９】
色変換部２０１は、多値の画像データであるビットマップデータ２０５に対してグレースケール色空間あるいはＲＧＢ色空間からＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）色空間への色変換処理を行う。この色変換処理によって１画素の１色成分あたり８ビット（２５６階調）の多値の濃度値（階調値、信号値とも呼ぶ）を持つ多値のビットマップデータが生成される。このビットマップデータは、ＣＭＹＫの各色成分を有しており、ＣＭＹＫ画像データと呼ばれる。
【００３０】
このＣＭＹＫ画像データは色変換部２０１内の不図示のバッファに格納される。また、ＰＳ（Ｐｏｓｔ  Ｓｃｒｉｐｔ）やＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）のように画像データがＣＭＹＫ色空間のＰＤＬでは、色変換部２０１での色変換処理は行われず、ＣＭＹＫ画像データをエッジ補正処理部２０２に入力する。
【００３１】
エッジ補正処理部２０２は、バッファに格納されたＣＭＹＫ画像データを取得し、後述するエッジ補正処理を実行し、処理された画像データをガンマ補正部２０３に出力する。またスムージングＦｌａｇデータ２０８をガンマ補正部２０３と中間調処理部２０４に出力する。スムージングＦｌａｇデータ２０８とは、ガンマ補正部２０３と中間調処理部２０４において、処理を切り替えるために用いるデータであり、ＣＭＹＫ画像データのＣＭＹＫ毎に異なる値を持つ。
【００３２】
ガンマ補正部２０３は、エッジ補正処理部２０２により入力された画像データにガンマ補正処理を行い、ガンマ補正処理を行った画像データを中間調処理部２０４に出力する。このガンマ補正処理は画像データが記録紙へと転写された際の濃度特性が所望となるよう、一次元のルックアップテーブルを用いて、入力された画像データを補正する。補正に用いる一次元のルックアップテーブルは、中間調処理部２０４が持つスクリーン種別毎に記憶されており、スクリーン種別に応じて切り替えて用いられる。
【００３３】
中間調処理部２０４は、スムージングＦｌａｇデータ２０８と属性データ２０６に従って、中間調処理を切替え、入力された画像データに選択された中間調処理を行い、生成したビットマップデータ（プリント画像データ）２０９をプリント部１２６へ出力する。たとえば、スムージング処理が行われた画素は中間調値になるので、中間調処理を切り替えずに通常のスクリーンを適用するとスクリーンのパターンが見えジャギーとなってしまう。そこで、スムージング処理が行われた画素に、ジャギーが見えない平坦化スクリーンを切替え適用するとジャギーは見えなくなる。
【００３４】
ここで、ＳＡ機能をオフにした際のレンダリング条件でレンダリング処理が行われると、ＰＳの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが太くなる。
【００３５】
一方、ＳＡ機能をオンにした際のレンダリング条件でレンダリング処理が行われると、ＰＳの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【００３６】
特許文献２の方法を使用すれば、レンダリング処理が行われた後に、ユーザの指示により用紙に対して斜めに描画される線を太くしたり、細くしたりすることができる。しかし、ＳＡ機能がオンになっている時にユーザは線を太らせる指示、ＳＡ機能がオフになっている時にユーザは線を細らせる指示をする必要があり、ＳＡ機能の設定に基づいて指示をする必要があるため、煩わしい。また、例えば、ＳＡ機能がオンになっている時にユーザが線を細らせる指示をすると、ユーザが意図した結果を得られない。ＳＡ機能がオフになっている時にユーザが線を太らせる指示をした場合も同様である。
【００３７】
以上の課題を解決するために以下の処理を実行することで、画像処理装置において、レンダリング条件に基づいて、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。
【００３８】
別の課題として、ＰＳのＳＡ機能をオンにした際のレンダリング条件でレンダリング処理が行われると、ＰＳの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【００３９】
以上の課題を解決するために以下の処理を実行することで、ＰＳのＳＡ機能を使用する画像処理装置において、描画コマンドで指示された細幅に近い太さで斜めの線を描画できる。
【００４０】
［ＰＤＬデータ処理フローの説明］
まず、図３を用いて、ＰＣ１１０及びプリンタ１２０において、ＰＤＬデータから図１の画像処理部１２５に入力するビットマップデータを作成するまでのＰＤＬデータ処理フローを説明する。図３は、ＰＤＬデータからビットマップデータを生成するまでの処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図３のフローチャートの処理は実現される。図３のフローは、ＭＦＰ１２０の電源がオンになったことによって開始される。なお、本フローではＰＤＬデータの一例として、ＰＳデータを受信する例を説明する。
【００４１】
Ｓ３０１において、ＣＰＵ１２１は、ＰＣ１１０内でアプリケーションやプリンタドライバなどで作成されたプリントデータであるＰＳデータを受信する。なお、ＰＳデータとは、プリントする際の様々なＰＳコマンドが集まった１ページまたは複数ページからなるプリントジョブを示している。
【００４２】
Ｓ３０２において、ＣＰＵ１２１は、各種プリント条件を決める制御コマンドを解釈し、その制御先に通知する。例えば、図４に示すようなＵＩによって、ＰＳのＳｔｒｏｋｅＡｄｊｕｓｔ（ＳＡ）機能を使用するか、しないかの機能設定の制御コマンドを解釈して、ＰＳインタプリタにＰＳのＳＡ機能の設定を通知する。ここで、ＳＡ機能とは、ストロークの自動調整のパラメータを制御する機能である。
【００４３】
図４はＳｔｒｏｋｅＡｄｊｕｓｔ機能の設定画面の一例を示す図である。図４の設定画面４００は、ＭＦＰ１２０のＵＩ表示部１２４に表示される画面である。ユーザによりＯＮボタン４０１が選択され、その後にＯＫボタン４０３が選択されることによりＳＡ機能がオンに設定される。ユーザによりＯＦＦボタン４０２が選択され、その後にＯＫボタン４０３が選択されることによりＳＡ機能がオフに設定される。
【００４４】
次に、Ｓ３０３において、ＣＰＵ１２１は、レンダリング処理で生成されるビットマップデータと属性データを格納するＰａｇｅメモリとレンダリング処理の際に使用されるレンダリング条件を初期化する。一般的にレンダリング条件とは、ＰＤＬデータのＰＤＬコマンドが示す論理座標からビットマップデータが示す物理座標（デバイス固有の座標）に変換する際の変換ルールのことを示す。ここでのレンダリング条件は、ＰＳのＳＡ機能を示し、初期値は、ＯＦＦとする。なお、ここではレンダリング条件としてＰＳのＳＡ機能としているが、これに限ったものではない。また、ＰａｇｅメモリはＲＡＭ１２３に特別確保された領域である。
【００４５】
Ｓ３０４において、ＣＰＵ１２１は、ＰＳデータ内のＰＳコマンドを解釈する。
【００４６】
Ｓ３０５において、ＣＰＵ１２１は、Ｓ３０４で解釈したＰＳコマンドが、線を描画するコマンドのＳｔｒｏｋｅコマンドであるか否かを判定する。Ｓｔｒｏｋｅオペレータであると判定された場合は、Ｓ３０６に進む。そうでない場合は、Ｓ３２０に進む。
【００４７】
Ｓ３０６において、ＣＰＵ１２１はＳＡ機能がオンになっているか否かを判定する。ＳＡ機能がオンであると判定された場合は、Ｓ３０７に進む。具体的には、ＰＳデータ内に「ｓｅｔｓｔｒｏｋｅａｄｊｕｓｔ  ｔｒｕｅ」のコマンドがあると判定された場合に、Ｓ３０７に進む。また、プリンタの機器設定として「ｓｅｔｓｔｒｏｋｅａｄｊｕｓｔ  ｔｒｕｅ」となっているときは「ｓｅｔｓｔｒｏｋｅａｄｊｕｓｔ  ｔｒｕｅ」のコマンドがないときもオンとなるため、ｆａｌｓｅと指定された時はじめてＯＦＦとなる。
【００４８】
Ｓ３０７において、ＣＰＵ１２１はＳＡレンダリングしていることを記憶するため、ページのレンダリング条件としてＳＡ機能ＯＮであることを示す情報をＲＡＭ１２３に記憶する。なお、ここでは、説明を簡単にするため、ＳＡ機能の条件をページごとに記憶するが、画素毎に保持してもよい。
【００４９】
Ｓ３０８において、ＣＰＵ１２１はＳＡレンダリング処理を行い、ビットマップデータを生成する。ＳＡレンダリング処理とは、ＳｔｒｏｋｅＡｄｊｕｓｔ機能のルールに基づいたＳｔｒｏｋｅコマンドの線の位置調整を行った後、レンダリング処理を行うことである。この際、ビットマップデータとして、画像データの他に、その画像データの各画素に対応するＰＳデータのコマンドの種類を示す属性データも生成される。ここで、生成されたビットマップデータ（画像データと属性データ）はＰａｇｅメモリに記憶される。ここでは、ＰＳデータのコマンドの種類がＳｔｒｏｋｅコマンドのときなので、属性データはライン属性となる。
【００５０】
Ｓ３２０において、ＣＰＵ１２１はレンダリングすることを記憶するため、ページのレンダリング条件としてＳＡ機能ＯＦＦであることを示す情報をＲＡＭ１２３に記憶する。
【００５１】
Ｓ３２１において、ＣＰＵ１２１は、レンダリング処理を行う。ＳＡ機能のレンダリング条件に基づかず、ＰＳの一般的に知られているレンダリング条件で処理を行う。レンダリング条件の違いに関しては後述する。また、この際、Ｓ３０８と同様に、ビットマップデータとして、画像データの他に、その画像データの各画素に対応するＰＳデータのコマンドの種類を示す属性データも生成される。ここで、生成されたビットマップデータ（画像データと属性データ）はＰａｇｅメモリに記憶される。
【００５２】
例えば、ＰＳデータのコマンドの種類がキャラクタコマンドのとき、属性データは文字属性となる。ＰＳデータのコマンドの種類がＳｔｒｏｋｅコマンドのとき、属性データはライン属性に、図形コマンドのときはグラフィック属性となる。ＰＳデータのコマンドの種類がビットマップコマンドのとき、属性データはイメージ属性となる。また、ＰＳデータ時のコマンドがない部分の属性データは、背景属性となる。これら属性データは後述する画像処理部１２５の処理の切替えに用いられる。
【００５３】
Ｓ３０９において、ＣＰＵ１２１は未処理のＰＳコマンドがあるか否かを判定する。未処理のＰＳコマンドがあると判定された場合はＳ３０４に戻り、次のＰＳデータコマンドを解釈する。そうでない場合はＳ３１０に進む。
【００５４】
Ｓ３１１において、ＣＰＵ１２１はＰａｇｅメモリに記憶された１ページ分のビットマップデータ（画像データと属性データ）をＨＤＤ１２９に記憶する。
【００５５】
Ｓ３１２において、ＣＰＵ１２１はレンダリング条件を示す情報をページ毎にレンダリング条件データとしてＨＤＤ１２９に記憶する。
【００５６】
Ｓ３１３において、ＣＰＵ１２１は未処理のページデータがあるか否かを判定する。未処理のページデータがあると判定された場合は、Ｓ３０３に戻り、次のページの処理を続ける。そうでない場合は、処理を終了する。
【００５７】
［レンダリングの条件（ルール）の違いの説明］
図５を用いて、Ｓ３０７とＳ３２０でのレンダリング条件の違いを説明する。図５は異なるレンダリング条件のレンダリング処理で生成されたビットマップデータの一例を示す図である。
【００５８】
ＰＳコマンドの論理座標からレンダリング後の物理座標（デバイス座標）に変換は、ＳｔｒｏｋｅＡｄｊｕｓｔ（ＳＡ）機能がオン（ｔｒｕｅ）になっているか、オフ（ｆａｌｓｅ）になっているかで異なる。
【００５９】
図５（ａ）は、レンダリング処理を行われる前のＰＳデータの論理座標をＰＣ１１０のモニターに表示している例を示している。水平方向の線５０１、垂直方法の線５０２、４５度の線５０３がそれぞれ同じ太さになっている。
【００６０】
図５（ｂ）と図５（ｃ）は、レンダリング条件により、論理座標からデバイス固有の画素で表される物理座標のビットマップに変換された結果を示している。ここでは、プリンタで一般的使われている解像度が６００ｄｐｉの例で示す。
【００６１】
図５（ａ）に対して、解像度が６００ｄｐｉのデバイス固有の座標にレンダリング処理した結果が図５（ｂ）と図５（ｃ）となり、線の太さや形状が異なる。図５（ｂ）は、ＳＡ機能がオンの場合を示し、図５（ｃ）は、ＳＡ機能がオフの場合を示す。
【００６２】
ＳＡ機能は、ＰＳのＳｔｒｏｋｅコマンドの論理座標から物理座標へ変換する際の誤差を減らす調整機能である。なお、ＰＳのコマンドがＳｔｒｏｋｅコマンド以外のときは、ＳＡ機能は有効とならない。
【００６３】
図５（ｂ）と図５（ｃ）を比較すると、図５（ｃ）に比べ図５（ｂ）の方が、全体的に誤差が小さい。しかし、図５（ｂ）では水平方向の線５０４、垂直方法の線５０５と比較して、４５度の線５０６が細くなっている。角度で太さを解析すると特に斜め４５度（１３５度、２２５度、３１５度も同様）方向が細くなっている。
【００６４】
一方、図５（ｃ）では水平方向の線５０７、垂直方法の線５０８と比較して、４５度の線５０９が太くなっている。角度で太さを解析すると特に４５度（１３５度、２２５度、３１５度も同様）方向がより太くなっている。同じ線幅指定の細線の角度を変えたコマンドを処理した際、レンダリング条件に応じて、同じ線幅指定の細線の線幅が角度に応じて変わってしまうことがわかる。
【００６５】
［エッジ補正処理の切替え判断の説明］
エッジ補正処理部２０２について、図６と図７を用いて詳細に説明する。本処理は、レンダリング条件に応じて、同じ線幅指定の細線の線幅が角度に応じて変わってしまうことを解決するエッジ補正処理の切替え判断を行うものである。エッジ補正処理は、画像データとしてはＣＭＹＫがそれぞれ入力され、個々に処理される。ここでは説明を簡単にするためＫすなわち黒に限定して説明する。なお、他のＣＭＹでも同様の処理である。
【００６６】
図６は、エッジ補正処理部２０２の構成の一例を示す図である。図７は、エッジ補正処理の切替え処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図７のフローチャートの処理は実現される。図７のフローは、図３の各レンダリング処理でビットマップデータが生成され、色変換部２０１で色変換処理が行われたことによって開始される。
【００６７】
Ｓ７０１において、ＣＰＵ１２１が２値化部６０１を制御し、２値化部６０１は入力されたビットマップデータ（画像データ）２０５の２値化処理を行い、２値化データを生成する。画素値が閾値より大きい値であれば１に、画素値が閾値と同じか小さい値であれば０にして２値化を行う。
【００６８】
図１５は線描画の一例を示す図である。図１５（ａ）、図１５（ｂ）は、ＭＦＰ１２０でレンダリングされた線描画の一例であり、ＳＡ機能がＯＦＦである図５（ｃ）の４５度線５０９の一部を示している。図１５（ａ）はレンダリング後のビットマップデータ、図１５（ｂ）は属性データを表している。また、図１５（ｃ）は、図１５（ａ）で示したビットマップデータ２０５が２値化部６０１で２値化されたビットマップの一例である。なお、図１５（ｂ）の「Ｂ」は背景属性、「Ｌ」はライン属性を表している。
【００６９】
Ｓ７０２において、ＣＰＵ１２１がパターン判定部６０２を制御し、パターン判定部６０２が２値化データと予め設定されたパターンとのパターンマッチングを行い、パターンと一致するか否かを判定する。図１０は２値化データとパターンマッチングするためのパターンの一例を示す図であり、斜め４５度の線を検出するパターンの例である。図１０（ａ）〜（ｄ）と図１０（ｉ）〜（ｌ）は注目画素が０のパターンｐ０のパターン、図１０（ｅ）〜（ｈ）と図１０（ｍ）、（ｎ）は注目画素が１のパターンｐ１のパターンの例を示している。補正したい角度が斜め４５度の線であるため前記パターンをパターンマッチングで用いているが、補正したい角度の画素パターンを追加すれば同様にその角度を補正する効果が得られる。つまり、角度によって一致する画素パターンが異なり、その角度（画素パターン）ごとにスムージング処理の強さを変えてもよい。例えば、角度が９０度、１８０度、２７０度に近いほど、スムージング処理の強さを弱くする。
【００７０】
パターンマッチングは、２値化された画像データから５×５画素の２５画素を抽出した部分と図１０のパターンと１つずつ画素の値を比較する。本実施例では、パターンの値が「２」以外の画素が画像データから抽出した部分と一致しているか否かを判定する。また、パターンの値が「２」の画素は、対応する位置の２値化された画像データ部の画素が何の値であっても一致したものと判定する。パターンと一致したと判定された場合はＳ７０３に進み、そうでない場合はＳ７０６に進む。
【００７１】
Ｓ７０３において、ＣＰＵ１２１はパターン判定部６０２で図１０のパターンと一致すると判定された画像データの中心の注目画素が「０」のパターンｐ０か、注目画素が「１」のパターンｐ１かを判定する。
【００７２】
図１２は、図１１（ｃ）と図１０とのパターンマッチングの例を示す図である。たとえば、図１２（ａ）は、図１１（ａ）のビットマップデータと図１０（ａ）のパターンのマッチング例を示している。図１１はビットマップデータと属性データの一例を示す図である。図１２（ａ）の黒い部分が２値化後の「１」に相当するので、黒と「１」が一致し、さらに図１２（ａ）の白い部分が２値化後の「０」に相当するので、白と「０」が一致している。パターンの値が「２」以外の画素が注目画素と注目画素周辺の画素と一致しており、パターンの中心の注目画素１２０１が「０」なのでパターンｐ０と判定される。また、図１２（ｂ）は、図１１（ａ）のビットマップデータと図１０（ｅ）のパターンの例を示している。パターンの値が「２」以外の画素が注目画素と注目画素周辺の画素と一致しており、パターンの中心の注目画素１２０２が「１」なのでパターンｐ１と判定される。図１０のパターンと一致すると判定された画像データがパターンｐ０と一致すると判定された場合は、Ｓ７０４に進む。そうでない場合は、Ｓ７０５に進む。
【００７３】
Ｓ７０４において、ＣＰＵ１２１はパターンＦｌａｇをｐ０とする。Ｓ７０５において、ＣＰＵ１２１はパターンＦｌａｇをｐ１とする。その結果、図１１（ｃ）の２値化データは、図１２（ｃ）のパターンＦｌａｇデータに変換され、エッジ補正判定部６０５に出力される。Ｓ７０６において、どのパターンとも一致していないため、ＣＰＵ１２１はパターンＦｌａｇをｎとする。
【００７４】
Ｓ７０７において、ＣＰＵ１２１は属性判定部６０３を制御し、属性判定部６０３はパターン判定部６０２でパターン一致すると判定された画像データの「１」の画素の属性データがラインか否かを判定する。図１３は、属性判定部６０３で判定された結果の一例を示した図である。図１１（ｂ）のような属性データの場合は、図１３（ａ）となり、判定されたパターン部はすべてラインであることがわかる。「１」の画素の属性データがラインであると判定された場合は、Ｓ７０８に進む。そうでない場合は、Ｓ７１３に進む。
【００７５】
図１３（ｂ）は、図１２（ａ）がＳｔｒｏｋｅコマンドではなく、グラフィックコマンドで指定された場合の一例を示す図である。
【００７６】
Ｓ７０８において、ＣＰＵ１２１はレンダリング条件判定部６０４を制御し、レンダリング条件判定部６０４はＳ３０８でレンダリング条件＝ＳＡ機能ＯＮとされたか否かを判定する。ＳＡ機能ＯＮと判定された場合、Ｓ７０９に進む。そうでない場合、Ｓ７１１に進む。
【００７７】
Ｓ７０９において、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は以下の表１に示すようにエッジ補正判定として「太らせ処理」と判定する。
【００７８】
【表１】
2020104304.tif 000003
【００７９】
Ｓ７１０において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は「太らせ処理設定」でスムージング処理を実行する。この「太らせ処理設定」のスムージング処理により、ＳＡ機能がオンになっていることによる斜め線、特に斜め４５度の線の細りを防ぐことが可能となる。「太らせ処理設定」のスムージング処理の詳細は後述する。
【００８０】
Ｓ７１１において、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は表１に示すようにエッジ補正判定として「細らせ処理」と判定する。
【００８１】
Ｓ７１２において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は「細らせ処理設定」でスムージング処理を実行する。この「細らせ処理設定」のスムージング処理により、ＳＡ機能がオフになっていることによる斜め線、特に斜め４５度の線の太りを防ぐことが可能となる。「太らせ処理設定」のスムージング処理の詳細は後述する。
【００８２】
Ｓ７１３において、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は表１に示すようにエッジ補正判定として「通常処理」と判定する。
【００８３】
Ｓ７１４において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は「通常処理設定」でスムージング処理を実行する。この「通常処理設定」は、スムージング処理で薄くするところと濃くするところを同じ画素数にすることで、太らせも細らせも行わないような処理である。すなわち、太らせも、細らせも必要ない部分に、太らせも細らせも適用しない。
【００８４】
Ｓ７１５において、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は表１に示すようにエッジ補正判定を「しない」と判定する。
【００８５】
Ｓ７１６において、ＣＰＵ１２１はすべての５×５画素に対して処理が終了したか否かを判定する。終了したと判定された場合は処理を終了する。そうでない場合は、未処理の５×５画素に対して処理を繰り返す。
【００８６】
［エッジ補正処理フローの説明］
スムージング処理に関して図８、図９を用いて説明する。まず、エッジ補正判定結果とパターンＦｌａｇに対応したスムージング処理を表２に示す。表２において、スムージング処理のＳは、スムージング処理を「する」こと、すなわちスムージング処理を行うことを示す。一方、スムージング処理のＮは、スムージング処理を「しない」こと、すなわちスムージング処理を行わないことを示す。
【００８７】
【表２】
2020104304.tif 000004
【００８８】
図８は、スムージング処理の一例を示すフローチャートである。図８（ａ）はエッジ補正判定部６０５で「太らせ処理」と判定された際のスムージング処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図８（ａ）のフローチャートの処理は実現される。図８（ａ）のフローは、Ｓ７０９の処理が終了することによって開始される。
【００８９】
Ｓ８０１において、ＣＰＵ１２１はパターンＦｌａｇがｐ０か否かを判定する。パターンＦｌａｇがｐ０であると判定された場合は、Ｓ８０２に進む。そうでない場合、Ｓ８０４に進む。
【００９０】
Ｓ８０２において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータ２０５にスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【００９１】
Ｓ８０３において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行った画素ごとにスムージングＦｌａｇ６０８をＯＮにする。
【００９２】
Ｓ８０４において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータにスムージング処理を行わず、入力ビットマップデータの画素値をそのままビットマップデータ６０７として出力する。
【００９３】
Ｓ８０５において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行っていないので、処理対象の画素にはスムージングＦｌａｇ６０８をＯＦＦにする。
【００９４】
太らせ処理設定時には、パターンＦｌａｇｐ０の部分のみスムージング処理を行う。パターンＦｌａｇ０以外の部分は、入力の画像データをそのまま画素のデータとする。パターンＦｌａｇｐ０のパターンは注目画素部分の画像データが０の部分に相当し、スムージング処理によりデータ値が加算されるため、加算された部分が濃くなる、太らせ処理となる。
【００９５】
図８（ｂ）は、図８（ａ）はエッジ補正判定部６０５で「細らせ処理」と判定された際のスムージング処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図８（ｂ）のフローチャートの処理は実現される。図８（ｂ）のフローは、Ｓ７１１の処理が終了することによって開始される。
【００９６】
Ｓ８１１において、ＣＰＵ１２１はパターンＦｌａｇがｐ０か否かを判定する。パターンＦｌａｇがｐ０であると判定された場合は、Ｓ８０１２に進む。そうでない場合、Ｓ８１４に進む。
【００９７】
Ｓ８１２において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータにスムージング処理を行わず、入力ビットマップデータの画素値をそのままビットマップデータ６０７として出力する。
【００９８】
Ｓ８１３において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行っていないので、処理対象の画素にはスムージングＦｌａｇ６０８をＯＦＦにする。
【００９９】
Ｓ８１４において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータ２０５にスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【０１００】
Ｓ８１５において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行った画素ごとにスムージングＦｌａｇ６０８をＯＮにする。
【０１０１】
細らせ処理設定時には、パターンＦｌａｇｐ１の部分のみスムージング処理を行う。パターンＦｌａｇ１以外の部分は、入力の画像データをそのまま画素のデータとする。パターンＦｌａｇｐ１のパターンは注目画素部分の画像データが１の部分に相当し、スムージング処理によりデータ値が削減されるため、削減された部分が薄くなる、細らせ処理となる。
【０１０２】
図９はエッジ補正判定部６０５で「通常処理」と判定された際のスムージング処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図９のフローチャートの処理は実現される。図９のフローは、Ｓ７１３の処理が終了することによって開始される。
【０１０３】
Ｓ９０１において、ＣＰＵ１２１はパターンＦｌａｇがｐ０か否かを判定する。パターンＦｌａｇがｐ０であると判定された場合は、Ｓ９０２に進む。そうでない場合、Ｓ９０４に進む。
【０１０４】
Ｓ９０２において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータ２０５にスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【０１０５】
Ｓ９０３において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行った画素ごとにスムージングＦｌａｇ６０８をＯＮにする。
【０１０６】
Ｓ９０４において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、ビットマップデータ２０５にスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【０１０７】
Ｓ９０５において、ＣＰＵ１２１はスムージング処理部６０６を制御して、スムージング処理部６０６は、スムージング処理を行った画素ごとにスムージングＦｌａｇ６０８をＯＮにする。
【０１０８】
通常処理設定時には、パターンＦｌａｇｐ０の部分とパターンＦｌａｇｐ１の部分の両方にスムージング処理を行う。パターンＦｌａｇｐ０のパターンは注目画素部分の画像データが０の部分に相当し、スムージング処理によりデータ値が追加される。一方パターンＦｌａｇｐ１のパターンは注目画素部分の画像データが１の部分に相当し、スムージング処理によりデータ値が削減される。このようにデータ値の追加と削減の両方手適用されるため、濃くも薄くもなく太さが変化しない処理となる。
【０１０９】
［スムージング処理の説明］
図２１を用いて、図６のスムージング処理部６０６で行われるスムージング処理の具体例を示す。図２１はスムージング処理時のビットマップデータの一例を示す図である。図２１（ａ）は、スムージング処理で用いる注目画素２１０１のパターンＦｌａｇがｐ０の場合のビットマップデータを示す図である。一方、図２１（ｂ）は、スムージング処理で用いる注目画素２１０２のパターンＦｌａｇがｐ１の場合のビットマップデータを示す図である。
【０１１０】
図２１（ｃ）は、図２１（ａ）のビットマップデータ内の注目画素２１０１にスムージング処理を適用した後のビットマップデータを示す。
【０１１１】
図２１（ｄ）は、図２１（ｂ）のビットマップデータ内の注目画素２１０２にスムージング処理を適用した後のビットマップデータを示す。
【０１１２】
まず、図２１（ａ）では、注目画素２１０１を含む３×３画素の９画素の平均値、すなわち（０×６＋２５５×３）／９＝８５をスムージング値とする。この結果、注目画素２００１の白い部分の値は、白を示す「０」から「８５」となり、白（０）と黒（２５５）の中間値が付加されたことにより白黒の段差が減り、画像のエッジ補正が行われる。よってスムージング処理が行われた結果として、ビットマップデータは図２１（ｃ）の注目画素２１０３のようになる。
【０１１３】
一方、図２１（ｂ）では、注目画素２１０２を含む３×３画素の９画素の平均値、すなわち（０×３＋２５５×６）／９＝１７０となる。この結果、注目画素２１０２の黒い部分の値は黒を示す「２５５」から「１７０」となる。白（０）と黒（２５５）の中間値に削減されたことにより、白黒の段差が減り、画像のエッジ補正が行われる。よってスムージング処理が行われた結果として、ビットマップデータは図２１（ｄ）の注目画素２１０４のようになる。このスムージング処理の説明では、注目画素と周りの画素の９画素の平均値を求めているが、白黒の段差が減るスムージング処理であればこれに限ったものではない。
【０１１４】
［レンダリングの条件（ルール）による太らせ処理例］
レンダリング条件であるＳＡ機能がＯＮであり、ライン属性である図５（ｂ）のようなビットマップデータがエッジ補正処理部２０２に入力されたときのデータの変化の流れの具体例を図７と図８（ａ）のフローに沿って説明する。
【０１１５】
図１６はビットマップデータと属性データの一例を示す図である。図５（ｂ）の斜め４５度の線５０６の一部を拡大したビットマップデータが図１６（ａ）、そのビットマップデータに対応する属性データが図１６（ｂ）である。なお、図１６（ｂ）の「Ｂ」は背景属性、「Ｌ」はライン属性を表している。
【０１１６】
まず、ＣＰＵ１２１は２値化部６０１を制御し、２値化部６０１は図１６（ａ）のビットマップデータを２値化処理する。図１６（ｃ）は、図１６（ａ）のビットマップデータを２値化したビットマップデータである。
【０１１７】
次に、ＣＰＵ１２１はパターン判定部６０２を制御し、パターン判定部６０２は、図１６（ｃ）と図１０のパターンとパターンマッチングを行う。図１７は、図１６（ｃ）と図１０とのパターンマッチングの一例を示す図である。
【０１１８】
図１７（ａ）の１７０１の画素に関しては、図１０（ｉ）のパターンｐ０とマッチングし、図１７（ｂ）の１７０２の画素に関しては、図１０（ｍ）パターンｐ１とマッチングする。図１７（ｃ）は、パターンＦｌａｇの状況を示している。
【０１１９】
次に、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は、表１よりパターンＦｌａｇ部は「太らせ処理」と判定する。
【０１２０】
次に、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、表２の「太らせ処理」設定で、図１７（ｃ）のパターンＦｌａｇを用いてスムージング処理を切替える。
【０１２１】
図１８はスムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図である。図１８（ａ）は、表２と図１７（ｃ）のパターンＦｌａｇを用いて、スムージング処理を行うか否かを判定した結果を示す図である。スムージング処理を行う部分をＳ、スムージング処理を行わない部分をＮで表している。また、図１８（ｂ）は、図１６（ａ）にスムージング処理を適用した後のビットマップデータを表している。図１６（ａ）と図１８（ｂ）を比較すると、図１７（ｃ）のパターンＦｌａｇがｐ０の部分にデータ追加され、元の図１６（ａ）より太くなっている。
【０１２２】
一方、図１９は図１６（ａ）の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図である。なお、図１９の「Ｂ」は背景属性、「Ｇ」はグラフィック属性を表している。図２０はスムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図である。図２０（ａ）は、グラフィック属性の場合に、通常処理設定のスムージング処理を行うか否かを判定した結果を示している。図２０（ｂ）は、通常処理設定のスムージング処理が適用された後のビットマップデータを示している。
【０１２３】
ＳＡ機能がＯＮでライン属性のビットマップデータが通常処理設定のスムージング処理を行う結果より太くなることで、図５（ａ）のモニターに表示している状態に近づく効果が得られる。
【０１２４】
以上の処理を実行することで、ＰＳのＳｔｒｏｋｅＡｄｊｕｓｔ機能を使用する画像処理装置において、描画コマンドで指示された細幅に近い太さで斜めの線を描画できる。
【０１２５】
［レンダリングの条件（ルール）による細らせ処理例］
ＳＡ機能がＯＦＦでライン属性の図５（ｃ）のようなビットマップデータがエッジ補正処理に入力されたときのデータの変化の流れの具体例を図７と図９のフローに沿って説明する。
【０１２６】
図１１（ａ）は図５（ｃ）の斜め４５度の線５０９の一部を拡大したビットマップデータであり、そのビットマップデータに対応する属性データが図１１（ｂ）である。なお、図１５（ｂ）の「Ｂ」は背景属性、「Ｌ」はライン属性を表している。
【０１２７】
まず、ＣＰＵ１２１は２値化部６０１を制御し、２値化部６０１は図１１（ａ）を２値化処理する。図１１（ｃ）は、図１１（ａ）を２値化処理したビットマップデータである。
【０１２８】
次に、ＣＰＵ１２１はパターン判定部６０２を制御し、パターン判定部６０２は図１１（ｃ）と図１０のパターンとパターンマッチングを行う。図１２（ａ）の１２０１の画素に関しては、図１０（ａ）のパターンｐ０とマッチングし、図１２（ｂ）の１２０２の画素に関しては、図１２（ｅ）のパターンｐ１とマッチングする。図１２（ｃ）は、図１１（ａ）のパターンＦｌａｇの状況を示している。
【０１２９】
次に、ＣＰＵ１２１はエッジ補正判定部６０５を制御し、エッジ補正判定部６０５は、表１よりパターンＦｌａｇ部は「細らせ処理」と判定する。
【０１３０】
次に、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、表２の「細らせ処理」設定で、図１２（ｃ）のパターンＦｌａｇを用いてスムージング処理を切替える。
【０１３１】
図１３（ａ）は、表２と図１２（ｃ）のパターンＦｌａｇを用いて、スムージング処理を行うか否かを判定した結果を示す図である。スムージング処理を行う部分をＳ、スムージング処理を行わない部分をＮで表したものである。
【０１３２】
また、図１３（ｂ）は、図１１（ａ）にスムージング処理を適用した後のビットマップデータを表している。図１１（ａ）と図１３（ｂ）を比較すると、図１２（ｃ）のパターンＦｌａｇがｐ１の部分のデータが削減され、元の図１１（ａ）より細くなっている。
【０１３３】
一方、図１４は図１１（ａ）の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図である。なお、図１４の「Ｂ」は背景属性、「Ｇ」はグラフィック属性を表している。
【０１３４】
図１５は、図１１（ａ）の線がグラフィック属性である場合に、従来通りの通常処理のスムージング処理を行う一例を示す図である。図１５（ａ）は、図１１（ａ）の線がグラフィック属性である場合に、表２と図１２（ｃ）のパターンＦｌａｇを用いて、スムージング処理を行うか否かを判定した結果を示す図である。図１５（ｂ）は、通常処理設定のスムージング処理が適用された後のビットマップデータを示す図である。
【０１３５】
ＳＡ機能がＯＦＦでライン属性のビットマップデータが通常処理設定のスムージング処理を行う結果より細くなることで、図５（ａ）のモニターに表示している状態に近づく効果が得られる。
【０１３６】
以上の処理を実行することで、画像処理装置において、レンダリング条件によって、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。
【実施例２】
【０１３７】
実施例１では、レンダリング条件に応じてスムージング処理を適用する画素を切り替える例で説明したが、実施例２ではレンダリング条件に応じてスムージング処理での画素値の濃度変換処理を切り替える例を実施例１と差分を主に説明する。
【０１３８】
図２２はエッジ補正判定部６０５で判定された判定結果に基づいて、スムージング処理後の濃度変換処理を切り替える処理の一例を示すフローチャートである。ＣＰＵ１２１がＲＯＭ１２２に記憶されたプログラムをＲＡＭ１２３に読み出し、実行することで図２２のフローチャートの処理は実現される。図２２のフローは、Ｓ７０９またはＳ７１１またはＳ７１３の処理が終了することによって開始される。
【０１３９】
まず、Ｓ２２０１において、ＣＰＵ１２１はパターンＦｌａｇがｐ０か否かを判定する。パターンＦｌａｇがｐ０であると判定された場合は、Ｓ２２０２に進む。そうでない場合はＳ２２０５に進む。
【０１４０】
次に、Ｓ２２０２において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、ビットマップデータにスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【０１４１】
Ｓ２２０３において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、エッジ補正判定部６０５で判定された判定結果に応じて、下記表３の設定で、濃度変換処理０に変換テーブルを切り替える。
【０１４２】
【表３】
2020104304.tif 000005
【０１４３】
表３は、エッジ補正判定部６０５の判定結果のエッジ補正、パターン判定部６０２のパターンＦｌａｇに対応したスムージング処理、濃度変換処理０、濃度変換処理１の設定を表している。濃度変換処理０はパターンＦｌａｇがｐ０のパターンの注目画素が０の部分のスムージング処理後に適用する濃度変換である。例えば図２１（ｃ）の２１０３に適用する濃度変換である。例えば、エッジ補正判定結果が「太らせ処理」の場合は、濃度を濃くする設定（ｕｐ０）にし、濃くすることで太くみえるようになる。一方、エッジ補正判定結果が「細らせ処理」の場合は、濃度を薄くする設定（ｄｏｗｎ０）にし、薄くすることで細くみえるようになる。また、エッジ補正判定結果が「通常処理」の場合は、濃度を変えない設定（ｎｏｒｍａｌ０）にし、太さがかわらないようになる。
【０１４４】
Ｓ２２０４において、ＣＰＵ１２１はスムージング処理を行った画素のスムージングＦｌａｇ６０８をＯＮにする。
【０１４５】
Ｓ２２０５において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、ビットマップデータにスムージング処理を行い、処理後のビットマップデータ６０７を出力する。
【０１４６】
Ｓ２２０６において、ＣＰＵ１２１はスムージング処理部６０６を制御し、スムージング処理部６０６は、エッジ補正判定部６０５で判定された判定結果に応じて、表３の設定で、濃度変換処理１に変換テーブルを切り替える。
【０１４７】
濃度変換処理１はパターンＦｌａｇがｐ１のパターンの注目画素が１の部分のスムージング処理後に適用する濃度変換である。例えば図２１（ｄ）の２１０４に適用する濃度変換である。エッジ補正判定結果が「太らせ処理」の場合は、濃度を濃くする設定（ｕｐ１）にし、濃くすることで太くみえるようになる。一方、エッジ補正判定結果が「細らせ処理」の場合は、濃度を薄くする設定（ｄｏｗｎ１）にし、薄くすることで細くみえるようになる。また、エッジ補正判定結果が「通常処理」の場合は、濃度を変えない設定（ｎｏｒｍａｌ１）にし、太さが変わらないようになる。
【０１４８】
Ｓ２２０７において、図６のスムージング処理部は、スムージング処理を行った画素にはスムージングＦｌａｇ６０８をＯＮにして出力する。
【０１４９】
図２３は、ＳＡ機能がＯＦＦでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図である。図１５（ｂ）は、パターンＦｌａｇがｐ０、ｐ１の両方にスムージング処理を行ったビットマップデータを示している。図１５（ｂ）に濃度変換処理で薄くした結果が図２３となる。スムージング処理設定の「通常処理」より薄くすることで細らせ処理が達成されている。
【０１５０】
図２４は、ＳＡ機能がＯＮでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図である。図２０（ｂ）は、パターンＦｌａｇがｐ０、ｐ１の両方にスムージング処理を行ったビットマップデータを示している。図２０（ｂ）に濃度変換処理で濃くした結果が図２４となる。スムージング処理設定の「通常処理」より濃くすることで太らせ処理が達成されている。
【０１５１】
実施例２では、エッジ補正判定部６０５で判定された判定結果によらず、パターンＦｌａｇがｐ０、ｐ１の両方の場合にスムージング処理を行う。その後、エッジ補正判定部６０５で判定された判定結果に応じて、スムージング処理後のビットマップデータの濃度を調整することにより、実施例１と同様の「太らせ処理」、「細らせ処理」、「通常処理」を実現している。
【０１５２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１５３】
１２０  ＭＦＰ
１２１  ＣＰＵ
１２５  画像処理部
【図１】
2020104304.tif 000006
【図２】
2020104304.tif 000007
【図３】
2020104304.tif 000008
【図４】
2020104304.tif 000009
【図５】
2020104304.tif 000010
【図６】
2020104304.tif 000011
【図７】
2020104304.tif 000012
【図８】
2020104304.tif 000013
【図９】
2020104304.tif 000014
【図１０】
2020104304.tif 000015
【図１１】
2020104304.tif 000016
【図１２】
2020104304.tif 000017
【図１３】
2020104304.tif 000018
【図１４】
2020104304.tif 000019
【図１５】
2020104304.tif 000020
【図１６】
2020104304.tif 000021
【図１７】
2020104304.tif 000022
【図１８】
2020104304.tif 000023
【図１９】
2020104304.tif 000024
【図２０】
2020104304.tif 000025
【図２１】
2020104304.tif 000026
【図２２】
2020104304.tif 000027
【図２３】
2020104304.tif 000028
【図２４】
2020104304.tif 000029