(57)【要約】【課題】  線オブジェクトを細線化する際に、画質の低下を抑制する。【解決手段】  線オブジェクトの細らせ幅を表す値に基づいて、その線オブジェクトを表すコマンドにおける線幅を細らせ、線幅が細らされたそのコマンドに基づく描画を行うことで、その線オブジェクトを含むビットマップを生成し、細らせ幅を表すその値に基づいて、その生成されたビットマップに含まれる線オブジェクトに対する太らせ処理を行う。【選択図】  図４
2015207259.tif 000002
【特許請求の範囲】
【請求項１】
線オブジェクトの細らせ幅を表す値を取得する取得手段と、
前記取得された値に基づいて、前記線オブジェクトを表すコマンドにおける線幅を細らせる第１の補正手段と、
前記線幅が細らされた前記コマンドに基づく描画を行うことで、前記線オブジェクトを含むビットマップを生成する生成手段と、
前記取得された値に基づいて、前記生成されたビットマップに含まれる前記線オブジェクトに対する太らせ処理を行う第２の補正手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記取得された値に基づいて、第１の補正値および第２の補正値を求める手段を有し、
前記第１の補正値は、前記生成手段による描画の解像度で整数画素幅の補正値であり、
前記第２の補正値は、前記生成手段による描画の解像度で小数画素幅の補正値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得された値は、前記生成手段による描画の解像度の画素単位で表現された、線オブジェクトの線幅が細くされる程度を示す値であり、
前記整数画素幅の補正値は、前記取得された値以上の最小の整数値であり、
前記小数画素幅の補正値は、前記最小の整数値から前記取得された値を減じた、小数値であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記線オブジェクトは、他のオブジェクトの上に重なるオブジェクトであることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記線オブジェクトは、ライン属性を持つオブジェクトであり、
前記他のオブジェクトは、グラフィクス属性を持つオブジェクトであることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記ライン属性を持つオブジェクトの中心線の位置は、前記グラフィクス属性を持つオブジェクトの１つの辺の位置と一致していることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１の補正手段は、オブジェクトに設定されている線幅から前記第１の補正値を減ずることで補正を行うことを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記コマンドは、ＰＤＬコマンドであることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記第２の補正手段は、前記生成されたビットマップを画素単位で走査しながら補正を行うことを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記第２の補正手段は、前記生成されたビットマップに含まれる画素の濃度値を変更するかを前記取得された値に基づいて判定し、濃度値を変更すると判定された場合に、前記生成手段によって描画された前記オブジェクトに含まれる画素の濃度値を用いて当該画素の周囲の画素の濃度値を変更することで、前記太らせ処理を行うことを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記第２の補正手段は、前記取得された値に基づいて決定される間隔おきに、前記生成手段によって描画された前記オブジェクトに含まれる画素の濃度値を用いて、当該画素の周囲の画素の濃度値を変更することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記第２の補正手段は、前記生成されたビットマップの解像度をより高い解像度に変換し、解像度が変換された前記ビットマップにおいて、前記第１の補正手段によって線幅が補正された前記オブジェクトに含まれる画素の濃度値を用いて、当該画素から前記取得された値に基づいて決定される距離離れた画素の濃度値を変更することを特徴とする請求項１０に記載の画像処理装置。
【請求項１３】
前記より高い解像度とは、前記第２の補正手段による補正が行われた前記オブジェクトを印刷する印刷手段の印刷解像度であることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記生成手段によって生成されるビットマップは、１ページ分のビットマップであることを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記第１の補正手段によって線幅が補正される前記オブジェクトは、ベクトル形式で表現されていることを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１６】
前記取得された値は、ユーザ指示に基づいて入力される１つの値であることを特徴とする請求項１乃至１５の何れか１項に記載の画像処理装置。
【請求項１７】
前記ユーザ指示に基づいて入力される１つの値は、複数の候補のうちからユーザによって選択された１つの値であることを特徴とする請求項１６に記載の画像処理装置。
【請求項１８】
前記第１および第２の補正手段のそれぞれは、オブジェクトの持つ属性に基づいて、当該オブジェクトの線幅の補正を行うか否かを判定することを特徴とする請求項１乃至１７の何れか１項に記載の画像処理装置。
【請求項１９】
線オブジェクトの細らせ幅を表す値を取得する取得工程と、
前記取得された値に基づいて、前記線オブジェクトを表すコマンドにおける線幅を細らせる第１の補正工程と、
前記線幅が細らされた前記コマンドに基づく描画を行うことで、前記線オブジェクトを含むビットマップを生成する生成工程と、
前記取得された値に基づいて、前記生成されたビットマップに含まれる前記線オブジェクトに対する太らせ処理を行う第２の補正工程と、
を有することを特徴とする画像処理方法。
【請求項２０】
請求項１乃至１８の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は線幅を補正する技術に関する。
【背景技術】
【０００２】
ビットマップにおけるオブジェクトの線幅を細くする方法がある。図１１（ａ）の左図は、２画素幅の縦線のオブジェクトの描画を行うことによって得られるビットマップを示す。特許文献１は、線の幅を小数画素幅（例えば０．５画素幅）に相当する分だけ細らせる場合に、ビットマップにおける線のオブジェクトに含まれる画素の一部を、白い画素に変更する方法（間引き処理）を開示する。特許文献１によれば、例えば図１１（ａ）の左図に示されるビットマップにおける線のオブジェクトは、図１１（ａ）の右図に示されるビットマップにおける線のオブジェクトへと補正される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１１３０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
線のオブジェクトが別のオブジェクトの上に重なる場合を考える。図１１（ｂ）の左図は、色つきの矩形のオブジェクトと、その矩形のオブジェクトの一部の辺の上に重なった２画素幅の縦線のオブジェクトとの描画によって得られるビットマップを示す。このビットマップにおける線のオブジェクトに、小数画素幅（０．５画素幅）に相当する分だけの細らせを行うと、図１１（ｂ）の右図に示されるようなビットマップが得られる。図１１（ｂ）の右図を見ればわかるように、間引き処理によって白い画素が生じるため、線のオブジェクトと矩形のオブジェクトとの境界の画質が低下してしまう。
【課題を解決するための手段】
【０００５】
本発明の画像処理装置は、線オブジェクトの細らせ幅を表す値を取得する取得手段と、前記取得された値に基づいて、前記線オブジェクトを表すコマンドにおける線幅を細らせる第１の補正手段と、前記線幅が細らされた前記コマンドに基づく描画を行うことで、前記線オブジェクトを含むビットマップを生成する生成手段と、前記取得された値に基づいて、前記生成されたビットマップに含まれる前記線オブジェクトに対する太らせ処理を行う第２の補正手段と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、細らされた線オブジェクトが描画された後、その描画で得られたビットマップに含まれる線オブジェクトを太らせるので、線オブジェクトが他のオブジェクトの上に重なっている場合でも、画質の低下なく線オブジェクトの細らせを実現できる。
【図面の簡単な説明】
【０００７】
【図１】ＰＤＬデータの一例を示す図。
【図２】印刷装置の構成図。
【図３】第１の補正値と第２の補正値を決定する処理のフローチャート。
【図４】線幅を補正する処理のフローチャート。
【図５】ＰＤＬ処理部による線幅を補正する処理のフローチャート。
【図６】第１の補正値を用いた線幅の補正の説明図。
【図７】実施形態１における画像処理部による線幅を補正する処理のフローチャート。
【図８】実施形態１における第２の補正値を用いた線幅の補正の説明図。
【図９】実施形態２における画像処理部による線幅を補正する処理のフローチャート。
【図１０】実施形態２における第２の補正値を用いた線幅の補正の説明図。
【図１１】従来技術の説明図。
【発明を実施するための形態】
【０００８】
＜第１の実施形態＞
以下説明する実施形態の印刷装置は、ＰＤＬデータに基づいてオブジェクトを描画する。オブジェクトを描画するとは、オブジェクトを表すビットマップを生成することである。ＰＤＬデータには、オブジェクトを表すＰＤＬ形式の描画コマンド（ＰＤＬコマンド）が含まれている。ＰＤＬデータの一例を図１に示す。
【０００９】
図１に例示したＰＤＬデータには、グラフィクス属性を持つ市松模様の矩形オブジェクト（多角形オブジェクト）１００２のＰＤＬコマンド１００１が含まれている。またこのＰＤＬデータには、始点および終点を結ぶ線を基準線としたライン属性を持つ線オブジェクト２００２のＰＤＬコマンド２００１が含まれている。
【００１０】
図１に例示した矩形オブジェクト１００２のＰＤＬコマンド１００１は、ＦｉｌｌＲｅｃｔ（Ｘ１、Ｙ１、Ｗ１、Ｈ１、Ｃ１）であり、この矩形オブジェクト１００２には各パラメータ（Ｘ１、Ｙ１、Ｗ１、Ｈ１、Ｃ１）が設定されている。Ｘ１、Ｙ１は、矩形オブジェクト１００２の左上の頂点のＸ座標値、Ｙ座標値である。Ｗ１、Ｈ１は、矩形オブジェクト１００２の横幅、縦幅である。本実施形態においては、Ｘ１、Ｙ１、Ｗ１、Ｈ１のいずれも整数である。Ｃ１は、矩形オブジェクト１００２の色である。
【００１１】
線オブジェクト２００２のＰＤＬコマンド２００１は、ＤｒａｗＬｉｎｅ（Ｘ２、Ｙ２、Ｘ３、Ｙ３、Ｗ２、Ｃ２）である。つまり、線オブジェクト２００２には各パラメータ（Ｘ２、Ｙ２、Ｘ３、Ｙ３、Ｗ２、Ｃ２）が設定されている。Ｘ２、Ｙ２は、線オブジェクト２００２の始点のＸ座標値、Ｙ座標値である。Ｘ３、Ｙ３は、線オブジェクト２００２の終点のＸ座標値、Ｙ座標値である。Ｗ２は、線オブジェクト２００２の線幅であり、コマンドにおける線幅パラメータとして画素数で表されている。このようなパラメータが設定された線オブジェクト２００２は、始点（Ｘ２、Ｙ２）と終点（Ｘ３、Ｙ３）とを結ぶ基準線から線幅Ｗ２を持つ線を表す。本実施形態においては、Ｘ２、Ｙ２、Ｘ３、Ｙ３、Ｗ２のいずれも整数である。Ｃ２は、線オブジェクト２００２の線の色である。このように線オブジェクト２００２はベクトル形式で表現されたオブジェクトである。ベクトル形式で表現されたオブジェクトとは、そのオブジェクトを構成する端点または各頂点等の座標値や、そのオブジェクトの色等を指定することでそのオブジェクトが表現されるオブジェクトのことである。ベクトル形式で表現されたオブジェクトとは対称的なのは、ビットマップのオブジェクトである。
【００１２】
図１に例示した矩形オブジェクト１００２の左辺と線オブジェクト２００２の中心線は位置が一致しており、矩形オブジェクト１００２と線オブジェクト２００２は重なりを持つ。さらに、その中心線および左辺のＸ座標値は、整数画素の単位である。すなわち、Ｘ１＝Ｘ２＋Ｗ／２＝Ｘ３＋Ｗ／２＝整数、かつ、Ｙ１＝Ｙ２、かつ、Ｙ１＋Ｈ１＝Ｙ３である。また線オブジェクト２００２に設定されている線幅Ｗ２は、画素数で表すと２である。また各オブジェクトに設定される重なり順序は、矩形オブジェクト１００２の重なり順序の方が線オブジェクト２００２よりも小さい。すなわち、矩形オブジェクト１００２と線オブジェクト２００２とが重なりを持つ場合に、重なり順において、矩形オブジェクト１００２が下位に、且つ、線オブジェクト２００２が上位に描画される。
【００１３】
以上が、図１に例示されるＰＤＬデータについての説明である。
【００１４】
図２は、本実施形態の印刷装置１の構成を示す。印刷装置１は、線幅を細くする細線化処理を行う。印刷装置１は、画像処理装置の一例である。
【００１５】
印刷装置１は、不図示のコンピュータとネットワークを介して接続している。印刷装置１は、コントローラ１００、操作部１０６、プリント部１０７を有する。印刷装置１は、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）でもＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）であっても良い。
【００１６】
コントローラ１００は、不図示のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を有している。このＣＰＵがＲＯＭに記憶されているプログラムをＲＡＭに展開し、実行することで、ＣＰＵは複数の処理部として機能する。これら複数の処理部は、決定処理部１０１、ＰＤＬ処理部１０２、描画処理部１０３、画像処理部１０４、ディザ処理部１０５であり、ソフトモジュールである。本実施形態の印刷装置１では各処理部はソフトモジュールであるが、これらソフトモジュールの全て、あるいは、その一部のみがハードウェアによって構成されていても良い。
【００１７】
コントローラ１００は、ネットワークを介して接続される不図示のコンピュータから、１ページ分のオブジェクトを含むＰＤＬデータを受信する。コントローラ１００は、ＰＤＬデータの受信と共に、線幅の補正値を取得しても良い。
【００１８】
コントローラ１００は、操作部１０６とプリント部１０７と接続する。
【００１９】
操作部１０６は、タッチスクリーンであり、ユーザからの操作を受け付け、各操作に従って情報をコントローラ１００に送信する。コントローラ１００は、操作部１０６から、線幅の補正値を取得しても良い。
【００２０】
プリント部１０７は、コントローラ１００から送信されたビットマップに基づいて印刷処理を行うことで、ビットマップによって表現されている画像を、色材を用いて紙などの記録媒体に印刷する。このプリント部１０７の行う印刷処理は、電子写真方式であっても、インクジェット方式であっても良い。本実施形態においては、プリント部１０７の印刷解像度は、後述の描画処理部１０３によって生成されるビットマップの解像度と同じである。
【００２１】
以下ではコントローラ１００の有する各処理部について説明する。
【００２２】
決定処理部１０１は、図３に示されるフローチャートの処理を実行する。
【００２３】
ＰＤＬ処理部１０２、描画処理部１０３、画像処理部１０４、ディザ処理部１０５は、協働して図４に示されるフローチャートの処理を実行する。
【００２４】
＜線幅の補正値の算出処理＞
決定処理部１０１の実行する処理について図３を用いて説明する。決定処理部１０１は、ＰＤＬ処理部１０２および画像処理部１０４が行う線幅の補正処理で用いられる第１および第２の補正値を決定する。
【００２５】
決定処理部１０１は、操作部１０６から、線幅の補正情報を受信する（Ｓ２０１）。この情報は、オブジェクトに対する線幅の補正に用いられる補正値に対応し、以下では「細線化レベル」と呼ばれる。例えば操作部１０６は、「０」、「０．５」、「１．０」、「１．５」、「２．０」の５段階の細線化レベルの候補を表示し、これら候補からユーザが選択した１つの細線化レベルを決定処理部１０１に送信する。
【００２６】
また操作部１０６からの入力ではなく、不図示のコンピュータの有するディスプレイに上記の細線化レベルの候補を表示し、これら候補からユーザが選択した１つの細線化レベルを決定処理部１０１に送信しても良い。
【００２７】
すなわち、オブジェクトの線幅の補正値である細線化レベルは、ユーザ指示に基づいて決定処理部に入力される。なお本実施形態の線幅の補正値とは、オブジェクトの線幅を細く、あるいは、太くする程度を表す情報のことであり、線幅の補正量と読み替えても良い。
【００２８】
細線化レベルが大きければ大きいほど、細線化される程度がより大きくなる。この細線化レベルの単位は、描画処理部１０３での描画処理の解像度（描画解像度）における画素である。例えば細線化レベルがＬであるとは、描画解像度におけるＬ画素分の細線化が行われることを示す。本実施形態において受信される細線化レベルは、０．５であるとする。すなわち、０．５画素分の細線化が行われるとする。すなわち細線化レベルは、小数画素幅で入力される。
【００２９】
次に、決定処理部１０１は、ＰＤＬ処理部１０２によって用いられる第１の補正値、および、画像処理部１０４によって用いられる第２の補正値を決定する（Ｓ２０２）。この第１の補正値および第２の補正値の決定方法を説明する。Ｓ２０１で取得された細線化レベルがＬである場合、決定処理部１０１は、Ｌ以上の最小の整数値（オブジェクトの線幅の補正値以上の最小の整数値）を算出する。そして決定処理部１０１は、第１の補正値Ｍをその算出された整数値に決定（設定）する。天井関数ｃｅｉｌ（・）を用いて説明すると、すなわちＭはｃｅｉｌ（Ｌ）に等しく、画素数で表される。そして決定処理部１０１は、細線化レベルＬと第１の補正値Ｍとの差分値（Ｍ−Ｌ）を算出し、第２の補正値Ｎをその差分値に決定（設定）する。つまり第１の補正値Ｍは、整数画素幅の細らせ処理に用いられる値である。また、第２の補正値Ｎは、その整数画素幅の細らせ処理によって、入力された細線化レベルに相当する小数画素幅よりも過剰に細らせた分に相当する、小数画素幅の太らせ処理によって用いられる値である。
【００３０】
決定された第１の補正値Ｍは、描画解像度で整数Ｍ（Ｍ≧１）画素幅分の補正値（整数画素幅の補正値）に相当する。また決定された第２の補正値Ｎは、描画解像度で小数値Ｎ（０≦Ｎ＜１）画素幅分の補正値（小数画素幅の補正値）に相当する。本実施形態における細線化レベルは前述したように「０」、「０．５」、「１．０」、「１．５」、「２．０」の５段階であるので、第１の補正値Ｍは、０、１、２の何れかの値であり、第２の補正値Ｎは、０、０．５の何れかの値である。本実施形態において受信される細線化レベルＬは０．５であるので、第１の補正値Ｍ＝１、第２の補正値Ｎ＝０．５となる。
【００３１】
第１の補正値および第２の補正値が決定されるタイミングは、以下で説明される図４のフローチャートの処理の実行前であれば、任意のタイミングで良い。
【００３２】
＜印刷処理の概略＞
決定処理部１０１によって第１の補正値および第２の補正値が決定された後で、図４のフローチャートの処理がＲＯＭに記憶されているプログラムに従って各処理部によって実行される。図４のフローチャートの処理について説明する。
【００３３】
ＰＤＬ処理部１０２は、外部のコンピュータから、１ページ分のオブジェクトを含むＰＤＬデータを受信する（Ｓ３０１）。ＰＤＬデータは、ＰＤＬで記述されたオブジェクトの描画コマンド（ＰＤＬコマンド）を含む。オブジェクトのＰＤＬコマンドについては、図２を用いて後述する。
【００３４】
次にＰＤＬ処理部１０２は、受信されたＰＤＬデータに基づいて、ＰＤＬ形式とは異なる、描画処理部１０３が解釈可能な形式の中間データを生成する（Ｓ３０２）。中間データは、ページに含まれるオブジェクトを表す中間データ形式の描画コマンドを含む。処理の詳細については、図５を用いて後述する。
【００３５】
次に描画処理部１０３は、生成された中間データに基づいて、１ページ分の多値ビットマップをＲＡＭ上に生成する（Ｓ３０３）。この多値ビットマップには、画素毎に、濃度情報および属性情報が書き込まれている。濃度情報は、１ページに含まれる各画素の、プリント部１０７が用いる色材の濃度に対応する。各画素の濃度情報は、たとえば０〜２５５の濃度値で表され、値が大きいほど色材の濃度がより濃いことを示す。属性情報は、１ページに含まれる各画素の、濃度情報の元となったオブジェクトの属性を示す。属性情報は、例えば属性無しは「０」、イメージ属性は「１」、グラフィックス属性は「２」、ライン属性は「３」、テキスト属性は「４」として表現される。さらには後述するように、オブジェクトが補正済みであることを示す補正済み属性が「５」として表現される。多値ビットマップに書き込まれる属性情報は、属性無し「０」で初期化される。そして、オブジェクトが描画される画素の属性情報がそのオブジェクトのＰＤＬコマンドの属性で変更される。濃度情報および属性情報が含まれる１ページ分（所定の領域）の多値ビットマップを生成する処理は、その１ページに含まれるオブジェクトを描画する処理に対応する。
【００３６】
本実施形態の描画処理部１０３は、１ページに含まれるスキャンライン（主走査方向に伸びるライン）ごとにビットマップを生成するスキャンライン描画方式によって、オブジェクトを描画する。スキャンライン描画方式は、処理対象の画素をスキャンラインの先頭から末尾に向かって順次隣の画素に移しながら、処理対象の画素の濃度情報および属性情報を算出する描画方式である。このスキャンライン描画方式は公知の描画方式であるが、概略を説明すると、まず描画処理部１０３は、処理対象の画素の濃度情報および属性情報の算出に関与するオブジェクトを特定する。そして描画処理部１０３は、特定された各オブジェクトの濃度情報および属性情報に基づいて処理対象の画素の濃度情報および属性情報を算出する。そして描画処理部１０３は、算出された濃度情報および属性情報を多値のビットマップに書き込む。例えば処理対象の画素において２つのオブジェクトが重なっている場合、描画処理部１０３は、２つのオブジェクトのうち、重なりの一番上に来るオブジェクトの濃度情報および属性情報を多値のビットマップに書き込む。
【００３７】
本実施形態の描画処理部１０３は、上述のようにスキャンライン描画方式を利用するが、１オブジェクト毎にオブジェクトを順次描画する描画方式（いわゆるペインターズアルゴリズムによる描画方式）を利用しても良い。
【００３８】
次に画像処理部１０４は、生成されたビットマップに対して、オブジェクトの線幅を補正するための画像処理を行う（Ｓ３０４）。処理の詳細については、図７を用いて後述する。
【００３９】
ディザ処理部１０５は、画像処理部１０４によって処理された多値ビットマップに対して、ディザマトリックスを用いたディザ処理を行う（Ｓ３０５）。そしてディザ処理部１０５は、ディザ処理後のビットマップをプリント部１０７に送信する。するとプリント部１０７は前述のように印刷処理を開始する。
【００４０】
＜ＰＤＬ処理＞
ＰＤＬ処理部１０２の実行する処理（Ｓ３０２）について図５に示されるフローチャートを用いて説明する。ＰＤＬ処理部１０２は、オブジェクトを表す中間データ形式の描画コマンドを生成する。この際に、ＰＤＬ処理部１０２は、決定処理部１０１によって決定された第１の補正値に基づいて、ライン属性のオブジェクトに設定されている線幅（線幅の値）を変更する補正を行う。
【００４１】
Ｓ４０１において、ＰＤＬ処理部１０２は、ＰＤＬデータに含まれるＰＤＬコマンドのうちで、未処理のＰＤＬコマンドがあるかを判定する。この処理は、ＰＤＬデータに含まれるオブジェクトのうちで、未処理のオブジェクトがあるかを判定する処理に対応する。未処理のＰＤＬコマンドがある場合、ＰＤＬ処理部１０２は、未処理のＰＤＬコマンドのうちでオブジェクトの重なり順序が小さいＰＤＬコマンドを、処理対象のＰＤＬコマンドに決定する。この処理は、未処理のオブジェクトから処理対象のオブジェクトを決定する処理に対応する。そして処理はＳ４０２に進む。一方、未処理のＰＤＬコマンドがない場合、本フローチャートの処理は終了する。
【００４２】
Ｓ４０２において、ＰＤＬ処理部１０２は、処理対象のＰＤＬコマンドがライン属性のＰＤＬコマンドかを判定する。この処理は、処理対象のオブジェクトがライン属性であるかを判定する処理に対応する。一般的にＰＤＬコマンドの属性には、イメージ属性、グラフィックス属性、ライン属性、テキスト属性の４種類の分類がある。ビットマップオブジェクトのＰＤＬコマンドはイメージ属性、図形の形状および色が設定される図形オブジェクトのＰＤＬコマンドはグラフィックス属性に分類される。線オブジェクトのＰＤＬコマンドはライン属性、文字オブジェクトのＰＤＬコマンドはテキスト属性に分類される。属性は以上の分類に限る必要はなく、その他の分類でも良い。
【００４３】
ＰＤＬ処理部１０２は、処理対象のＰＤＬコマンドが線オブジェクトを描画するためのＰＤＬコマンド（例えばＤｒａｗＬｉｎｅコマンド）であれば、処理対象のＰＤＬコマンドがライン属性のＰＤＬコマンドであると判定し、処理をＳ４０３に進める。一方、ＰＤＬ処理部１０２は、処理対象のＰＤＬコマンドがそれ以外のＰＤＬコマンド（例えばＦｉｌｌＲｅｃｔコマンド）であれば、処理対象のＰＤＬコマンドはライン属性のＰＤＬコマンドではないと判定し、処理をＳ４０４に進める。
【００４４】
Ｓ４０３において、ＰＤＬ処理部１０２は、決定処理部によってＳ２０２で決定された第１の補正値Ｍに基づいて、処理対象のライン属性のＰＤＬコマンドに設定されている線幅の値を小さな値に変更する。この処理は、第１の補正値を用いてオブジェクトに設定されている線幅をコマンドレベルで補正する処理に対応する。ＰＤＬ処理部１０２は、処理対象のＰＤＬコマンドがＤｒａｗＬｉｎｅコマンドである場合、ＤｒａｗＬｉｎｅコマンドに設定されている線幅Ｗ２から、細線化レベルよりも大きな値である第１の補正値Ｍを減じることで、線幅の補正を行う。つまりこの処理により図１に例示されるＤｒａｗＬｉｎｅコマンド２００１は、ＤｒａｗＬｉｎｅ（Ｘ２、Ｙ２、Ｘ３、Ｙ３、Ｗ２−Ｍ、Ｃ２）に補正される。そして処理はＳ４０４に進む。Ｗ２−Ｍは、画素数で表される。
【００４５】
ここではさらに、ＰＤＬ処理部１０２は、ＤｒａｗＬｉｎｅコマンドに設定されている線幅Ｗ２から第１の補正値Ｍを減じる際に、減少幅であるＭの半分の値（Ｍ／２）以下の最大の整数値Ｓだけ、始点および終点のＸ座標を正方向にずらしても良い。床関数ｆｌｏｏｒ（・）を用いると、Ｓはｆｌｏｏｒ（Ｍ／２）に等しく、画素数で表される。この処理により図１に例示されるＤｒａｗＬｉｎｅコマンド２００１は、ＤｒａｗＬｉｎｅ（Ｘ２＋Ｓ、Ｙ２、Ｘ３、Ｙ３、Ｗ２−Ｍ、Ｃ２）に補正される。その結果、補正後のＤｒａｗＬｉｎｅコマンドによって描画される線オブジェクトの中心の位置と、補正前のＤｒａｗＬｉｎｅコマンドによって描画される線オブジェクトの中心の位置とのずれを１画素未満に抑えることができる。
【００４６】
なお、この補正によって（Ｗ２−Ｍ）が１未満となる場合、線オブジェクトが消えてしまうのを防ぐために、ＰＤＬ処理部１０２は、線オブジェクトの補正後の線幅を最小幅である１（画素幅）にする。また（Ｗ２−Ｍ）が１未満であったために線オブジェクトの幅が１に補正されたので、その線オブジェクトの幅は後述するＳ３０４の処理において補正されないのが好ましい。したがって、Ｗ２−Ｍが１未満である場合に、ＰＤＬ処理部１０２は、その線オブジェクトを描画するコマンドの属性を前述の補正済み属性に書き換える。
【００４７】
Ｓ４０４において、ＰＤＬ処理部１０２は、処理対象のＰＤＬコマンドに基づいて、処理対象のＰＤＬコマンドが表現しているオブジェクトの、中間データ形式の描画コマンドを生成する。そして処理はＳ４０１に戻る。
【００４８】
＜第１の補正値を用いた線幅の補正＞
ここでは、ＰＤＬ処理部１０２によって実行される、第１の補正値を用いた線幅の補正（Ｓ３０２）について、図６を用いて、描画処理部１０３によるオブジェクトの描画（Ｓ３０３）と併せて説明する。
【００４９】
図６（ａ）は、市松模様の矩形オブジェクト１００２の描画を説明する図である。ビットマップ５０１は、描画処理部１０３によって濃度情報および属性情報が書き込まれる、ＲＡＭ上の多値ビットマップを表す。ビットマップ５０１には、まだオブジェクトの濃度情報が書き込まれていないため、ビットマップ５０１の各画素の濃度情報は白（濃度値にして０）である。同様に、ビットマップ５０１の各画素の属性情報は、属性無しを示す「０」である。
【００５０】
描画処理部１０３は、市松模様の矩形オブジェクト１００２を描画することで、ビットマップ５０３を生成する。ビットマップ５０３の濃度情報および属性情報（破線領域で示される）のそれぞれには、描画処理部１００３によって、矩形オブジェクト１００２の濃度情報（塗りの色Ｃ１の市松模様）および属性情報（グラフィクス属性「２」）が書き込まれている。
【００５１】
図６（ｂ）は、市松模様の矩形オブジェクト１００２、および、Ｓ４０３での補正がなされなかった線オブジェクト２００２の描画を説明する図である。描画処理部１０３は、スキャンライン描画方式を利用するが、説明の便宜上、重なり順序が小さい矩形オブジェクト１００２が先に描画されたビットマップ５０５を用いて説明する。
【００５２】
線の中心が矩形オブジェクト１００２の左辺と一致する線オブジェクト２００２には、線幅Ｗ２（＝２画素幅）が設定されている。描画処理部１０３は、線オブジェクト２００２に設定されている線幅に基づいて、線オブジェクト２００２の左端および右端のＸ座標値（Ｘ２およびＸ２＋Ｗ２）を算出する。ここではＷ２＝２であるので、左端および右端の画素間（すなわち線幅）は２画素幅分となる。そして描画処理部１０３は、その左端および右端の画素間の画素の濃度情報および属性情報のそれぞれに、線の色（濃度）Ｃ２およびライン属性「３」を書き込む。このように線オブジェクト２００２が、重なり順序に従って、矩形オブジェクト１００２とともに描画されると、２画素幅の線を含むビットマップ５０７が生成される。すなわち、ビットマップ５０５において矩形オブジェクト１００２の左端の画素を含む領域（ビットマップ５０７において破線領域で示される）の濃度情報および属性情報が、線オブジェクト２００２の濃度情報および属性情報に書き変わる。
【００５３】
一方図６（ｃ）は、市松模様の矩形オブジェクト１００２、および、Ｓ４０３での補正がなされた線オブジェクト２００２の描画を説明する図である。描画処理部１０３は、スキャンライン描画方式を利用するが、説明の便宜上、重なり順序が小さい矩形オブジェクト１００２が先に描画されたビットマップ５０９を用いて説明する。
【００５４】
線の中心が矩形オブジェクト１００２の左辺と一致している線オブジェクト２００２には、線幅Ｗ２（＝２画素幅）が設定されている。また第１の補正値Ｍは、１（画素）である。描画処理部１０３は、線オブジェクト２００２に設定されている線幅に基づいて、線オブジェクト２００２の右端のＸ座標値（Ｘ２＋（Ｗ２−Ｍ））を算出する。ここではＭ＝１であるので、左端および右端の画素間（すなわち線幅）は、図６（ｂ）で説明した線オブジェクトのものよりも１画素分だけ狭くなる。その結果、ビットマップ５１１に含まれることになる線の幅は、ビットマップ５０７に含まれる線の幅よりも１画素分狭い、１画素幅分となる。そして描画処理部１０３は、その左端および右端の画素間の画素の濃度情報および属性情報のそれぞれに、線の色Ｃ２およびライン属性「３」を書き込む。このように線オブジェクト２００２が、重なり順序に従って、矩形オブジェクト１００２とともに描画されると、１画素幅の線を含むビットマップ５１１が生成される。すなわち、ビットマップ５０９において矩形オブジェクト１００２の左端の画素に隣接する領域（ビットマップ５１１において破線領域で示される）の濃度情報および属性情報が、線オブジェクト２００２の濃度情報および属性情報に書き換わる。
【００５５】
なお、前述のＳ４０３の処理においてオブジェクトのＰＤＬコマンドの属性が補正済み属性「５」に書き換えられている場合、そのオブジェクトが描画される画素の属性情報は補正済み属性「５」で書き換えられる。
【００５６】
なお、本実施形態の描画処理部１０３はスキャンライン描画方式を利用しているため、実際にはビットマップ５０９は生成されずに、ビットマップ５１１が生成される。
【００５７】
このように、オブジェクトに設定されている線幅がＳ４０３において補正がなされたオブジェクトが描画されることで、第１の線幅量Ｍに基づく線幅補正が行われたビットマップが得られる。
【００５８】
＜第１の実施形態での画像処理＞
画像処理部１０４の実行する処理（Ｓ３０４）について図７に示されるフローチャートを用いて説明する。画像処理部１０４は、描画処理部１０３が生成した１ページ分の多値ビットマップに対して画像処理を行う。この画像処理は、ビットマップに含まれる線およびその線のエッジを検出し、決定処理部１０１によって決定された第２の補正値に基づいて、ビットマップに含まれる線の幅を補正する処理に対応する。
【００５９】
Ｓ６０１において、画像処理部１０４は、決定処理部１０１によって決定された第２の補正値Ｎが０であるかを判定する。この処理は、１画素幅未満の補正処理を行うか否かを判定する処理に対応する。決定処理部１０１によって決定された第２の補正値Ｎが０でないと判定される場合、処理はＳ６０２に進む。そうでない場合、本フローチャートの処理は終了する。
【００６０】
Ｓ６０２において、画像処理部１０４は、描画処理部１０３が生成した１ページ分の多値ビットマップに含まれる画素のうちで、次のＳ６０３の判定処理が行われていない画素（未処理の画素）があるかを判定する。すなわち画像処理部１０４は、１ページ分の多値ビットマップに含まれる全画素が処理対象の画素として扱われたか否かを判定している。未処理の画素がない（全画素が処理対象の画素として扱われた）と判定される場合、本フローチャートの処理は終了する。そうでない場合、画像処理部１０４は、未処理の画素のうちの１つを処理対象の画素に決定し、処理をＳ６０３に進める。
【００６１】
Ｓ６０３において、画像処理部１０４は、処理対象の画素の属性情報を参照し、処理対象の画素の属性がライン属性かどうかを判定する。処理対象の画素の属性がライン属性でないと判定される場合、処理はＳ６０４に進む。そうでない場合、処理はＳ６０２に戻る。
【００６２】
Ｓ６０４において、画像処理部１０４は、処理対象の画素の周囲の画素の属性がライン属性であるかを判定する。具体的には画像処理部１０４は、処理対象の画素の左隣りまたは上隣りの画素の属性がライン属性であるかを判定する。周囲の画素の属性がライン属性であると判定される場合、処理はＳ６０５に進む。そうでない場合、処理はＳ６０２に戻る。
【００６３】
Ｓ６０５において、画像処理部１０４は、処理対象の画素の周囲の画素の属性情報を参照し、補正済み属性「５」を持つ画素が処理対象の画素の周囲の画素にあるかを判定する。補正済み属性を持つ画素が処理対象の画素の周囲の画素にないと判定される場合、処理はＳ６０６に進む。そうでない場合、処理はＳ６０２に戻る。ここでいう、処理対象の画素の周囲の画素とは、決定処理部１０１によって決定された第２の補正値に基づいて決定される範囲に含まれる画素のことである。より詳しくは、処理対象の画素の周囲の画素は、処理対象の画素から、最大で（１／Ｎ（小数点以下切り捨て）−１）画素分、左方向あるいは上方向に離れた領域に含まれる画素のことである。Ｎ＝０．５の場合、周囲の画素とは、処理対象の画素に隣接する画素である。
【００６４】
Ｓ６０６において、画像処理部１０４は、処理対象の画素の濃度情報を、Ｓ６０４において属性がライン属性であると判定された周囲の画素の濃度情報で上書きする。属性がライン属性であると判定された周囲の画素が複数ある場合、それら複数の画素のうちのいずれか１つの画素の濃度情報を用いても良いし、それら複数の画素の濃度情報の平均値を用いても良い。またここでは、画像処理部１０４は、処理対象の画素の属性情報を、補正済み属性「５」に変更する。そして処理は、Ｓ６０２に戻る。
【００６５】
このＳ６０６での処理は、Ｓ６０５で補正済み属性を持つ画素が処理対象の画素の周囲の画素にないと判定される場合に行われる。そのため、Ｓ６０６において画像処理部１０４は、（１／Ｎ−１）画素の間隔おきに、上述の濃度情報の上書きを行う。この様子は図８を用いて次に説明する。
【００６６】
＜第２の補正値を用いた線幅の補正＞
ここでは、本実施形態の画像処理部１０４によって実行される、第２の補正値を用いた線幅の補正について、図８を用いて説明する。
【００６７】
図８（ａ）に示されるビットマップ７０１は、Ｓ３０３で描画処理部１０３によって生成された多値のビットマップ５１１である。細い線幅が設定された線オブジェクトが描画されることになるため、重なり順で線オブジェクトの下位である矩形オブジェクト１００２は、線オブジェクトで上書きされない。
【００６８】
図８（ａ）に示されるビットマップ７０３は、描画処理部１０３によって生成された多値のビットマップ７０１に対して、Ｓ３０４の画像処理が行われた結果得られる多値ビットマップである。本実施形態において第２の補正値Ｎは０．５であるため、ビットマップ７０１に含まれる線の幅を、擬似的に０．５画素分、補正する処理（線幅を太くする処理）が行われる。例えばビットマップ７０１の破線で囲まれた３つの画素の濃度情報が、その３つの画素それぞれの左隣りの３つの画素の濃度情報で上書きされる。このようにビットマップ７０１に含まれる線に隣接する画素が、１画素おきに補正されるため、擬似的に０．５画素分、線の幅を太くすることができる。またビットマップ７０１の破線で囲まれた３つの画素の属性情報が、補正済み属性「５」に変更される。この０．５画素分の補正では、線に隣接する画素のうち補正されない画素については、矩形オブジェクト１００２の濃度の情報が保存されたままであるため、画質の低下が抑えられる。
【００６９】
以上説明したように、本実施形態によれば、細線化レベルＬに基づいて、ＰＤＬコマンド（オブジェクト）に設定されている線幅を補正する処理と、ビットマップに含まれる線の線幅を画素単位で補正する処理とが行われる。その結果、細線化レベルＬが０．５（画素）であれば、補正を行わなかった場合に得られるビットマップ５０７（図６（ｂ））に対して、０．５画素分の細線化が行われたビットマップ７０３が得られる。
【００７０】
さてここで、０．５画素分の細線化を行う別の例として、ＰＤＬコマンドに設定されている線幅を小さくする補正（Ｓ４０３）を行わずに得られたビットマップ５０７（図６（ｂ））に対して、画素単位で０．５画素分の細線化を行うことを考える。
【００７１】
図８（ｂ）のビットマップ７０５はビットマップ５０７と等価である。ビットマップ７０５に含まれる線に対する０．５画素の細線化を行うべく、ビットマップ７０５に含まれる線を検出し、その検出された線のエッジに含まれる画素の濃度情報を１画素おきに間引く。すなわち、ビットマップ７０５の破線で囲まれた３つの画素の濃度情報が、白画素に対応する濃度値の情報で上書きされる。その結果、ビットマップ７０７に示される濃度情報が得られる。
【００７２】
このビットマップ７０７に含まれる線は確かに０．５画素分の細線化が行われた線である。しかしながら、ビットマップ７０７では、線を構成していた画素が白画素化するため、ビットマップ７０３に比べ、線オブジェクトと、隣接するオブジェクトとの境界の画質が低下してしまう。
【００７３】
このように本実施形態は、細線化処理ではさらに優れた効果を得られる。
【００７４】
＜第２の実施形態＞
第１の実施形態では、プリント部１０７の印刷解像度が、描画処理部１０３によって生成されるビットマップの解像度と同じであった。描画処理部１０３とプリント部１０７の間をつなぐ画像処理部１０４は、描画処理部１０３によって生成された多値のビットマップ５１１（７０１）に対して、そのビットマップの解像度と同じ解像度で、線幅の補正処理を行っていた。このような条件のため、１画素幅未満の線幅の補正を行う場合には、数画素おきに、画素の濃度情報を補正する（Ｓ６０５、Ｓ６０６）必要があった。
【００７５】
本実施形態の印刷装置１は、プリント部１０７の印刷解像度が描画処理部１０３によって生成されるビットマップの解像度よりも高い。
【００７６】
そこで本実施形態においては、画像処理部１０４が、描画処理部１０３によって生成されたビットマップ５１１（７０１）の解像度をより高い解像度に変換してから、その高解像度のビットマップに対して画素単位での線幅の補正処理を行う。そしてディザ処理部１０５は、線幅の補正が行われた高解像度の多値ビットマップに対してディザ処理を行い、プリント部１０７は、ディザ処理後の高解像度のビットマップに基づいて印刷処理を行う。
【００７７】
以下では画像処理部１０４について説明する。なおその他の各部については、第１の実施形態で説明した各部と同様の動作を行うため、説明を割愛する。
【００７８】
＜第２の実施形態での画像処理＞
本実施形態における画像処理部１０４は、描画処理部１０３によって生成された多値ビットマップを高解像度化する。そして画像処理部１０４は、高解像度のビットマップに含まれる線のエッジに含まれる画素に隣接する画素の濃度情報を、そのエッジに含まれる画素の濃度情報で上書きする。本実施形態における画像処理部１０４の処理の詳細について、図９を用いて説明する。
【００７９】
Ｓ８０１において、画像処理部１０４は、描画処理部１０３が生成した１ページ分の多値のビットマップの解像度をより高い印刷解像度に変換する。そして処理はＳ８０２に進む。
【００８０】
ここではビットマップの解像度をより高い印刷解像度に変換するとは、元のビットマップから、印刷解像度のビットマップを生成することである。元のビットマップが主走査方向および副走査方向ともにＡ［ｄｐｉ］であり、印刷解像度が主走査方向および副走査方向ともにＢ［ｄｐｉ］である場合を考える。この場合、高解像度化によって、元のビットマップに含まれる１画素の濃度情報および属性情報は、印刷解像度に含まれる（Ｂ／Ａ）×（Ｂ／Ａ）画素の濃度情報および属性情報として扱われる。
【００８１】
例えば、主走査方向および副走査方向ともに６００ｄｐｉのビットマップの解像度を、主走査方向および副走査方向ともに１２００ｄｐｉに変換する場合を考える。この場合、高解像度化によって、元のビットマップに含まれる１画素の濃度情報および属性情報は、印刷解像度に含まれる（１２００／６００）×（１２００／６００）（すなわち４）画素の濃度情報および属性情報として扱われる。
【００８２】
Ｓ８０２において、画像処理部１０４は、決定処理部１０１によって決定された第２の補正値Ｎが０であるか判定される。第２の補正値Ｎが０であると判定される場合、本フローチャートの処理は終了する。そうでない場合、処理はＳ８０３に進む。
【００８３】
Ｓ８０３において、画像処理部１０４は、第２の補正値Ｎを、印刷解像度での画素数に換算する。具体的にはビットマップの解像度がＡ、印刷解像度がＢである場合に、第２の補正値Ｎは、Ｎ×（Ｂ／Ａ）［画素］に換算される。例えば、ビットマップの解像度が主走査方向および副走査方向ともに６００ｄｐｉであり、印刷解像度が主走査方向および副走査方向ともに１２００ｄｐｉであり、Ｎ＝０．５である場合、第２の補正値Ｎは、１［画素］に換算される。そして処理はＳ８０４に進む。
【００８４】
Ｓ８０４において、画像処理部１０４は、Ｓ８０１で得られた１ページ分の多値ビットマップに含まれる画素のうちで、未処理の画素があるかを判定する。ここでは画像処理部１０４は、印刷解像度の１ページ分の多値ビットマップの画素を左上から右下に向かってスキャンライン順に順次走査する過程で、右下の最終画素まで走査したかを判定する。未処理の画素がないと判定される場合、本フローチャートの処理は終了する。そうでない場合、画像処理部１０４は、未処理の画素のうちの１つを処理対象の画素に決定し、処理をＳ８０５に進める。
【００８５】
Ｓ８０５において、画像処理部１０４は、処理対象の画素の属性情報を参照し、処理対象の画素の属性がライン属性かどうかを判定する。処理対象の画素の属性がライン属性でないと判定される場合、処理はＳ８０６に進む。そうでない場合、処理はＳ８０４に戻る。
【００８６】
Ｓ８０６において、画像処理部１０４は、処理対象の画素の周囲の画素の属性がライン属性であるかを判定する。具体的には画像処理部１０４は、処理対象の画素から、Ｓ８０３で換算された画素数分、左方向あるいは上方向に離れた位置の画素の属性がライン属性であるかを判定する。周囲の画素の属性がライン属性であると判定される場合、処理はＳ８０７に進む。そうでない場合、処理はＳ８０４に戻る。
【００８７】
すなわち、Ｓ８０５およびＳ８０６の一連の処理はライン属性を持つ画素と、ライン属性を持たない画素とが、第２の補正値Ｎに基づいて決定される距離離れているかを判定する処理である。離れている場合に処理はＳ８０７に進み、そうでない場合に処理はＳ８０４に戻る。
【００８８】
Ｓ８０７において、画像処理部１０４は、処理対象の画素の濃度情報を、Ｓ８０６において属性がライン属性であると判定された周囲の画素の濃度情報で上書きする。すなわち、この上書きの処理は、ライン属性を持つ画素の濃度値で、第２の補正値Ｎに基づいて決定される距離離れている、ライン属性を持たない画素の濃度値を変更する処理である。
属性がライン属性であると判定された周囲の画素が複数ある場合、それら複数の画素のうちのいずれか１つの画素の濃度情報を用いても良いし、それら複数の画素の濃度情報の平均値を用いても良い。またここでは、画像処理部１０４は、処理対象の画素の属性情報を、補正済み属性「５」に変更する。そして処理は、Ｓ８０４に戻る。
【００８９】
＜第２の補正値を用いた線幅の補正＞
ここでは、本実施形態の画像処理部１０４によって実行される、第２の補正値を用いた線幅の補正について、図１０を用いて説明する。
【００９０】
図１０の例において、描画解像度は６００ｄｐｉ、印刷解像度は１２００ｄｐｉ、第２の補正値Ｎは０．５であるとする。
【００９１】
ビットマップ９０１は、Ｓ３０３で描画処理部１０３によって生成された、描画解像度を持つ多値ビットマップ５１１である。ビットマップ９０３は、Ｓ８０１の処理によって得られる、印刷解像度を持つ多値ビットマップである。ビットマップ９０５は、Ｓ８０４〜Ｓ８０７の処理によって得られる印刷解像度の多値ビットマップである。
【００９２】
まず画像処理部１０４は、描画解像度のビットマップ９０１に含まれる１画素を主走査方向および副走査方向に２倍に増やすことで、印刷解像度のビットマップ９０３に含まれる４画素分の濃度情報および属性情報を生成する（Ｓ８０１）。
【００９３】
そして描画処理部１０４は、第２の補正値Ｎは０．５であり、この補正値Ｎの単位は、描画解像度での画素であるので、補正値Ｎを印刷解像度での画素数に換算する（Ｓ８０２、Ｓ８０３）。つまり、補正値Ｎは、印刷解像度で１画素（＝０．５画素×（１２００／６００））に換算される。
【００９４】
そして画像処理部１０４は、印刷解像度を持つビットマップ９０３に含まれる線を、ビットマップ９０３に含まれる画素の属性情報を参照することで検出し（Ｓ８０４〜Ｓ８０６）、その検出された線を１画素幅分、太くするように補正する（Ｓ８０７）。このようにして、多値のビットマップ９０５が得られる。すなわち画像処理部１０４は、第２の補正値Ｎに基づいて決定される印刷解像度の画素幅分、線を太くする補正を行う。
【００９５】
以上の本実施形態の印刷装置は、ＰＤＬコマンドに設定される線幅が細くされたオブジェクトを描画解像度で描画した後、描画解像度よりも高解像度である印刷解像度を持つオブジェクトを生成し、高解像度の状態で画素単位の線幅の補正を行う。その結果、実施形態１で得られるビットマップ７０７に含まれる線よりもエッジが滑らかな線を含む、印刷解像度を持つビットマップ９０５を得ることができる。
【００９６】
＜その他の実施の形態＞
以上の各実施形態において、描画処理部１０３は各画素の属性情報を生成しているが、属性情報は生成されずともよい。その代わりにビットマップに含まれる線オブジェクトを検出すれば良い。例えば、ビットマップに含まれるエッジを検出し、その検出されたエッジ間が閾値以下の距離であればエッジ間の画素は線オブジェクトを構成する画素であると判定することで、線オブジェクトを検出しても良い。あるいは、ビットマップに対してパターンマッチングを行うことで、線オブジェクトを検出しても良い。
【００９７】
また以上の各実施形態において、ディザ処理の前に線オブジェクトを太くする処理（ライン属性の画素の濃度情報で周囲の画素の濃度情報を上書きする処理）を行っている。しかし、ディザ処理の後に線オブジェクトを太くする処理を行っても良い。この場合、例えば、ディザ処理部１０５による処理後のビットマップに含まれる線オブジェクトを検出し、その線オブジェクトの線幅を第２の補正値Ｎに基づいて太くするようにすればよい。線オブジェクトの検出は、パターンマッチング等の公知の方法を利用すればよい。
【００９８】
また以上の各実施形態においては、ＰＤＬコマンドに設定されている線幅を補正する方式と、ビットマップに含まれる線の線幅を画素単位で補正する方式と、を組み合わせた細線化処理が説明された。この２種の補正方式の組み合わせは、細線化処理だけでなく、線幅を太くする処理（太線化処理）にも適用できる。例えば、上述の細線化レベルの代わりに、オブジェクトの線幅を太くする程度を示す補正量として太線化レベルを定義する。決定処理部１０１は、その太線化レベルに基づいて第１の太らせ補正値および第２の太らせ補正値を決定する。この処理では、決定処理部１０１は、太線化レベル（例えば１．５）以下の最大の整数値（例えば１）を第１の太らせ補正値に決定し、その整数値を太線化レベルから減じた値（例えば０．５）を第２の太らせ補正値と決定する。そしてＰＤＬ処理部１０２は、線オブジェクトのＰＤＬコマンドに設定されている線幅のパラメータに第１の太らせ補正値を加える。そして実施形態１および２と同様に、描画処理部１０３はビットマップを生成し、画像処理部１０４はビットマップに含まれる線オブジェクトの幅を第２の太らせ補正値に基づいて太くする。このように、２種の補正方式を太線化処理に適用することが可能である。
【００９９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2015207259.tif 000003
【図２】
2015207259.tif 000004
【図３】
2015207259.tif 000005
【図４】
2015207259.tif 000006
【図５】
2015207259.tif 000007
【図６】
2015207259.tif 000008
【図７】
2015207259.tif 000009
【図８】
2015207259.tif 000010
【図９】
2015207259.tif 000011
【図１０】
2015207259.tif 000012
【図１１】
2015207259.tif 000013