(57)【要約】【課題】似たような色の画像が隣接する場合でも、これらの画像を容易に区別することができるように画像を形成すること。【解決手段】印刷装置１００は、形成する複数の画像を指示する印刷データに基づいて、複数の画像の画素値を示す画像データを生成するデータ生成部１３０と、データ生成部１３０で生成された画像データに基づいて、記録媒体に画像を形成する印刷部１４０とを備え、データ生成部１３０は、複数の画像に含まれる一の画像の画素値と、一の画像に隣接する画像の画素値とが近似する場合には、一の画像と、隣接する画像との境界を強調するように、画像データを生成する。【選択図】図１
2015046835.tif 000002
【特許請求の範囲】
【請求項１】
形成する複数の画像を指示する画像形成データに基づいて、前記複数の画像の画素値を示す画像データを生成するデータ生成部と、
前記データ生成部で生成された画像データに基づいて、記録媒体に画像を形成する画像形成部と、を備え、
前記データ生成部は、前記複数の画像に含まれる一の画像の画素値と、当該一の画像に隣接する画像の画素値とが近似する場合には、当該一の画像と、当該隣接する画像との境界を強調するように、前記画像データを生成すること
を特徴とする画像形成装置。
【請求項２】
前記データ生成部は、
前記一の画像のエッジとなる画素を抽出するエッジ抽出部と、
前記エッジ抽出部で抽出された画素に既に設定されている画素値と、前記画像形成データに基づいて前記一の画像を形成するための画素値との差分が、予め定められた第１の値未満である場合に、前記エッジ抽出部で抽出された画素の画素値を、前記境界を強調する画素値に更新するエッジ展開部と、を備えること
を特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値に応じて、前記境界を強調する画素値を変えること
を特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記境界を強調する画素値は、前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値とは異なる値であること
を特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値で示される色が、予め定められた第２の値で示される色以上の濃さである場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも薄い色となるように更新し、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値で示される色が、前記予め定められた第２の値で示される色よりも薄い場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも濃い色となるように更新すること
を特徴とする請求項３又は４に記載の画像形成装置。
【請求項６】
前記データ生成部は、
前記一の画像のエッジとなる画素を抽出するエッジ抽出部と、
前記エッジ抽出部で抽出された画素に隣接する、前記隣接する画像の画素の画素値と、前記画像形成データに基づいて前記一の画像を形成するための画素値との差分が、予め定められた第１の値未満である場合に、前記エッジ抽出部で抽出された画素の画素値を、前記境界を強調する画素値に更新するエッジ展開部と、を備えること
を特徴とする請求項１に記載の画像形成装置。
【請求項７】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に隣接する、前記隣接する画像の画素の画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値の少なくとも何れか一つの値に応じて、前記境界を強調する画素値を変えること
を特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記境界を強調する画素値は、前記エッジ抽出部で抽出された画素に隣接する、前記隣接する画像の画素の画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値とは異なる値であること
を特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に隣接する、前記隣接する画像の画素の画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値の少なくとも何れか一つの値で示される色が、予め定められた第２の値で示される色以上の濃さである場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも薄い色となるように更新し、
前記エッジ抽出部で抽出された画素に隣接する、前記隣接する画像の画素の画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値の少なくとも何れか一つの値で示される色が、前記予め定められた第２の値で示される色よりも薄い場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも濃い色となるように更新すること
を特徴とする請求項７又は８に記載の画像形成装置。
【請求項１０】
前記データ生成部は、
前記一の画像に対してエッジとなる、前記隣接する画像の画素を抽出するエッジ抽出部と、
前記エッジ抽出部で抽出された画素に既に設定されている画素値と、前記画像形成データに基づいて前記一の画像を形成するための画素値との差分が、予め定められた第１の値未満である場合に、前記エッジ抽出部で抽出された画素の画素値を、前記境界を強調する画素値に更新するエッジ展開部と、を備えること
を特徴とする請求項１に記載の画像形成装置。
【請求項１１】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値に応じて、前記境界を強調する画素値を変えること
を特徴とする請求項１０に記載の画像形成装置。
【請求項１２】
前記境界を強調する画素値は、前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値とは異なる値であること
を特徴とする請求項１１に記載の画像形成装置。
【請求項１３】
前記エッジ展開部は、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値で示される色が、予め定められた第２の値で示される色以上の濃さである場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも薄い色となるように更新し、
前記エッジ抽出部で抽出された画素に既に設定されている画素値、及び、前記画像形成データに基づいて前記一の画像を形成するための画素値、の少なくとも何れか一つの値で示される色が、前記予め定められた第２の値で示される色よりも薄い場合には、前記エッジ抽出部で抽出された画素の画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値で示される色よりも濃い色となるように更新すること
を特徴とする請求項１１又は１２に記載の画像形成装置。
【請求項１４】
前記エッジ展開部は、
前記薄い色を白色とし、
前記濃い色を黒色とすること
を特徴とする請求項５、９及び１３の何れか一項に記載の画像形成装置。
【請求項１５】
前記データ生成部は、
前記画像形成データに基づいて、前記複数の画像を描画するための中間コードを生成する編集部と、
前記編集部で生成された中間コードを記憶する中間コード記憶部と、
前記中間コード記憶部に記憶されている中間コードを解析し、前記複数の画像の描画範囲及び画素値を特定する中間コード解析部と、をさらに備え、
前記エッジ抽出部は、前記中間コード解析部で特定された描画範囲に基づいて、前記一の画像のエッジとなる画素を抽出し、
前記エッジ展開部は、前記中間コード解析部で特定された画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値とすること
を特徴とする請求項２又は６に記載の画像形成装置。
【請求項１６】
前記データ生成部は、
前記画像形成データに基づいて、前記複数の画像を描画するための中間コードを生成する編集部と、
前記編集部で生成された中間コードを記憶する中間コード記憶部と、
前記中間コード記憶部に記憶されている中間コードを解析し、前記複数の画像の描画範囲及び画素値を特定する中間コード解析部と、をさらに備え、
前記エッジ抽出部は、前記中間コード解析部で特定された描画範囲に基づいて、前記一の画像に対してエッジとなる、前記隣接する画像の画素を抽出し、
前記エッジ展開部は、前記中間コード解析部で特定された画素値を、前記画像形成データに基づいて前記一の画像を形成するための画素値とすること
を特徴とする請求項１０に記載の画像形成装置。
【請求項１７】
前記画像形成データは、前記複数の画像をカラーで形成するように指示するデータであり、
前記編集部は、前記画像形成データに基づいて、前記複数の画像をグレースケールで描画するための中間コードを生成すること
を特徴とする請求項１５又は１６に記載の画像形成装置。
【請求項１８】
形成する複数の画像を指示する画像形成データに基づいて、前記複数の画像の画素値を示す画像データを生成するデータ生成過程と、
前記データ生成過程で生成された画像データに基づいて、記録媒体に画像を形成する画像形成過程と、を有し、
前記データ生成過程では、前記複数の画像に含まれる一の画像の画素値と、当該一の画像に隣接する画像の画素値とが近似する場合には、当該一の画像と、当該隣接する画像との境界を強調するように、前記画像データが生成されること
を特徴とする画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び画像形成方法に関する。
【背景技術】
【０００２】
カラーで表現された画像を含む印刷データに基づいて、記録媒体にモノクロの画像を形成する場合がある。このような場合、従来の画像形成装置は、特許文献１に開示されているように、カラーの色に対応した傾き、太さ又は密度を持つ罫線でパタンを作成し、そのパタンをカラーの前景色と置き換えて描画を行う。これにより、カラーでは異なる色だったにもかかわらずグレー化したときに同じような色となってしまい視認性が下がってしまうような場合でも、視認性を保つことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１-１７９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、前景色をパタンに置き換えてしまう方式では、出力結果が前景色によるものとかけ離れてしまう可能性があり、また、生成されるパタンによっては、見づらいものとなってしまうという問題があった。
また、カラーで表現された画像を含む印刷データに基づいて、記録媒体にカラーの画像を形成する場合でも、似たような色の画像が隣接している場合には、画像同士を区別することが困難な場合もある。
【０００５】
そこで、本発明は、似たような色の画像が隣接する場合でも、これらの画像を容易に区別することができるように画像を形成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る画像形成装置は、形成する複数の画像を指示する画像形成データに基づいて、前記複数の画像の画素値を示す画像データを生成するデータ生成部と、前記データ生成部で生成された画像データに基づいて、記録媒体に画像を形成する画像形成部と、を備え、前記データ生成部は、前記複数の画像に含まれる一の画像の画素値と、当該一の画像に隣接する画像の画素値とが近似する場合には、当該一の画像と、当該隣接する画像との境界を強調するように、前記画像データを生成することを特徴とする。
【０００７】
本発明の一態様に係る画像形成方法は、形成する複数の画像を指示する画像形成データに基づいて、前記複数の画像の画素値を示す画像データを生成するデータ生成過程と、前記データ生成過程で生成された画像データに基づいて、記録媒体に画像を形成する画像形成過程と、を有し、前記データ生成過程では、前記複数の画像に含まれる一の画像の画素値と、当該一の画像に隣接する画像の画素値とが近似する場合には、当該一の画像と、当該隣接する画像との境界を強調するように、前記画像データが生成されることを特徴とする。
【発明の効果】
【０００８】
本発明の一態様によれば、似たような色の画像が隣接する場合でも、これらの画像を容易に区別することができるように画像を形成することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１又は２に係る印刷装置の構成を概略的に示すブロック図である。
【図２】実施の形態１に係る印刷装置の処理の流れを示すシーケンス図である。
【図３】実施の形態１において、中間コードが台形を描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。
【図４】実施の形態１において、中間コードが矩形を描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。
【図５】実施の形態１におけるエッジ展開部による展開処理を示すフローチャートである。
【図６】実施の形態１において生成された画像データの一例を示す概略図である。
【図７】実施の形態２において、中間コードがテキストを描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。
【図８】実施の形態２におけるエッジ展開部による展開処理を示すフローチャートである。
【図９】実施の形態２において生成された画像データの一例を示す概略図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明が適用された画像形成装置及び画像形成方法について説明する。
【００１１】
実施の形態１．
（構成の説明）
図１は、実施の形態１に係る画像形成装置としての印刷装置１００の構成を概略的に示すブロック図である。印刷装置１００は、実施の形態１に係る画像形成方法を実行する。なお、図１の括弧内の符号は、実施の形態２における構成を示している。
印刷装置１００は、通信部１１０と、受信バッファ１２０と、データ生成部１３０と、印刷部１４０とを備える。
ここで、印刷装置１００は、プリンタであり、ネットワーク１６０を介して、ＰＣである上位装置１７０に接続されている。
【００１２】
通信部１１０は、上位装置１７０からＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等で表現されたコマンドを含む印刷データ（画像形成データ）を受信する受信部として機能する。例えば、通信部１１０は、ネットワーク１６０を介して、上位装置１７０から印刷データを受信する。印刷データは、形成する複数の画像を指示するデータである。なお、実施の形態１における印刷データは、複数の画像をカラーで形成するように指示するデータである。
受信バッファ１２０は、通信部１１０で受信された印刷データを格納する印刷データ記憶部（画像形成データ記憶部）として機能する。
【００１３】
データ生成部１３０は、印刷データに基づいて、画像を形成するための画像データを生成する。画像データは、印刷データで形成することが指示されている複数の画像の画素値を示すデータである。ここで、データ生成部１３０は、印刷データで形成することが指示されている複数の画像に含まれる一の画像の画素値と、この一の画像に隣接する画像の画素値とが近似する場合には、この一の画像と、この隣接する画像との境界を強調するように、画像データを生成する。
データ生成部１３０は、編集部１３１と、ページバッファ１３２と、中間コード解析部１３３と、エッジ抽出部１３４と、展開部１３５と、エッジ展開部１３６と、ラスタバッファ１３７とを備える。
【００１４】
編集部１３１は、印刷データに基づいて、この印刷データで形成することが指示された複数の画像を描画するための中間コードを生成する。例えば、編集部１３１は、受信バッファ１２０に記憶されている印刷データから、コマンドをコマンド単位で取得する。編集部１３１は、取得されたコマンドに応じて中間コードを生成し、生成された中間コードをページバッファ１３２に格納する。実施の形態１においては、編集部１３１は、塗りつぶしパタンとして、カラーの前景色を指定するコマンドを、対応するグレースケールで印刷（画像形成）する中間コードに変換する。また、編集部１３１は、１ページ分のコマンドを処理すると、中間コード解析部１３３に編集終了を通知する。
編集部１３１で生成される中間コードには、前景色を指定する前景色中間コード、矩形を描画する矩形中間コード、及び、台形を描画する台形中間コード等のコードが含まれる。また、前景色中間コードは、２５６階調で表現された前景色階調値を含んでいる。言い換えると、グレーの階調値を示す前景色階調値を含む前景色中間コードと、この前景色中間コードの後に処理される矩形中間コードとは、前景色中間コードに対応するグレーの階調値で、矩形中間コードで示される矩形の画像が形成されることを意味する。また、前景色中間コードと、この前景色中間コードの後に処理される台形中間コードとは、前景色中間コードに対応するグレーの階調値で、台形中間コードで示される台形の画像が形成されることを意味する。即ち、編集部１３１で生成される中間コードには、階調値を示す前景色中間コードと、その階調値で描画されるグラフィックを示すグラフィック中間コードとが含まれることになる。
ページバッファ１３２は、編集部１３１が作成する中間コードを記憶する中間コード記憶部として機能する。
【００１５】
中間コード解析部１３３は、ページバッファ１３２に記憶されている中間コードを解析して、印刷データで形成することが指示された複数の画像の描画範囲及び画素値を特定する。
また、中間コード解析部１３３は、ページバッファ１３２に記憶されている中間コードを解析し、その解析結果に応じて、処理を行う。例えば、中間コード解析部１３３は、解析された中間コードが前景色中間コードである場合、以降、前景色を参照して展開処理を行うように状態を更新するとともに、解析された前景色中間コードに含まれている前景色階調値に従い、前景色階調値設定を更新する。この前景色階調値は、形成される画像の画素値となる。そして、中間コード解析部１３３は、前景色を参照して展開処理を行う状態のときに、矩形中間コード又は台形中間コードを解析すると、中間コードに対応した描画範囲の情報をエッジ抽出部１３４に与えて、エッジ抽出部１３４に中間コード展開を依頼する。前景色を参照して展開処理を行う状態ではない場合、又は、矩形又は台形等のグラフィックの描画以外の描画の場合には、中間コード解析部１３３は、描画範囲の情報を展開部１３５に与えて、展開部１３５に中間コード展開を依頼する。
例えば、矩形の描画範囲の情報には、描画すべき矩形の左上座標と右下座標とが含まれている。台形の描画範囲の情報には、描画すべき台形の上底のｙ座標ｙＴと、上底の左端ｘ座標ｘＬと、上底の右端ｘ座標ｘＲと、下底のｙ座標ｙＢと、左辺の傾きｄｘＬと、右辺の傾きｄｘＲとが含まれている。描画するべき台形の上底と下底との間の左辺及び右辺のｘ座標は、計算により算出することができる。例えば、ｙ座標ｙＴとｙ座標ｙＢとの間にあるｙ座標ｙｃにおける左辺のｘ座標ｘｃＬ及び右辺のｘ座標ｘｃＲは、下記の（１）及び（２）式で算出される。但し、小数点以下は切り捨てられる。
ｘｃＬ=ｘＬ+（ｙＴ−ｙｃ）×ｄｘＬ                      （１）
ｘｃＲ=ｘＲ+（ｙＴ−ｙｃ）×ｄｘＲ                      （２）
ここで、左辺の傾きｄｘＬ及び右辺の傾きｄｘＲは、ｙ軸における変化量に対するｘ軸における変化量の割合（Δｘ／Δｙ）である。
そして、中間コード解析部１３３は、１ページ分の中間コードを処理したら、印刷部１４０へ展開終了を通知する。
【００１６】
エッジ抽出部１３４は、形成される画像のエッジとなる画素を抽出する。例えば、エッジ抽出部１３４は、中間コード解析部１３３から与えられた描画範囲の情報を用いて、中間コードで描画されるグラフィック単位で、グラフィックのエッジとなる画像を抽出する。そして、エッジ抽出部１３４は、グラフィックのエッジとなる画素については、エッジ展開部１３６に展開を依頼する。エッジ抽出部１３４は、グラフィックのエッジとはならない画素については、展開部１３５に展開を依頼する。
【００１７】
展開部１３５は、中間コード解析部１３３、エッジ抽出部１３４又はエッジ展開部１３６で特定された画素に対して、中間コードに基づいて、画素値を特定する。例えば、展開部１３５は、中間コード解析部１３３より、中間コード展開を依頼されると、そのときの前景色又はパタン等の塗りつぶし指定を参照しながら、ラスタバッファ１３７上に確保されたページ単位の展開結果格納領域において、描画範囲の情報で指定されている画素の画素値を更新する。なお、展開結果を格納する領域では、各画素が２５６階調の画素値で表現されている。また、展開部１３５は、エッジ抽出部１３４又はエッジ展開部１３６から展開を依頼されると、指定された画素に対して前景色又はパタン等の塗りつぶし指定を参照しながら、該当画素の画素値を更新する。例えば、塗りつぶし指定が前景色だった場合、展開部１３５は、そのときの前景色階調値を参照して、描画対象画素の画素値を前景色階調値に更新する。
【００１８】
エッジ展開部１３６は、印刷データで形成することが指示された複数の画像に含まれる一の画像の画素値と、この一の画像に隣接する画像の画素値とが近似する場合に、この一の画像と、この隣接する画像との境界を強調するように、エッジ抽出部１３４で抽出されたエッジとなる画素の画素値を特定する。例えば、エッジ抽出部１３４から展開を依頼されると、エッジ展開部１３６は、ラスタバッファ１３７上の描画を行う描画対象画素の画素値と、前景色階調値とを参照しながら描画を行う。描画対象画素の画素値が０の場合、エッジ展開部１３６は、その画素はまだ何も描画が行われていないと判断し、展開部１３５に展開を依頼する。描画対象画素の画素値が０ではない場合、エッジ展開部１３６は、前景色階調値と、描画対象画素に既に設定されている画素値とを比較し、その差が予め定められた値（以下、第１の値ともいう）以上であれば、階調の差が十分あると判断し、展開部１３５に展開を依頼する。その階調の差が第１の値未満であれば、エッジ展開部１３６は、隣接する画像との間の境界を強調する画素値となるように、描画対象画素の画素値を更新する。ここで、第１の値は、例えば、１０である。
また、境界を強調する場合、エッジ展開部１３６は、その前景色階調値の値に応じて、境界を強調する画素値を変える。境界を強調する画素値は、前景色階調値及び隣接する画像の画素値（描画対象画素に既に設定されている画素値）とは異なる値となるように設定されることが望ましい。例えば、境界を強調する場合、エッジ展開部１３６は、その前景色階調値が予め定められた値（以下、第２の値ともいう）以上であれば、描画対象画素の画素値を、その前景色階調値で示される色よりも薄くなるように（例えば、０に）更新する。その前景色階調値が第２の値未満であれば、エッジ展開部１３６は、描画対象画素の画素値を、その前景色階調値で示される色よりも濃くなるように（例えば、２５５に）更新する。ここで、第２の値は、例えば、１２８である。
【００１９】
ラスタバッファ１３７は、ページ単位で、各画素の画素値が２５６階調で表現される展開結果である画像データを記憶する画像データ記憶部として機能する。
印刷部１４０は、中間コード解析部１３３から展開終了を通知されるとラスタバッファ１３７に記憶された画像データに基づいて、記録媒体に画像を形成する画像形成部である。印刷部１３７は、印刷データで形成することが指示された複数の画像を記録媒体に形成する。
【００２０】
（動作の説明）
以下、実施の形態１に係る印刷装置１００の動作について説明する。
図２は、実施の形態１に係る印刷装置１００の処理の流れを示すシーケンス図である。
上位装置１７０は、ユーザの指示により、ネットワーク１６０を介して印刷データを印刷装置１００へ送信する（Ｓ１０）。このとき送信された印刷データは、前景色の塗りつぶし指定として、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）及びブラック（Ｋ）の各成分として、（Ｃ、Ｍ、Ｙ、Ｋ）＝（０ｘ００、０ｘＦＦ、０ｘＦＦ、０ｘ００）を指定するコマンドと、台形で描画を行うコマンドと、矩形で描画を行うコマンドとを含んでいるものとする。
上位装置１７０から送信された印刷データは、印刷装置１００の通信部１１０で受信される。通信部１１０は、受信された印刷データを受信バッファ１２０に格納する。
【００２１】
編集部１３１は、受信バッファ１２０に格納された印刷データの解析処理を行う（Ｓ１１）。印刷データの解析処理は、コマンド解析（Ｓ１２）と、中間コード作成（Ｓ１３）とを含む。
【００２２】
編集部１３１は、受信バッファ１２０に格納された印刷データから各々のコマンドを抽出して、抽出されたコマンドを解析する（Ｓ１２）。例えば、編集部１３１は、コマンド解析を開始すると、受信バッファ１２０に格納された印刷データの先頭のコマンドを参照し、このコマンドを解析する。ここで、このコマンドは前景色の塗りつぶし指定として（Ｃ、Ｍ、Ｙ、Ｋ）＝（０ｘ００、０ｘＦＦ、０ｘＦＦ、０ｘ００）を指定するコマンドであるものとする。このような場合、編集部１３１は、指定された前景色をグレースケールに変換する。例えば、編集部１３１は、一旦、成分Ｃ、成分Ｍ、成分Ｙ及び成分ＫのデータをＲＧＢ変換する。ここでは、変換された値は、（Ｒ、Ｇ、Ｂ）＝（２５５、０、０）となる。そして、編集部１３１は、ＲＧＢの値を、下記の（３）式で示される変換式を用いて、Ｋ変換する。但し、小数点以下は四捨五入する。
【数１】
2015046835.tif 000003
そして、編集部１３１は、変換された結果（Ｋ）＝（０ｘＢ３）を前景色階調値として指定する前景色中間コードを作成し、ページバッファ１３２に格納する（Ｓ１３）。
以降、同様に、編集部１３１は、受信バッファ１２０に格納されている印刷データからコマンド単位でコマンドを読み出し、読み出されたコマンドの解析を行い（Ｓ１２）、その解析結果に基づいて中間コードを作成して、ページバッファ１３２に格納する（Ｓ１３）。編集部１３１は、１ページ分のコマンドを処理するまで、コマンド解析（Ｓ１２）と、中間コード作成（Ｓ１３）を繰り返す。
【００２３】
編集部１３１は、１ページ分のコマンドの処理が終了すると、中間コード解析部１３３に編集終了を通知する（Ｓ１４）。
【００２４】
中間コード解析部１３３、エッジ抽出部１３４、展開部１３５及びエッジ展開部１３６は、編集部１３１から編集終了が通知されると、画像データ生成処理を行う（Ｓ１５）。画像データ生成処理は、第１の中間コード解析（Ｓ１６）と、前景色指定更新（Ｓ１７）と、第２の中間コード解析（Ｓ１８）と、中間コード展開（Ｓ１９）と、エッジ抽出及び展開処理（Ｓ２０）とを含む。
【００２５】
中間コード解析部１３３は、ページバッファ１３２に記憶されている中間コードを取得して、第１の中間コード解析を行う（Ｓ１６）。例えば、ページバッファ１３２に記憶されている先頭の中間コードは、前景色中間コードで、前景色階調値として（Ｋ）＝（０ｘＢ３）を指定する中間コードである。このため、中間コード解析部１３３は、前景色により塗りつぶしを行う状態にし、前景色階調値を（Ｋ）＝（０ｘＢ３）に更新する（Ｓ１７）。
【００２６】
そして、中間コード解析部１３３は、ページバッファ１３２に記憶されている次の中間コードを取得し、第２の中間コード解析を行う（Ｓ１８）。次の中間コードは、例えば、ｙＴ＝３００ｘＬ、１００ｘＲ＝４００、ｙＢ＝５００、ｄｘＬ＝−０．２５、ｄｘＲ＝０．２５とする台形中間コードであるものとする。ステップＳ１６及びＳ１７により、前景色により塗りつぶしを行う状態となっているため、中間コード解析部１３３は、エッジ抽出部１３４に描画範囲の情報とともに中間コード展開を通知する（Ｓ１９）。
【００２７】
中間コード解析部１３３から中間コード展開の通知を受けると、エッジ抽出部１３４、エッジ展開部１３６及び展開部１３５は、エッジ抽出及び展開処理を行う（Ｓ２０）。エッジ抽出及び展開処理は、エッジ抽出（Ｓ２１）と、第１の展開（Ｓ２２）と、第２の展開（Ｓ２３）とを含む。
エッジ抽出部１３４は、中間コード解析部１３３から通知された描画範囲の情報に基づいて、エッジ抽出を行う（Ｓ２１）。エッジ抽出部１３４は、エッジと判断された画素については、エッジ展開部１３６に展開を依頼する（Ｓ２２）。エッジ展開部１３６は、依頼された画素について、展開処理を行い、当該画素の画素値を特定する。一方、エッジ抽出部１３４は、エッジとは判断されなかった画素については、展開部１３５に展開を依頼する（Ｓ２３）。展開部１３５は、依頼された画素について、展開処理を行い、当該画素の画素値を特定する。
中間コード解析部１３３、エッジ抽出部１３４、エッジ展開部１３６及び展開部１３５は、ページバッファ１３２に記憶されている中間コードがなくなるまで、上記と同様の処理を進める。
なお、エッジ抽出及び展開処理（Ｓ２０）については、図３〜図６を参照して詳細に説明する。
【００２８】
そして、中間コード解析部１３３は、ページバッファ１３２に記憶されている全ての中間コードの処理が完了すると、印刷部１４０に展開終了を通知する（Ｓ２４）。
印刷部１４０は、ラスタバッファ１３７に記憶された展開結果である画像データに基づいて印刷を行う（Ｓ２５）。
【００２９】
図３は、中間コードが台形を描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。なお、ここでの座標系は、左上方に原点を配置し、原点から右方向にｘ軸、原点から下方にｙ軸が配置されているものとする。
まず、エッジ抽出部１３４は、エッジ抽出処理のため、各種初期化を行う（Ｓ３０〜Ｓ３３）。例えば、エッジ抽出部１３４は、あるｙ座標におけるこの台形の左端のｘ座標を示す値ｘＬＬを、この台形の上底の左端のｘ座標ｘＬの値（例えば、１００）に更新する（Ｓ３０）。また、エッジ抽出部１３４は、あるｙ座標におけるこの台形の右端のｘ座標を示す値ｘＲＬを、この台形の上底の右端のｘ座標ｘＲの値（例えば、４００）に更新する（Ｓ３１）。さらに、エッジ抽出部１３４は、現在描画を行っている描画対象画素のｘ座標を示す値ｘｃをｘＬの値（例えば、１００）に更新する（Ｓ３２）。さらにまた、エッジ抽出部１３４は、現在描画を行っている描画対象画素のｙ座標を示す値ｙｃを、この台形の上底のｙ座標ｙＴの値（例えば、３００）に更新する（Ｓ３３）。
【００３０】
次に、エッジ抽出部１３４は、描画対象画素のｙ座標の値ｙｃが、描画する台形の下底のｙ座標の値ｙＢ以下であるか否かを判断する（Ｓ３４）。値ｙｃが値ｙＢ以下である場合（Ｓ３４：Ｙｅｓ）には、描画する台形に検出すべきエッジが残っているため、処理はステップＳ３５に進む。値ｙｃが値ｙＢよりも大きい場合（Ｓ３４：Ｎｏ）には、描画する台形において全てのエッジの検出が完了したため、フローは終了する。
【００３１】
ステップＳ３５では、エッジ抽出部１３４は、描画対象画素のｘ座標の値ｘｃが、描画対象画素のｙ座標の値ｙｃに対応する左端のｘ座標の値ｘＲＬ以下であるか否かを判断する。値ｘｃが値ｘＲＬ以下である場合（Ｓ３５：Ｙｅｓ）には、値ｙｃに対応して検出すべきエッジが残っているため、処理はステップＳ３６に進む。値ｘｃが値ｘＲＬよりも大きい場合（Ｓ３５：Ｎｏ）には、値ｙｃに対応する全てのエッジの検出が完了したため、処理は、ステップＳ４１に進む。
【００３２】
ステップＳ３６では、エッジ抽出部１３４は、描画対象画素のｘ座標の値ｘｃが、描画対象画素のｙ座標の値ｙｃに対応する左端のｘ座標の値ｘＬＬ、又は、その右端のｘ座標の値ｘＲＬであるか否かを判断する。値ｘｃが値ｘＬＬ又は値ｘＲＬである場合（Ｓ３６：Ｙｅｓ）には、処理対象画素がエッジであるため、処理はステップＳ３８に進む。値ｘｃが値ｘＬＬ及び値ｘＲＬではない場合（Ｓ３６：Ｎｏ）には、処理はステップＳ３７に進む。
【００３３】
ステップＳ３７では、エッジ抽出部１３４は、描画対象画素のｙ座標の値ｙｃが、描画される台形の上底のｙ座標の値ｙＴ、又は、その下底のｙ座標の値ｙＢであるか否かを判断する。値ｙｃが値ｙＴ又は値ｙＢである場合（Ｓ３７：Ｙｅｓ）には、描画対象座標がエッジであるため、処理はステップＳ３８に進む。値ｙｃが値ｙＴ及び値ｙＢではない場合（Ｓ３７：Ｎｏ）には、描画対象座標はエッジではないため、処理はステップＳ３９に進む。
【００３４】
ステップＳ３８では、エッジ抽出部１３４は、描画対象画素が描画する台形のエッジであると判断し、エッジ展開部１３６に展開を依頼する。展開を依頼された際のエッジ展開部１３６の処理については、図５を参照して、詳細に説明する。そして、処理はステップＳ４０に進む。
【００３５】
ステップＳ３９では、エッジ抽出部１３４は、描画対象画素が描画する台形のエッジではないと判断し、展開部１３５に展開を依頼する。このような依頼を受けた展開部１３５は、描画対象画素の画素値を、図２のステップＳ１７で更新された前景色階調値の値に更新する。そして、処理はステップＳ４０に進む。
【００３６】
ステップＳ４０では、エッジ抽出部１３４は、描画対象座標のｘ座標の値ｘｃに１を加算する。そして、処理はステップＳ３４に戻る。
【００３７】
ステップＳ３５で、値ｘｃが値ｘＲＬよりも大きくなった場合（Ｓ３５：Ｎｏ）には、描画対象画素のｘ座標の値ｘｃは、描画する台形の右端のｘ座標の値ｘＲＬよりも大きくなったため、エッジ抽出部１３４は、値ｙｃに対応する全てのエッジの検出が完了したと判断することができる。このため、エッジ抽出部１３４は、ステップＳ４１に処理を進め、描画対象座標のｙ座標の値ｙｃに１を加算する。
【００３８】
そして、エッジ抽出部１３４は、描画対象座標のｙ座標の値ｙｃに対応する、描画する台形の左端のｘ座標を示す値ｘＬＬを、上記の（１）式で算出される値ｘｃＬに更新する（Ｓ４２）。
また、エッジ抽出部１３４は、描画対象座標のｙ座標の値ｙｃに対応する、描画する台形の右端のｘ座標を示す値ｘＲＬを、上記の（２）式で算出される値ｘｃＲに更新する（Ｓ４３）。
そして、エッジ抽出部１３４は、描画対象座標のｘ座標の値ｘｃを、値ｙｃに対応する左端のｘ座標を示す値ｘＬＬに更新する（Ｓ４４）。そして、処理はステップＳ３４に戻る。
【００３９】
図４は、中間コードが矩形を描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。なお、ここでも座標系は、左上方に原点を配置し、原点から右方向にｘ軸、原点から下方にｙ軸が配置されているものとする。
【００４０】
まず、エッジ抽出部１３４は、エッジ抽出処理のため、各種初期化を行う（Ｓ５０〜Ｓ５２）。例えば、エッジ抽出部１３４は、描画する矩形の左上座標（ｘｌ，ｙｔ）を登録する（Ｓ５０）。次に、エッジ抽出部１３４は、描画する矩形の右下座標（ｘｒ，ｙｂ）を登録する（Ｓ５１）。そして、エッジ抽出部１３４は、処理座標である描画対象座標（ｘｃ，ｙｃ）を、ステップＳ５０で登録された左上座標（ｘｌ，ｙｔ）に初期化する（Ｓ５２）。
【００４１】
次に、エッジ抽出部１３４は、描画対象画素のｙ座標の値ｙｃが、描画する矩形の右下のｙ座標の値ｙｂ以下であるか否かを判断する（Ｓ５３）。値ｙｃが値ｙｂ以下である場合（Ｓ５３：Ｙｅｓ）には、描画する矩形に検出すべきエッジが残っているため、処理はステップＳ５４に進む。値ｙｃが値ｙｂよりも大きい場合（Ｓ５３：Ｎｏ）には、描画する矩形の全てのエッジの検出が完了したため、フローは終了する。
【００４２】
ステップＳ５４では、エッジ抽出部１３４は、描画対象画素のｘ座標の値ｘｃが、描画する矩形の右下のｘ座標の値ｘｒ以下であるか否かを判断する。値ｘｃが値ｘｒ以下である場合（Ｓ５４：Ｙｅｓ）には、値ｙｃに対応して検出すべきエッジが残っているため、処理はステップＳ５５に進む。値ｘｃが値ｘｒよりも大きい場合（Ｓ５４：Ｎｏ）には、値ｙｃに対応する全てのエッジの検出が完了したため、処理はステップＳ６０に進む。
【００４３】
ステップＳ５５では、エッジ抽出部１３４は、描画対象画素のｘ座標の値ｘｃが、描画される矩形の左上のｘ座標の値ｘｌ、又は、その右下のｘ座標の値ｘｒであるか否かを判断する。値ｘｃが値ｘｌ又は値ｘｒである場合（Ｓ５５：Ｙｅｓ）には、処理対象画素がエッジであるため、処理はステップＳ５７に進む。値ｘｃが値ｘｌ及び値ｘｒではない場合（Ｓ５５：Ｎｏ）には、処理はステップＳ５６に進む。
【００４４】
ステップＳ５６では、エッジ抽出部１３４は、描画対象画素のｙ座標の値ｙｃが、描画される矩形の左上のｙ座標の値ｙｔ、又は、その右下のｙ座標の値ｙｂであるか否かを判断する。値ｙｃが値ｙｔ又は値ｙｂである場合（Ｓ５６：Ｙｅｓ）には、処理対象画素がエッジであるため、処理はステップＳ５７に進む。値ｙｃが値ｙｔ及び値ｙｂではない場合（Ｓ５６：Ｎｏ）には、処理はステップＳ５８に進む。
【００４５】
ステップＳ５７では、エッジ抽出部１３４は、描画対象画素が描画する矩形のエッジであると判断し、エッジ展開部１３６に展開を依頼する。展開を依頼された際のエッジ展開部１３６の処理については、図５を参照して、詳細に説明する。そして、処理はステップＳ５９に進む。
【００４６】
ステップＳ５８では、エッジ抽出部１３４は、描画対象画素が描画する矩形のエッジではないと判断し、展開部１３５に展開を依頼する。このような依頼を受けた展開部１３５は、描画対象画素の画素値を、図２のステップＳ１７で更新された前景色階調値の値に更新する。そして、処理はステップＳ５９に進む。
【００４７】
ステップＳ５９では、エッジ抽出部１３４は、描画対象座標のｘ座標の値ｘｃに１を加算する。そして、処理はステップＳ５４に戻る。
【００４８】
ステップＳ５４で、値ｘｃが値ｘｒよりも大きくなった場合（Ｓ５４：Ｎｏ）には、描画対象画素のｘ座標の値ｘｃは、描画する矩形の右端のｘ座標の値ｘｒよりも大きくなったため、エッジ抽出部１３４は、値ｙｃに対応する全てのエッジの検出が完了したと判断することができる。このため、エッジ抽出部１３４は、ステップＳ６０に処理を進め、描画対象座標のｘ座標の値ｘｃを、描画する矩形の左端のｘ座標の値ｘｌに更新する（Ｓ６０）。
また、エッジ抽出部１３４は、描画対象座標のｙ座標の値ｙｃに１を加算する（Ｓ６１）。そして、処理はステップＳ５３に戻る。
【００４９】
図５は、エッジ展開部１３６による展開処理を示すフローチャートである。なお、ラスタバッファ１３７に格納されている各画素の画素値の初期値は０であるものとする。
まず、エッジ展開部１３６は、ラスタバッファ１３７に既に格納（設定）されている描画対象画素の画素値が０であるか否かを判断する（Ｓ７０）。既に格納されている描画対象画素の画素値が０である場合（Ｓ７０：Ｙｅｓ）には、描画対象画素が他の画像に隣接していないものと判断して、処理はステップＳ７３に進む。一方、既に格納されている描画対象画素の画素値が０ではない場合（Ｓ７０：Ｎｏ）には、描画対象画素が他の画像に隣接しているものと判断して、処理はステップＳ７１に進む。
【００５０】
ステップＳ７１では、エッジ展開部１３６は、ラスタバッファ１３７に既に格納されている描画対象画素の画素値と、中間コード解析部１３３が更新した前景色階調値との間の差分を算出する。
そして、エッジ展開部１３６は、ステップＳ７１で算出された差分が予め定められた値（例えば、１０）以上であるか否かを判断する（Ｓ７２）。そして、その差分が予め定められた値以上である場合（Ｓ７２：Ｙｅｓ）には、隣接する画像同士の色が近似していないと判断して、処理はステップＳ７３に進む。一方、その差分が予め定められた値未満である場合（Ｓ７２：Ｎｏ）には、隣接する画像同士の色が近似していると判断して、処理はステップＳ７４に進む。
【００５１】
ステップＳ７３では、今回描画する画像が他の画像に隣接していないため、又は、今回描画する画像の色と隣接する画像の色とが近似していないため、今回描画する画像は容易に識別することができる。このため、エッジ展開部１３６は、展開部１３５に展開を依頼する。このような依頼を受けた展開部１３５は、描画対象画素の画素値を、中間コード解析部１３３により更新された前景色階調値の値に更新する。
【００５２】
一方、ステップＳ７４では、今回描画する画像の色と隣接する画像の色とが近似しているため、境界を強調する必要がある。このため、エッジ展開部１３６は、中間コード解析部１３３により更新された前景色階調値が予め定められた値（例えば、１２８）以上であるか否かを判断する。そして、前景色階調値が予め定められた値以上である場合（Ｓ７４：Ｙｅｓ）には、処理はステップＳ７５に進む。一方、前景色階調値が予め定められた値未満である場合（Ｓ７４：Ｎｏ）には、処理はステップＳ７６に進む。
【００５３】
ステップＳ７５では、エッジ展開部１３６は、今回描画する画像の色が濃い色であると判断し、ラスタバッファ１３７に既に格納されている描画対象画素の画素値を、今回描画する画像の色よりも薄い色、例えば、０にする。なお、画素値が小さいほど、より薄い色になるものとする。
一方、ステップＳ７６では、エッジ展開部１３６は、今回描画する画像の色が薄い色であると判断し、ラスタバッファ１３７に既に格納されている描画対象画素の画素値を、今回描画する画像の色よりも濃い色、例えば、２５５にする。なお、画素値が大きいほど、より濃い色になるものとする。
【００５４】
以上に記載された処理により、例えば、１つの台形の画像と、３つの矩形の画像とを描画する印刷データから展開されて生成された画像データの一例を図６に示す。
図６に示されているように、台形の画像ＩＭ１と、矩形の画像ＩＭ２とは隣接し、これらの画素値（前景色階調値）は近似しているため、画像ＩＭ１の後に描画される画像ＩＭ２のエッジの一部が強調されている。ここでは、画像ＩＭ２が比較的濃い色で描画されているため、エッジの一部は、画素値が０（白）にされている。
一方、矩形の画像ＩＭ２と、矩形の画像ＩＭ３とは隣接しているが、これらの画素値（前景色階調値）は近似していないため、エッジの強調は行われていない。
また、矩形の画像ＩＭ３と、矩形の画像ＩＭ４とは隣接し、これらの画素値（前景色階調値）は近似しているため、画像ＩＭ３の後に描画される画像ＩＭ４のエッジの一部が強調されている。ここでは、画像ＩＭ４が比較的薄い色で描画されているため、エッジの一部は、画素値が２５５（黒）にされている。
【００５５】
以上のように、実施の形態１によれば、グレーで描画を行う際に階調値が近く、且つ、描画が重なっている箇所にのみ、描画される画像のエッジが強調される。さらに、強調されているエッジは、塗りつぶしの色に応じて視認しやすい色で描画されるため、エッジ強調を行わない場合の出力結果に近い形を保持することができ、かつ、同じような色で描画されている箇所の視認性を高めることができる。
【００５６】
以上に記載された実施の形態１では、図５に示されているように、エッジ展開部１３６は、描画対象座標において既に設定されている画素値を用いて処理を行っているが、このような例に限定されるものではない。
例えば、印刷データで形成することが指示された複数の画像に含まれる一の画像に隣接する画像の画素の内、この一の画像のエッジとなる画素に隣接する画素を用いて処理を行うこともできる。具体的には、エッジ展開部１３６は、描画対象座標において既に設定されている画素値の代わりに、描画するグラフィックの外側の座標に既に設定されている画素値を用いて、図５に示されている処理を行ってもよい。
このような場合、エッジ展開部１３６は、描画対象画素の周囲の画素のうち、描画する画像の外側の画素を用いればよい。例えば、図３のステップＳ３６でｘｃ＝ｘＬＬと判断された場合には、描画対象画素は、描画する台形の左側の辺にあるため、エッジ展開部１３６は、描画対象画素の左隣の画素の画素値を用いればよい。また、図３のステップＳ３６でｘｃ＝ｘＲＬと判断された場合には、描画対象画素は、描画する台形の右側の辺にあるため、エッジ展開部１３６は、描画対象画素の右隣の画素の画素値を用いればよい。さらに、図３のステップＳ３７でｙｃ＝ｙＴと判断された場合には、描画対象画素は、描画する台形の上底にあるため、エッジ展開部１３６は、描画対象画素の１つ上の画素の画素値を用いればよい。さらにまた、図３のステップＳ３７でｙｃ＝ｙＢと判断された場合には、描画対象画素は、描画する台形の下底にあるため、エッジ展開部１３６は、描画対象画素の１つ下の画素の画素値を用いればよい。描画するグラフィックが矩形の場合も同様に、エッジ展開部１３６は、描画対象画素が矩形の左辺にある場合には描画対象画素の左隣の画素の画素値を用い、描画対象画素が矩形の右辺にある場合には描画対象画素の右隣の画素の画素値を用い、描画対象画素が矩形の上辺にある場合には描画対象画素の１つ上の画素の画素値を用い、描画対象画素が矩形の下辺にある場合には描画対象画素の１つ下の画素の画素値を用いればよい。
【００５７】
実施の形態２．
（構成の説明）
図１に示すように、実施の形態２に係る画像形成装置としての印刷装置２００は、通信部１１０と、受信バッファ１２０と、データ生成部２３０と、印刷部１４０とを備える。実施の形態２に係る印刷装置２００は、データ生成部２３０での処理において、実施の形態１に係る印刷装置１００と異なっている。なお、印刷装置２００は、実施の形態２に係る画像形成方法を実行する。
【００５８】
データ生成部２３０は、印刷データに基づいて、画像を形成するための画像データを生成する。
データ生成部２３０は、編集部１３１と、ページバッファ１３２と、中間コード解析部２３３と、エッジ抽出部２３４と、展開部１３５と、エッジ展開部２３６と、ラスタバッファ１３７とを備える。実施の形態２におけるデータ生成部２３０は、中間コード解析部２３３、エッジ抽出部２３４及びエッジ展開部２３６での処理において、実施の形態１におけるデータ生成部１３０と異なっている。
【００５９】
中間コード解析部２３３は、実施の形態１と同様の処理を行う他、前景色を参照して展開処理を行う状態のときに、テキスト中間コードを解析すると、中間コードに対応した描画範囲の情報とともにエッジ抽出部２３４に中間コード展開を依頼する。ここで、テキスト中間コードには、描画すべき文字を０と１で表現したビットマップデータと、文字の描画位置情報とを含む。文字の描画位置情報は、例えば、左上座標（ｘｌＴ，ｙｔＴ）及び右下座標（ｘｒＴ，ｙｂＴ）である。
【００６０】
エッジ抽出部２３４は、実施の形態１と同様の処理を行う他、印刷データで形成することが指示された複数の画像に含まれる一の画像に対してエッジとなる、この一の画像に隣接する画像の画素を抽出する。例えば、エッジ抽出部２３４は、中間コード解析部２３３から与えられた、テキスト中間コードに対応した描画範囲の情報を用いて、中間コードで描画されるテキスト単位で、テキストとの間のエッジとなる画素を抽出する。そして、エッジ抽出部２３４は、テキストとの間のエッジとなる画素については、エッジ展開部２３６に展開を依頼する。エッジ抽出部１３４は、テキストとの間のエッジとなる画素以外の画素については、展開部１３５に展開を依頼する。例えば、エッジ抽出部２３４は、描画対象座標に対応する座標において、テキストのビットマップデータが描画を行うことを示す１になっている場合、展開部１３５に展開を依頼する。エッジ抽出部２３４は、描画対象座標に対応する座標において、テキストのビットマップデータが描画を行わないことを示す０になっている場合、描画対象座標の上下左右の画素に対応するビットマップデータの値を参照する。エッジ抽出部２３４は、参照されたビットマップ値の中で１個でも１になっている画素がある場合、エッジ展開部２３６にテキスト画素展開を依頼する。エッジ抽出部２３４は、参照されたビットマップ値が全て０の場合、その画素は描画を行わない画素と判断し、次の画素の処理に移る。エッジ抽出部２３４は、以上のような処理の繰り返しを、（ｘｌＴ−１，ｙｔＴ−１）から（ｘｒＴ＋１，ＹｂＴ＋１）の座標まで繰り返す。なお、ビットマップデータの値が存在しない画素は、常に対応するビットマップ値が０になっているとみなされる。
【００６１】
エッジ展開部２３６は、実施の形態１におけるエッジ展開部１３６と同様の処理を行う他、エッジ抽出部２３４からの依頼に応じて、テキスト画素展開を行う。テキスト画素展開では、エッジ展開部２３６は、描画するテキストの前景色階調値と、この描画するテキストに隣接する領域の画素値とが近似する場合に、描画されるテキストとの間の境界を強調するように、描画されるテキストに対してエッジとなる画素の画素値を特定する。例えば、エッジ展開部２３６は、エッジ抽出部２３４からテキスト画素展開を依頼されると、描画対象画素の画素値と前景色階調値を比較し、その差分が予め定められた第１の値（例えば、１０）以上ある場合には、その描画対象画素の画素値を更新しない。一方、エッジ展開部２３６は、その差分が予め定められた第１の値未満の場合には、描画されるテキストとの間の境界を強調する画素値となるように、描画対象画素の画素値を更新する。
また、境界を強調する場合、エッジ展開部２３６は、その前景色階調値の値に応じて、境界を強調する画素値を変える。境界を強調する画素値は、前景色階調値及び描画対象画素に既に設定されている画素値とは異なる値となるように設定されることが望ましい。例えば、境界を強調する場合、前景色階調値が予め定められた第２の値（例えば、１２８）以上のときには、エッジ展開部２３６は、その前景色階調値よりも薄くなるように（例えば、０に）、その描画対象画素の画素値を更新し、前景色階調値が予め定められた値未満のときには、その前景色階調値よりも濃くなるように（例えば、２５５に）、その描画対象画素の画素値を更新する。
【００６２】
（動作の説明）
図７は、中間コードがテキストを描画するコードである場合のエッジ抽出及び展開処理を示すフローチャートである。なお、ここでも座標系は、左上方に原点を配置し、原点から右方向にｘ軸、原点から下方にｙ軸が配置されているものとする。
【００６３】
まず、エッジ抽出部２３４は、エッジ抽出処理のため、各種初期化を行う（Ｓ８０〜Ｓ８３）。例えば、エッジ抽出部２３４は、描画するテキストの左上座標（ｘｌＴ，ｙｔＴ）を登録する（Ｓ８０）。次に、エッジ抽出部２３４は、描画するテキストの右下座標（ｘｒＴ，ｙｂＴ）を登録する（Ｓ８１）。そして、エッジ抽出部２３４は、処理座標である描画対象座標（ｘｃ，ｙc）を、ステップＳ８０で登録された左上座標（ｘｌＴ，ｙｔＴ）よりも１画素分拡大した拡大領域の左上座標（ｘｌＴ−１，ｙｔＴ−１）に初期化する（Ｓ８２）。なお、左上座標（ｘｌＴ，ｙｔＴ）及び右下座標（ｘｒＴ，ｙｂＴ）で特定される、テキストが配置される領域を１画素分拡大した領域が、エッジの確認領域となる。さらに、エッジ抽出部２３４は、描画するテキストのビットマップデータの左上を、ステップＳ８０で登録した左上座標（ｘｌＴ，ｙｔＴ）に関連付ける（Ｓ８３）。これにより、描画するテキストのビットマップデータと、描画対象座標とが対応付けられる。例えば、（ｘｌＴ，ｙｔＴ）から、（ｘ，ｙ）＝（１０，２０）移動した座標のビットマップデータを参照する場合、ビットマップデータの左上の座標から（ｘ，ｙ）＝（１０，２０）だけ移動した位置のビットマップ値を参照することで、その座標に対して描画を行うかどうかを知ることができる。対応するビットマップ値が１であれば、その画素には描画を行う必要がある。
【００６４】
次に、エッジ抽出部２３４は、描画対象画素のｙ座標の値ｙｃが、エッジの確認領域の右下のｙ座標の値ｙｂＴ＋１以下であるか否かを判断する（Ｓ８４）。値ｙｃが値ｙｂＴ＋１以下である場合（Ｓ８４：Ｙｅｓ）には、エッジの確認領域に検出すべきエッジが残っているため、処理はステップＳ８５に進む。値ｙｃが値ｙｂＴ＋１よりも大きい場合（Ｓ８４：Ｎｏ）には、エッジの確認領域の全てでエッジの検出が完了したため、フローは終了する。
【００６５】
ステップＳ８５では、エッジ抽出部２３４は、描画対象画素のｘ座標の値ｘｃが、エッジの確認領域の右端のｘ座標の値ｘｒＴ＋１以下であるか否かを判断する。値ｘｃが値ｘｒＴ＋１以下である場合（Ｓ８５：Ｙｅｓ）には、値ｙｃに対応して検出すべきエッジが残っているため、処理はステップＳ８６に進む。値ｘｃが値ｘｒＴ＋１よりも大きい場合（Ｓ８５：Ｎｏ）には、値ｙｃに対応する全てのエッジの検出が完了したため、処理はステップＳ９１に進む。
【００６６】
ステップＳ８６では、エッジ抽出部２３４は、描画対象座標に対応するビットマップデータの値が１であるか否かを確認する。描画対象座標に対応するビットマップデータの値が１である場合（Ｓ８６：Ｙｅｓ）には、処理はステップＳ８７に進む。描画対象座標に対応するビットマップデータの値が１ではない場合（Ｓ８６：Ｎｏ）には、処理はステップＳ８８に進む。
【００６７】
ステップＳ８７では、描画対象座標は、テキストが実際に描画される座標であり、テキストとの間のエッジではないため、展開部１３５に展開を依頼する。このような依頼を受けた展開部１３５は、描画対象画素の画素値を、中間コード解析部２３３により更新された前景色階調値の値に更新する。そして、処理はステップＳ９０に進む。
【００６８】
一方、ステップＳ８８では、エッジ抽出部２３４は、描画対象座標の周囲（ここでは、上下左右）の座標に対応するビットマップデータの値に１が含まれるか否かを確認する。描画対象座標の周囲の座標に対応するビットマップデータの値に１が含まれる場合（Ｓ８８：Ｙｅｓ）には、処理はステップＳ８９に進む。描画対象座標の周囲の座標に対応するビットマップデータの値に１が含まれない場合（Ｓ８８：Ｎｏ）には、処理はステップＳ９０に進む。
【００６９】
ステップＳ８９では、エッジ抽出部２３４は、描画対象座標をテキストとの間のエッジであると判断し、エッジ展開部２３６に展開を依頼する。展開を依頼された際のエッジ展開部２３６の処理については、図８を参照して、詳細に説明する。そして、処理はステップＳ９０に進む。
【００７０】
ステップＳ９０では、エッジ抽出部２３４は、描画対象座標のｘ座標の値ｘｃに１を加算する。そして、処理はステップＳ８５に戻る。
【００７１】
ステップＳ８５で、値ｘｃが値ｘｒＴ＋１よりも大きくなった場合（Ｓ８５：Ｎｏ）には、描画対象画素のｘ座標の値ｘｃは、エッジの確認領域の右端のｘ座標の値ｘｒＴ＋１よりも大きくなったため、エッジ抽出部２３４は、値ｙｃに対応する全てのエッジの検出が完了したと判断することができる。このため、エッジ抽出部２３４は、ステップＳ９１に処理を進め、描画対象座標のｘ座標の値ｘｃを、エッジの確認領域の左端のｘ座標の値ｘｌＴ−１に更新する（Ｓ９１）。
また、エッジ抽出部２３４は、描画対象座標のｙ座標の値ｙｃに１を加算する（Ｓ９２）。そして、処理はステップＳ８４に戻る。
【００７２】
図８は、中間コードがテキストを描画するコードである場合のエッジ展開部２３６による展開処理を示すフローチャートである。
まず、エッジ展開部２３６は、ラスタバッファ１３７に既に格納されている描画対象画素の画素値と、中間コード解析部２３３が更新した前景色階調値との間の差分を算出する（Ｓ１００）。
そして、エッジ展開部２３６は、ステップＳ１００で算出された差分が予め定められた第１の値（例えば、１０）以上であるか否かを判断する（Ｓ１０１）。そして、その差分が予め定められた第１の値以上である場合（Ｓ１０１：Ｙｅｓ）には、隣接する画像の色が描画されるテキストの色と近似していないと判断して、フローを終了する。一方、その差分が予め定められた値未満である場合（Ｓ１０１：Ｎｏ）には、隣接する画像の色が描画されるテキストの色と近似していると判断して、処理はステップＳ１０２に進む。
【００７３】
ステップＳ１０２では、今回描画するテキストの色と隣接する領域の色とが近似しているため、境界を強調する必要がある。このため、エッジ展開部２３６は、中間コード解析部２３３により更新された前景色階調値が予め定められた第２の値（例えば、１２８）以上であるか否かを判断する。そして、前景色階調値が予め定められた第２の値以上である場合（Ｓ１０２：Ｙｅｓ）には、処理はステップＳ１０３に進む。一方、前景色階調値が予め定められた第２の値未満である場合（Ｓ１０２：Ｎｏ）には、処理はステップＳ１０４に進む。
【００７４】
ステップＳ１０３では、エッジ展開部２３６は、今回描画されるテキストの色が濃い色であると判断し、ラスタバッファ１３７に既に格納されている描画対象画素の画素値を、今回描画されるグラフィックスの色よりも薄い色、例えば、０にする。
一方、ステップＳ１０４では、エッジ展開部２３６は、今回描画するテキストの色が薄い色であると判断し、ラスタバッファ１３７に既に格納されている描画対象画素の画素値を、今回描画されるテキストの色よりも濃い色、例えば、２５５にする。
【００７５】
以上に記載された処理で、テキスト（ここでは、文字「Ａ」）を描画するコマンドを含む印刷データに基づいて、印刷された結果を図９に示す。
ここでは、例えば、編集部１３１は、上位装置１７０から送信された印刷データに基づいて、（Ｋ）＝（０ｘＢ３）を指定する前景色中間コードと、矩形中間コードと、（Ｋ）＝（０ｘ３０）を指定する前景色中間コードと、矩形中間コードと、（Ｋ）＝（０ｘ３５）を指定する前景色中間コードと、「Ａ」を表すビットマップデータ、左上座標として（ｘ，ｙ）＝（４００，４５０）及び右下座標として（ｘ，ｙ）＝（５２９，５６９）の情報をもつテキスト中間コードとを受信バッファ１２０に記憶させるものとする。
このような場合には、中間コード解析部２３３は、（Ｋ）＝（０ｘＢ３）を指定する前景色中間コードと、矩形中間コードと、（Ｋ）＝（０ｘ３０）を指定する前景色中間コードと、矩形中間コードと、（Ｋ）＝（０ｘ３５）を指定する前景色中間コードとを実施の形態１と同様に処理を行う。その後、中間コード解析部２３３は、テキスト中間コードに基づいて、テキスト中間コードに対応した描画範囲の情報とともに、エッジ抽出部２３４に中間コード展開を通知する。
このような場合、例えば、図９に示されているように、「Ａ」の文字ＴＸ１の画素値（前景色階調値）と、矩形の画像ＩＭ５の画素値（前景色階調値）とは近似していないため、エッジの強調は行われていない。一方、「Ａ」の文字ＴＸ１の画素値（前景色階調値）と、矩形の画像ＩＭ６の画素値（前景色階調値）とは近似しているため、矩形の画像ＩＭ６のエッジの一部が強調されている。ここでは、「Ａ」の文字ＴＸ１が比較的薄い色で描画されているため、エッジの一部は、画素値が２５５（黒）にされている。
【００７６】
以上のように、実施の形態２によれば、グラフィックなど、座標で描画を表現しているものだけでなく、テキストのように、座標情報とビットマップデータとを合せて描画範囲を表現するような場合でも、塗りつぶしの前景色が近い場合、その境界を強調することができる。
【００７７】
以上のように、実施の形態１及び２によれば、グレースケールにおいて、隣接する領域同士が、近い値又は同じ値になった場合でも、隣接する画像のエッジが強調されるため、画像同士の境界が分かりやすく、かつ、もともとのグレー変換のみを行った出力結果に近い出力を得ることができる。
【００７８】
以上に記載された実施の形態１及び２では、エッジ展開部１３６、２３６がエッジを強調する際に、図５のステップＳ８４又は図８のステップＳ１０２に示されているように、前景色階調値のみを参照して、描画対象画素の画素値を変えているが、このような例に限定されるものではない。
例えば、エッジ展開部１３６、２３６は、前景色階調値ではなく、描画対象画素の画素値として既に格納されている画素値を参照して、描画対象画素の画素値を変えてもよい。例えば、描画対象画素の画素値として既に設定されている画素値が第２の値以上である場合に、処理がステップＳ７５又はステップＳ１０３に進んでもよく、このような画素値が第２の値未満である場合に、処理はステップＳ７６又はステップＳ１０４に進んでもよい。
また、エッジ展開部１３６、２３６は、前景色階調値と、描画対象画素の画素値として既に設定されている画素値とを参照して、描画対象画素の画素値を変えてもよい。例えば、これらの値の少なくとも何れか一方が第２の値以上である場合に、処理がステップＳ７５又はステップＳ１０３に進んでもよく、これらの値の何れもが第２の値未満である場合に、処理がステップＳ７６又はステップＳ１０４に進んでもよい。また、前景色階調値と、描画対象画素の画素値として既に設定されている画素値との加算値が、予め定められた第３の値以上である場合に、処理がステップＳ７５又はステップＳ１０３に進んでもよく、これらの値の加算値が第３の値未満である場合に、処理がステップＳ７６又はステップＳ１０４に進んでもよい。ここで、第３の値は、例えば、２５６である。
【００７９】
実施の形態１及び２では、カラーの印刷データから、グレースケールの画像データに変換する場合を例に説明したが、このような例に限定されるものではない。例えば、カラーの印刷データからカラーの画像データを生成する場合にも、隣接し、近似する色を有する画像のエッジを強調することができる。
例えば、中間コード解析部１３３、２３３は、図２のステップＳ１７において、印刷データで特定される、Ｙ成分、Ｍ成分、Ｃ成分及びＫ成分の値を前景色階調値として更新する。
また、図５のステップＳ７０において、描画対象画素の画素値として既に設定されている値のうち、Ｙ成分、Ｍ成分、Ｃ成分及びＫ成分の全てが０である場合には、エッジ展開部１３６は、処理をステップＳ７３に進め、Ｙ成分、Ｍ成分、Ｃ成分及びＫ成分の少なくとも何れか１つが０ではない場合には、処理をステップＳ７１に進める。
図５のステップＳ７１又は図８のステップＳ１００では、エッジ展開部１３６、２３６は、描画対象画素に既に設定されている画素値と、前景色階調値とのそれぞれにおいて、ＣＭＹＫの各色の２５６階調の値を加算した値を用いて、その差分を算出する。ステップＳ７２又はＳ１０１では、エッジ展開部１３６、２３６は、ステップＳ７１又はＳ１００で算出された差分が、４０以上の場合、色が近似しないと判断し、処理をステップＳ７３に進める、又は、フロー終了する。一方、エッジ展開部１３６、２３６は、その差分が、４０未満の場合、色が近似すると判断して、処理をステップＳ７４又はＳ１０２に進める。なお、このような例に限定されず、例えば、描画対象画素に既に設定されている画素値と、前景色階調値との色差を算出して、算出された色差を予め定められた第４の値と比較することで、色が近似しているか否かが判断されてもよい。
図５のステップＳ７４又は図８のステップＳ１０２では、エッジ展開部１３６、２３６は、Ｃ成分、Ｍ成分、Ｙ成分及びＫ成分の各色の値をＲＧＢに変換する。そして、エッジ展開部１３６は、変換された１つの成分、例えば、Ｂ成分が予め定められた値（例えば、１２８）以上である場合には、ステップＳ７５又はＳ１０３において、描画対象画素の画素値をＣＭＹＫ＝（０、０、０、０）に更新し、Ｂ成分が予め定められた値未満である場合には、ステップＳ７６又はＳ１０４において、描画対象画素の画素値をＣＭＹＫ＝（０ｘＦＦ、０ｘＦＦ、０ｘＦＦ、０ｘＦＦ）に更新する。なお、ここでは、変換された１つの成分、例えば、Ｂ成分を予め定められた値と比較しているが、エッジ展開部１３６、２３６は、変換された複数の成分の内少なくとも１つの成分が予め定められた値以上か否かを判断してもよい。また、エッジ展開部１３６、２３６は、変換された複数の成分の加算値を予め定められた値と比較してもよい。
【００８０】
実施の形態１及び２では、グラフィックを描画するものである場合について記載したが、このような例に限定されるものではない。例えば、イメージデータに基づいて画像を描画する場合でも、イメージデータで示された、描画を行う領域を矩形領域とみなし、矩形に対する処理と同様の処理を行うことで、画像間の境界を必要に応じて強調することができる。
【００８１】
以上に記載された実施の形態１及び２では、本発明を印刷装置に適用した例を説明したが、本発明は、複合機、複写機及びファクシミリ装置等の画像形成装置にも適応可能である。また、印刷データとして、展開済みのイメージを送信する形式のプリンタドライバに対しても、送信用のイメージを作成する過程で、以上に記載された実施の形態と同様の過程を踏めば適応可能である。
【符号の説明】
【００８２】
１００  印刷装置、  １１０  通信部、  １２０  受信バッファ、  １３０  データ生成部、  １３１  編集部、  １３２  ページバッファ、  １３３  中間コード解析部、  １３４  エッジ抽出部、  １３５  展開部、  １３６  エッジ展開部、  １３７  ラスタバッファ、  １４０  印刷部、  １６０  ネットワーク、  １７０  上位装置。
【図１】
2015046835.tif 000004
【図２】
2015046835.tif 000005
【図３】
2015046835.tif 000006
【図４】
2015046835.tif 000007
【図５】
2015046835.tif 000008
【図６】
2015046835.tif 000009
【図７】
2015046835.tif 000010
【図８】
2015046835.tif 000011
【図９】
2015046835.tif 000012