(57)【特許請求の範囲】
【請求項１】
オブジェクトの輪郭を構成する複数の線分を定義する複数の点の位置情報を取得する取得手段と、
前記輪郭を構成する前記複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を、前記位置情報に基づいて特定する特定手段と、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記複数の点のうちの少なくとも１つの点の位置の補正を行う補正手段と、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズ手段と、
を有し、
前記特定手段は、対象の線分上の複数の点から他の線分までの距離を取得し、取得された複数の距離のうちの最小の距離が前記閾値未満となる場合に、前記対象の線分を、前記他の線分までの距離が前記閾値未満である前記一つの線分として特定することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記特定された一つの線分を定義する点の一つから所定方向にずらした位置に新たな点を生成し、前記複数の線分が前記複数の点と前記生成された新たな点とによって定義されるようにすることで、前記補正を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記特定された一つの線分の両端点それぞれから前記所定方向にずらした位置に新たな２点を生成し、前記特定された一つの線分の代わりに、前記新たな２点を両端点とする線分が前記オブジェクトの輪郭の一部を構成するように前記両端点を補正することで、前記補正を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記補正手段は、前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記特定された一つの線分を定義する点の少なくとも１つの点の位置を、所定方向に所定量だけずらすことで、前記補正を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記特定手段による前記特定の処理および前記補正手段による前記補正の処理は、一連の処理であって、
前記一連の処理を繰り返すように前記特定手段および前記補正手段を制御する制御手段を有することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記制御手段は、前記一連の処理を規定回数未満の範囲内で繰り返すよう前記特定手段および前記補正手段を制御する請求項５に記載の画像処理装置。
【請求項７】
前記ラスタライズ手段は、前記補正が行われたオブジェクトをラスタライズする際に、前記補正がなされた前記複数の点に対して座標変換処理を行い、前記座標変換処理が行われた前記複数の点の座標に基づいたラスタライズを行うことを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記ラスタライズ手段でなされる前記ラスタライズによって得られるラスタデータを印刷装置に送信する送信手段を、更に有することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記オブジェクトは、文字、線、図形の何れかであることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記閾値は、印刷装置のプリントエンジンの解像度の逆数であることを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
オブジェクトの輪郭を構成する複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を特定する特定手段と、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記一つの線分上の複数の点のうちの少なくとも１つの点の位置の補正を行う補正手段と、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズ手段と、
を有し、
前記特定手段は、前記他の線分までの距離が前記オブジェクトの内部の領域を含む区間の距離であるか前記オブジェクトの外部の領域を含む区間の距離であるかに関わらず、前記他の線分までの距離が閾値未満である前記一つの線分を特定することを特徴とする画像処理装置。
【請求項１２】
オブジェクトの輪郭を構成する複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を特定する特定手段と、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記一つの線分上の複数の点のうちの少なくとも１つの点の位置の補正を行う補正手段と、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズ手段と、
を有し、
前記補正手段は、前記オブジェクトの輪郭を構成する一つの線分と前記輪郭を構成する他の線分との間の距離であって、前記オブジェクトの外部の領域を含む区間の距離が前記閾値未満である場合に、該一つの線分と該他の線分との間の距離が前記閾値以上となるように前記補正を行うことを特徴とする画像処理装置。
【請求項１３】
前記補正手段は、前記オブジェクトの輪郭を構成する一つの線分と前記輪郭を構成する他の線分との間の距離であって、前記オブジェクトの内部の領域を含む区間の距離が前記閾値未満である場合に、該一つの線分と該他の線分との間の距離が前記閾値以上となるように前記補正を行うことを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
描画コマンドに基づいて生成された中間データ対してオブジェクトを縮小するための座標変換を行った後のオブジェクトについて、前記特定手段は前記一つの線分を特定することを特徴とする１から１３のうちいずれか１項に記載の画像処理装置。
【請求項１５】
オブジェクトの輪郭を構成する複数の線分を定義する複数の点の位置情報を取得する取得工程と、前記輪郭を構成する前記複数の線分の中から前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を、前記位置情報基づいて特定する特定工程と、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記複数の点のうちの少なくとも１つの点の位置の補正を行う補正工程と、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズ工程と、を有し、
前記特定ステップにおいて、対象の線分上の複数の点から他の線分までの距離を取得し、取得された複数の距離のうちの最小の距離が前記閾値未満となる場合に、前記対象の線分を、前記他の線分までの距離が前記閾値未満である前記一つの線分として特定することを特徴とする画像処理方法。
【請求項１６】
画像処理装置の制御方法であって、
オブジェクトの輪郭を構成する複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を特定する特定ステップと、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記一つの線分上の複数の点のうちの少なくとも１つの点の位置の補正を行う補正ステップと、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズステップと、
を有し、
前記特定ステップにおいて、前記他の線分までの距離が前記オブジェクトの内部の領域を含む区間の距離であるか前記オブジェクトの外部の領域を含む区間の距離であるかに関わらず、前記他の線分までの距離が閾値未満である前記一つの線分を特定することを特徴とする制御方法。
【請求項１７】
画像処理装置の制御方法であって、
オブジェクトの輪郭を構成する複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を特定する特定ステップと、
前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記一つの線分上の複数の点のうちの少なくとも１つの点の位置の補正を行う補正ステップと、
前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズステップと、
を有し、
前記補正ステップにおいて、前記オブジェクトの輪郭を構成する一つの線分と前記輪郭を構成する他の線分との間の距離であって、前記オブジェクトの外部の領域を含む区間の距離が前記閾値未満である場合に、該一つの線分と該他の線分との間の距離が前記閾値以上となるように前記補正を行うことを特徴とする制御方法。
【請求項１８】
請求項１乃至１４の何れか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法に関して、パーソナルコンピュータ、印刷装置などの情報処理システムにおける画像処理方法に関するものである。
【背景技術】
【０００２】
複数の点の座標を直線あるいは曲線で順に接続することで、文字、線、図形等のオブジェクトの輪郭（形状）を表現することができる。このような点の接続経路をパスと呼ぶ。接続順が決まっている点列によってオブジェクトの輪郭を定義する描画コマンドを点列データと呼ぶ。このような点列データによって表現されるオブジェクトの一部はラスタライズによって消失することがある。特に、点列データに対して、Ｎ−ｕｐレイアウト処理や、印刷装置のプリントエンジンの印刷解像度に合わせる解像度変換処理を行った場合に、オブジェクトの一部が消失しやすい。ホストＰＣや印刷装置などは、点列データに対してレイアウト処理や解像度変換処理を行う際に、点列に含まれるそれぞれの点の座標に対してレイアウト処理の縮小率や解像度変換処理の解像度比に応じた座標変換を行うことで、オブジェクトを縮小する。オブジェクトが縮小されると、オブジェクトの一部の幅が細くなりすぎて、ラスタライズの解像度やラスタライズ時の塗りつぶしのルールによっては消失する。この様子は図１に示され、文字のオブジェクト「Ｈ」が縮小されると、オブジェクトの一部である横線が消失する。
【０００３】
特許文献１は、点列データによって表現されるオブジェクトの幅がラスタライズによって消失してしまうのを防ぐための方法が開示される。この方法は、点列に含まれる或る点の前の点からその或る点までを接続するパスの向き、および、点列に含まれるその或る点からその或る点の次の点までを接続するパスの向きの組み合わせに基づいてオブジェクトの横線部分を特定する。そしてこの方法は、その横線部分を形成する点の座標を縦方向にずらすことで、その横線部分の輪郭（形状）を表現するパスを補正する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−７３０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法は、特定の一部（横線部分）であればその一部の輪郭を表現するパスが補正される。言い換えればその一部が、ラスタライズによって消失しないほどに十分な幅を持っている場合でも、その一部の輪郭を表現するパスが補正されてしまう。そのため、補正を行う必要のない部分のパスに対しても補正を行うことになり、オブジェクトの形状が、元々のパスによって表現されるオブジェクトの形状と異なってしまう。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、オブジェクトの輪郭を構成する複数の線分を定義する複数の点の位置情報を取得する取得手段と、前記輪郭を構成する前記複数の線分の中から、前記輪郭を構成する他の線分までの距離が閾値未満である一つの線分を、前記位置情報に基づいて特定する特定手段と、前記特定された一つの線分と前記他の線分との間の距離が前記閾値以上となるように、前記複数の点のうちの少なくとも１つの点の位置の補正を行う補正手段と、前記補正がなされた後の前記複数の点の位置に基づいて、前記オブジェクトのラスタライズを行うラスタライズ手段と、を有し、前記特定手段は、対象の線分上の複数の点から他の線分までの距離を取得し、取得された複数の距離のうちの最小の距離が前記閾値未満となる場合に、前記対象の線分を、前記他の線分までの距離が前記閾値未満である前記一つの線分として特定することを特徴とする。
【発明の効果】
【０００７】
本発明の一側面によれば、オブジェクトの形状をなるべく変えることなく、オブジェクトの一部の消失を防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】描画が欠ける例を示した図である。
【図２】本実施例の印刷処理システム構成の一例を示すブロック図である。
【図３】実施例の印刷処理システム全体構成を示すブロック図である。
【図４】実施例のエッジ抽出処理のフローチャートである。
【図５】実施例のエッジ抽出処理を示した図である。
【図６】実施例のエッジ太らせ処理を示した図である。
【図７】実施例の画像処理方法のメインフローチャートである。
【図８】実施例の補正処理のフローチャートである。
【図９】エッジ太らせ処理が他のエッジに影響を与える例の説明図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施例について図面を用いて説明する。
【００１０】
（実施例１）
＜印刷処理システムのハードウェア構成＞
図２は、本実施例の印刷処理システムのハードウェア構成を示すブロック図である。この印刷処理システムは、ホストＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１と印刷装置２とで構成される。ホストＰＣ１と印刷装置２とは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で互いに接続している。なお本実施例では、ホストＰＣ１と印刷装置２とは、ＬＡＮで接続しているが、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して接続しても、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブルを介して直接的に接続しても良い。
【００１１】
本実施例のホストＰＣ１は、後述のオブジェクトの縮小処理（レイアウト処理および解像度変換処理）およびラスタライズ処理を行う画像処理装置の一例である。このホストＰＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、記憶装置１０２、ネットワークＩ／Ｆ（インターフェース）１０３、入力装置１０４、表示装置１０５を有する。
【００１２】
本実施例の記憶装置１０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含む。この記憶装置１０２には、図３に示されるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１５０やそのＯＳ１５０上で動作するプリンタドライバ１０を実現するための各プログラムが記憶されている。ＣＰＵ１は、それらプログラムを記憶装置１０２から読み出して実行することで、図２の各部を統括的に制御する。そしてＣＰＵ１によって各部が統括的に制御されることで、図３のＯＳ１５０やプリンタドライバ１０が実現される。
【００１３】
ネットワークインターフェース１０３は、ホストＰＣ１と印刷装置２とを接続するためのインターフェースであり、データを印刷装置２との間で送受信する際に用いられる。
【００１４】
入力装置１０４は、例えばキーボードやポインティングデバイスを含み、不図示の描画アプリケーションソフトよって作成されたデータの印刷指示をユーザーから受け付けるユーザーインターフェースとして機能する。また入力装置１０４は、１ｉｎ１や４ｉｎ１などの印刷レイアウトに関する設定をユーザーから受け付ける。
【００１５】
表示装置１０５は、例えばディスプレイを含み、描画アプリケーションソフトで作成されたデータの印刷指示をユーザーが行う際に、印刷指示画面を表示するユーザーインターフェースとして機能する。なおこの印刷指示画面は、上述の印刷レイアウトに関する設定画面でもある。
【００１６】
印刷装置２は、不図示のネットワークインターフェースおよびプリントエンジンを備える。印刷装置２は、この不図示のネットワークインターフェースを介してホストＰＣ１から印刷データを受信し、不図示のプリントエンジンによって印刷データを用紙などのシートに印刷する。なお、本実施例の印刷装置２は、プリント機能のみを有するＳＦＰ（ＳｉｎｇｌｅＦｕｎｃｔｉｏｎＰｒｉｎｔｅｒ）であっても、プリント機能の他にスキャン機能等を有するＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎＰｅｒｉｐｈｅｒａｌ）であってもよい。また、印刷装置２の備える不図示のプリントエンジンは、電子写真方式、インクジェット方式、その他の方式に従うプリントエンジンであればよく、特定の方式のプリントエンジンに限定されない。本実施例のプリントエンジンは、画像データの１画素を縦１／４００［ｉｎｃｈ］、横１／６００［ｉｎｃｈ］の大きさのドットで印刷する。すなわち本実施例のプリントエンジンの印刷解像度は、縦横４００［ｄｐｉ］×６００［ｄｐｉ］であるが、本発明はこれに限定されない。例えば紙の搬送速度を落として画像を高解像度の画質で印刷するモードをさらに備えるプリントエンジンの印刷解像度は、２つの印刷解像度から１つを選択できる。
【００１７】
＜印刷処理システムのソフトウェア構成＞
図３は、本実施例の印刷処理システムのソフトウェア構成を示すブロック図である。
【００１８】
ホストＰＣ１内に示されるＯＳ１５０は、ホストＰＣ１の基本的な動作を制御する。ＯＳ１５０は、アプリケーションプログラムで作成されたデータの印刷指示を受け取ると、プリンタドライバ１０を呼び出し、プリンタドライバ１０に描画コマンドを渡す。具体的には、ＯＳ１５０は、印刷指示を受け取るとアプリケーションからデータを取得し、そのデータをプリンタドライバ１０が解釈可能な形式の描画コマンドに変換する。そして、ＯＳ１５０は、変換された描画コマンドをスプールファイルとして記憶装置１０２に記憶し、その記憶されたスプールファイルを取得して処理するようにプリンタドライバ１０に指示する。このデータ受け渡しの際に、ＯＳ１５０は、ユーザーから入力装置１０４を介して受け取った印刷レイアウトに関する設定データもプリンタドライバ１０（レイアウト処理部１２）に渡す。
【００１９】
プリンタドライバ１０は、ＯＳ１５０上で実現される印刷装置を制御するアプリケーションの１つである。プリンタドライバ１０は、コマンド解釈部１１、レイアウト処理部１２、最低保証線幅算出部１４、エッジ抽出部１５、エッジ太らせ処理部１６、印刷データ生成部１７、印刷コマンド制御部１８、データ送受信部１９を有する。
【００２０】
本実施例のプリンタドライバ１０は、ＯＳ１５０から特定解像度（例えば縦横６００×６００ｄｐｉ）の描画コマンドを受け取る。そしてプリンタドライバ１０は、この特定解像度でラスタライズ処理を行うことでラスタデータを生成する。本実施例ではこのラスタライズ処理において解像度変換処理も併せて行われることで、後述のように印刷解像度（例えば縦横４００×６００ｄｐｉ）が考慮されたラスタデータが生成される。解像度変換処理によって描画コマンドによって表現されるオブジェクトは縮小されるので、解像度変換処理後のオブジェクトを特定解像度でラスタライズすると、オブジェクトの一部がラスタデータから消失することがある。そこで本実施例のプリンタドライバ１０は、縮小されたオブジェクトをラスタライズしても、オブジェクトの一部がラスタデータから消失しないように、その一部分の幅を広げる処理を行う。そしてプリンタドライバ１０は、このようにして生成されたラスタデータを印刷装置２に送信する。
【００２１】
コマンド解釈部１１は、図７のＳ７０１の処理を行う。具体的には、コマンド解釈部１１は、ＯＳ１５０から受け取ったスプールファイルに含まれる描画コマンドを解釈し、中間データに変換する。例えば描画コマンドが文字、線、図形のオブジェクトの輪郭を定義する点列データである場合を考える。点列データとは複数の点を示すデータであり、単に点列とも呼ばれる。点のそれぞれは座標（Ｘ、Ｙ）を持ち、点どうしを接続する線分の接続経路（パスあるいはエッジとも呼ぶ）がオブジェクトの輪郭の一部を表現している。すなわち点どうしを接続するパスがオブジェクトの形状を表す。なお座標（Ｘ、Ｙ）のＸ座標はＸ軸方向の位置を示し、Ｙ座標はＹ軸方向の位置を示す。本実施例では、Ｘ軸方向を横方向と表現し、Ｙ軸方向を縦方向と表現する。横方向と縦方向は直交する。点どうしの接続順は、点列データ内での各点が記述されている順に等しい。点列データを取得したコマンド解釈部１１は、点列に含まれる各点の座標を接続順で結んだリンク構造のデータを生成する。この生成されるデータが中間データであり、この生成を、描画コマンドの中間データへの変換と呼ぶ。
【００２２】
レイアウト処理部１２は、図７のＳ７０２の処理を行う。具体的には、レイアウト処理部１２は、ＯＳ１５０から受け取った印刷レイアウトに関する設定のデータに基づいて、コマンド解釈部１１によって変換された中間データに対してレイアウト処理を行う。レイアウト処理とは、印刷レイアウトに関する設定が４ｉｎ１であれば、オブジェクトを縦方向（Ｙ軸方向）および横方向（Ｘ軸方向）それぞれに１／２に縮小するような、中間データに含まれる点の座標に対する座標変換処理である。
【００２３】
最低保証線幅算出部１４は、図７のＳ７０３の処理を行う。具体的には、最低保証線幅算出部１４は、印刷データ生成部１７によって行われるラスタライズ処理後にオブジェクトの一部が消失することがないような、オブジェクトの一部の最小幅（以後“最低保証線幅”）を算出する。この最小幅はラスタライズ処理時に行われる解像度変換処理によって縮小される方向（例えばＹ軸（縦）方向）の幅である。また最小幅は、印刷装置２の有するプリントエンジンの印刷解像度に基づいて算出される。例えば印刷解像度は事前に決定されているものを用いても良いし、最低保証線幅算出部１４がネットワークＩ／Ｆを介して印刷装置２に問い合わせて取得したものを用いても良い。本実施例のラスタライズ解像度は、ＯＳ１５０から受け取った描画コマンドの解像度と一致する。すなわち縦横６００×６００ｄｐｉである。印刷解像度をＮ［ｄｐｉ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ）］とすると、本実施例の最低保証線幅は１／Ｎ［ｉｎｃｈ］となる。印刷解像度が縦横４００×６００［ｄｐｉ］であれば、印刷解像度の逆数１／４００［ｉｎｃｈ］が縦方向の最低保証線幅である。すなわちベクターデータによって表現される線分どうしの縦方向の距離（幅）が１／４００［ｉｎｃｈ］であれば、解像度変換処理後のベクターデータはラスタライズ解像度（６００ｄｐｉ）で少なくとも１ｄｏｔ幅以上にラスタライズされる。その結果、オブジェクトの一部が消失することはない。本実施例は最低保証線幅を用いて、ラスタライズ処理によって消失してしまう可能性のあるオブジェクトの一部が消失しないように、その一部に対応する点列のデータを補正する。すなわちオブジェクトの形状を表すパスの位置がずらされる。
【００２４】
エッジ抽出部１５は、図７のＳ７０４の処理、Ｓ７０５の処理の一部を行う。具体的には、エッジ抽出部１５は、点列データによって表現されるオブジェクトのうちの消失してしまう可能性のある一部を構成する線分のパス（エッジ）を抽出する。エッジ抽出部１５は、複数エッジ間の縦方向の距離（幅）、すなわちオブジェクトの一部分の縦方向の幅、を算出する。そしてエッジ抽出部１５は、この算出された幅が最低保証線幅未満（すなわち閾値未満）となるか否かを判定し、最低保証線幅未満となる幅を持つオブジェクトの一部分に対応するパス（エッジ）を抽出する。エッジ抽出部１５は、エッジ抽出の際に、抽出されたエッジ間の幅も取得する。以降では、Ｙ軸方向について消える又はつぶれるケースを回避する手段を記載するが、ＸとＹを入れ替えることでＸ軸方向にも適用でき、また、同時にも適用することが可能である。この処理に関しては後述の図４で詳細を記載する。
【００２５】
エッジ太らせ処理部１６は、図７のＳ７０５の一部の処理を行う。具体的には、エッジ太らせ処理部１６は、エッジ抽出部１５によって抽出されたパス（エッジ）の位置をずらすことで、オブジェクトの一部の幅を広げる。これによってラスタライズ処理によってオブジェクトの一部が消失することを防ぐ。この処理の詳細は図６で詳述する。
【００２６】
印刷データ生成部１７は、図７のＳ７０７の処理を行い、印刷データを生成する。
【００２７】
データ送信部１９は、図７のＳ７０８の処理を行い、印刷データ生成部１７の生成した印刷データを印刷装置２に送信する。
【００２８】
印刷装置２は、データ受信部２０、コントローラ部２１を有する。データ受信部２０は、前述の不図示のネットワークＩ／Ｆを制御し、ホストＰＣ１のデータ送信部１９から印刷データを受信する。コントローラ部２１は、受信した印刷データに基づいて、前述の不図示のプリントエンジンを制御して印刷を行う。
【００２９】
＜本実施例のフローチャート＞
図７は、本実施例のプリンタドライバ１０が行う処理のフローチャートである。
【００３０】
Ｓ７０１において、コマンド解釈部１１は、上述の通り、スプールファイル中の描画コマンドを解釈し、中間データを生成する。
【００３１】
次にＳ７０２において、レイアウト処理部１２は、上述の通り、Ｓ７０１で生成された中間データに対してレイアウト処理を行う。
【００３２】
次にＳ７０３において、最低保証線幅算出部１４は、上述の通り、最低保証線幅を印刷解像度に基づいて算出する。
【００３３】
次にＳ７０４において、エッジ抽出部１５は、レイアウト処理後の中間データが点列データであるかを判定する。中間データが点列データであれば、エッジ抽出部１５およびエッジ太らせ処理部１６は、Ｓ７０５の補正処理（図８）を行う。一方、中間データが点列データでなければ、Ｓ７０５の補正処理は行われない。
【００３４】
以上のＳ７０４、Ｓ７０５の処理は、中間データごとに繰返し行われる。
【００３５】
Ｓ７０７において、印刷データ生成部１７は、上述の通り、ページに含まれる中間データのラスタライズ処理を行う。本実施例では、ラスタライズ処理に解像度変換処理が含まれる。具体的には、印刷データ生成部１７は、中間データに対して、ラスタライズ解像度と印刷解像度との比に基づいて解像度変換処理を行う。例えば中間データの解像度が縦横６００×６００ｄｐｉ、ラスタライズ解像度が縦横４００×６００ｄｐｉであれば、解像度変換処理ではオブジェクトが縦方向に２／３倍に縮小される。中間データがビットマップであれば、印刷データ生成部１７は、横方向に伸びる３ラインのうち１ラインを間引くことで解像度変換処理を行う。中間データが点列データなどのベクターグラフィクスであれば、印刷データ生成部１７は、点列に含まれる各点の座標に対して、オブジェクトを縦方向に２／３倍するような変換行列を用いて座標変換処理を行うことで解像度変換処理を行う。
【００３６】
そして印刷データ生成部１７は、解像度変換処理が行われた後の中間データをラスタライズ解像度（縦横６００×６００ｄｐｉ）でラスタライズすることでページのラスタデータを生成する。このラスタライズは、中間データがビットマップであれば、そのビットマップを記憶装置１０２内のページメモリに書き込む処理である。また中間データがベクターグラフィクスであれば、その中間データからオブジェクトの輪郭を表すデータを生成し、その生成されたデータで表された輪郭間（オブジェクトの内部）をオブジェクトの色で塗りつぶしルールに従って塗りつぶす処理である。この塗りつぶす処理は、オブジェクトの色をページメモリに書き込む処理に相当する。なお中間データのラスタライズは公知の方法を用いて行うため、処理の詳細については割愛する。
【００３７】
そして印刷データ生成部１７は、生成されたラスタライズ解像度のラスタデータから、印刷装置２が解釈できる形式の印刷データを生成する。印刷データは、ラスタライズ解像度を持つデータであり、例えばラスタデータそのものや、ＪＰＥＧ圧縮されたラスタデータなどである。この印刷データはＰＤＬ（ＰａｇｅＤｅｓｃｒｉｐｔｉｏｎＬａｎｇｕａｇｅ）で記述されても良い。
【００３８】
Ｓ７０８において、データ送信部１９は、データ送信部１９は、印刷データ生成部１７の生成した印刷データを印刷装置２に送信する。すると印刷装置２は印刷データをプリンタエンジンによって印刷解像度で印刷する。例えば、印刷データ中のラスタライズ解像度（例えば縦横６００×６００ｄｐｉ）を持つラスタデータは、印刷解像度（例えば縦横４００×６００ｄｐｉ）に拡大されて（縦方向に引き伸ばされて）印刷される。
【００３９】
以上が本実施例における一連の処理である。
【００４０】
＜補正処理＞
図８のフローチャートを用いてＳ７０５の補正処理について説明する。
【００４１】
点列データ（中間データ）に対して補正処理が開始されると、Ｓ８０１において、エッジ抽出部１５は、図４を用いて後述するエッジ抽出処理を行う。
【００４２】
次にＳ８０２において、エッジ太らせ処理部１６は、エッジ太らせ処理によって補正すべきエッジ（点列の一部）があるか否かを判定する。この判定は、エッジ抽出処理において生成されたエッジリスト（図５（Ｆ））に、エッジＩＤが記憶されているか否かで判定する。エッジＩＤが記憶されていれば補正すべきエッジがあると判定され、処理はＳ８０３へ進む。そうでない場合は補正すべきエッジは無いと判定され、本フローチャートは終了する。
【００４３】
Ｓ８０３において、エッジ太らせ処理部１６は、エッジ太らせ処理を同一オブジェクト（同一オブジェクトを表現する点列データ）に対して規定回数以上行ったか否かを判定する。規定回数は本実施例では１０回であるが、これに限定されない。この判定を行う理由は、エッジ太らせ処理を同一オブジェクトに何回も行うことでオブジェクトの形状が変わりすぎることを防ぐためである。なおここでのエッジ太らせ処理部１６は、エッジ抽出処理およびエッジ太らせ処理の一連の処理を繰り返すように、エッジ抽出部１５およびエッジ太らせ処理部１６自身を制御する制御部として機能している。
【００４４】
エッジ太らせ処理が既に行われた回数が規定回数以上の場合には、本フローチャートは終了する。一方、エッジ太らせ処理が既に行われた回数が規定回数未満の場合には、Ｓ８０４において、エッジ太らせ処理部１６は、図６を用いて説明するように、オブジェクトの一部の幅を所定の方向（本実施例では縦方向）に広げるためのエッジ太らせ処理を行う。
【００４５】
なお以上説明したように、Ｓ８０１〜Ｓ８０４のエッジ抽出処理とエッジ太らせ処理は最大で９回（すなわち規定回数の範囲内で）まで繰返し実行される。処理を繰返し実行することで、オブジェクトの一部がつぶれてしまうことを防ぐ効果がある。具体例を図９に示す。図９（Ａ）には、同一オブジェクトの輪郭を形成するエッジ９０１、９０２、９０３を示す。図９（Ａ）〜（Ｃ）に示される斜線部はオブジェクトの輪郭内部である。エッジ９０１とエッジ９０２との距離、エッジ９０２とエッジ９０３との距離をそれぞれ、距離９０４、距離９０５とする。距離９０４が最低保証線幅以上（すなわち閾値以上）であり、且つ、距離９０５が最低保証線幅未満（すなわち閾値未満）である場合、エッジ太らせ処理によって図９（Ｂ）に示されるように、エッジ９０６が生成される。その結果、オブジェクトの一部（下の斜線部）の幅が距離９０８（エッジ９０６とエッジ９０３との距離）まで広がる。しかし、エッジ９０１とエッジ９０６との距離９０７が最低保障線幅未満となってしまう場合がある。この場合、ラスタライズの塗りつぶしのルールによっては、白い部分がオブジェクトの輪郭の内部の色で塗り潰されてしまう。すなわちオブジェクトの一部がつぶれる。そこで、このような場合を救うために、再度Ｓ８０１〜Ｓ８０４のエッジ抽出処理と太らせ処理とを行い、最低保障線幅未満となっている距離９０７を広げる。その結果が図９（Ｃ）に示される。図９（Ｃ）ではエッジ９１０が生成されて、エッジ９１０とエッジ９０６との距離９０９が最低保証線幅以上（すなわち閾値以上）となるのでオブジェクトの一部がラスタライズによってつぶれてしまうことが防がれる。
【００４６】
以上のように、エッジ太らせ処理を何回も繰り返すことでオブジェクトの一部がつぶれてしまうことを防ぐことができる。しかし、処理の繰返しの上限を設けないとオブジェクトによってはどんどん上方へとオブジェクトが伸びることになり、オブジェクトの形状が変わりすぎてしまう。その形状変化を防ぐため、上述の通り、処理の繰返し回数の上限（規定回数）を設けている。
【００４７】
＜エッジ抽出処理＞
図４は、エッジ抽出部１５によって実行されるＳ８０１のエッジ抽出処理のフローチャートである。
【００４８】
本フローの処理は、概念的には、点列データによって表現されるオブジェクトの所定方向の幅を求め、そのオブジェクトのどの部分が、後で行われるラスタライズ処理によって消失するかを特定する処理である。その特定を、エッジ間の距離が閾値未満となるエッジを抽出することで行っている。
【００４９】
Ｓ４０１において、エッジ抽出部１５は、中間データ（点列データ）を取得し、エッジを生成する。以降、説明の便宜上、図５（Ａ）に示すような点列データが取得されたものとする。図５（Ａ）の点列データは、８つの点Ｐ１〜Ｐ８を含む。エッジ抽出部１５は、これら８つの点を接続順に従って接続することで、８つの線分（エッジ）５０１〜５０８を生成する。各エッジは点列の接続順に従い、向きを持つ。例えばエッジ５０１は、Ｐ１からＰ２への向きを持つ。また各エッジは、エッジを特定するためのＩＤ情報（エッジＩＤ）を持つ。エッジ５０１〜５０８のエッジＩＤはそれぞれ１〜８とする。
【００５０】
Ｓ４０２において、エッジ抽出部１５は、ポイントリストを生成する。これは以下の処理手順によってなされる。エッジ抽出部１５は、Ｘ軸方向に一定間隔で設定された複数のＸ座標におけるエッジのＹ座標を、エッジの向きに沿ってエッジ毎に算出する。この算出は、エッジの両端点の座標から、両端点を結ぶ線分を示す式（ｙ＝ａｘ＋ｂ）を導出し、その式のｘに各Ｘ座標の値を代入することで行われる。続いてエッジ抽出部１５は、エッジの交点のＸ座標およびＹ座標を、そのエッジのエッジＩＤと関連付ける。そしてエッジ抽出部１５は、関連付けられたＸ座標、Ｙ座標、エッジＩＤを、ポイントデータ（以降ポイントと呼ぶ）としてポイントリストに記憶する。ポイントリストへの記憶の際には、エッジ抽出部１５は、ポイントをエッジの向きに沿ってリンクさせて記憶する。
【００５１】
なおＹ座標を算出するための前述の一定間隔は、横方向に伸びるオブジェクトの一部が横方向のどの位置で消失しうるかを検出するために設定される。この間隔は、細かいほど良いが、細かすぎるとＹ座標の算出やその後の処理にかかる演算量が多くなりすぎるので、適切な値を設定するのが良い。本実施例では、間隔を０．２ｍｍ（≒０．０５ｉｎｃｈ）としておく。
【００５２】
図５（Ｂ）は、図５（Ａ）の点列データからＹ座標が取得される様子を示し、図５（Ｃ）は、図５（Ａ）の点列データから得られるポイントリストを示す。図５（Ｂ）の例では、ｎ一定間隔に設けられたＸ座標５０９、５１０、５１１の縦線とエッジ５０１との交点のＹ座標がエッジの向きに沿って算出される。すなわち交点５１２、５１３、５１４の順でＹ座標が算出される。次に、これら交点５１２〜５１４のＸ座標およびＹ座標がエッジ５０１のエッジＩＤ「１」と関連付けられる。そして、交点５１２のＸ座標、Ｙ座標、エッジＩＤをポイント（５１２）としてポイントリストに記憶される。交点５１３、５１４についても同様であり、その結果、図５（Ｃ）に示されるように、ポイント（５１２）、ポイント（５１３）、ポイント（５１４）の順でリンクされたポイントリストが得られる。他のエッジ５０３、５０５、５０７についても同様に処理される。なお、異なるエッジどうしのポイントは、エッジＩＤが昇順となるように、リンクされる。つまり、図５（Ｃ）に示される順序で、各ポイントがリンクされる。
【００５３】
Ｓ４０３において、エッジ抽出部１５は、ポイントリストに記憶された各ポイントをソートする。このソート処理は、各ポイントのＸ座標が昇順となるようにソートした後、同一Ｘ座標を持つ複数のポイントのＹ座標が昇順となるようにソートする処理である。ソート処理の結果、図５（Ｃ）に示されるポイントリストは、図５（Ｄ）に示されるポイントリストに変換される。
【００５４】
Ｓ４０５において、エッジ抽出部１５は、リンク順に従い、ポイントリストに記憶されたポイントの一つを取得する。取得されたポイントを、便宜上、現在のポイントと呼ぶ。
【００５５】
Ｓ４０６において、エッジ抽出部１５は、現在のポイントのＸ座標と、現在のポイントのリンク順で次のポイントのＸ座標とが等しいかを比較する。等しい場合はＳ４０７の処理が行われる。そうでない場合はＳ４１３の処理が行われる。
【００５６】
Ｓ４０７において、エッジ抽出部１５は、オブジェクトの輪郭を表現するパス間の距離を求める。具体的には、エッジ抽出部１５は、現在のポイントと次のポイントとのＹ座標の差分（Δ）を求める。このΔは、現在のポイントが属するエッジと次のポイントが属するエッジとの、あるＸ座標における距離である。言い換えれば２つのエッジ（線分パス）によって表されるオブジェクトの一部の、横方向の所定の位置における縦方向の幅が、Δによって表される。図５（Ｅ）は、図５（Ｂ）に示される各ポイント間の距離をΔで表した図である。
【００５７】
Ｓ４０８において、エッジ抽出部１５は、Ｓ４０７で求めた差分（Δ）が、閾値（最低保証線幅算出部１４によって算出された最低保証線幅（ｄ））未満であるかを判定する。差分（Δ）が閾値未満である場合、Ｓ４０９の処理が行われる。そうでない場合、Ｓ４１３の処理が行われる。
【００５８】
差分（Δ）が閾値（最低保証線幅（ｄ））未満である場合、オブジェクトの一部の縦方向の幅が最低保証線幅（ｄ）より小さいことになる。つまりＳ４０８の処理は、ラスタライズ処理によってオブジェクトの一部が消失する可能性があるかを判定している。
【００５９】
Ｓ４０９において、エッジ抽出部１５は、現在のポイントが属するエッジが既に抽出されたかを判定する。エッジが未抽出であればＳ４１２の処理が行われ、エッジが抽出済みであればＳ４１０の処理が行われる。なお、抽出されたエッジとは、そのエッジによって構成されるオブジェクトの一部の幅が閾値未満であることを示すエッジである。この判定は、エッジ抽出部１５が、図５（Ｆ）に示されるエッジリストを参照し、現在のポイントのエッジＩＤがエッジリストに存在するか否かによって行われる。このエッジリストは、オブジェクト別に管理され、エッジリストにエッジＩＤがあるとはすなわち、所定の方向の幅が閾値未満であるオブジェクトの一部を形成するエッジがあることを示す。
【００６０】
エッジリストにエッジＩＤがなければ、現在のポイントが属するエッジはまだ抽出されていないと判定され、そうでなければ現在のポイントが属するエッジは既に抽出されていると判定される。なお、このエッジリストは、エッジＩＤとともに、そのエッジＩＤに関連付けて最小差分距離（Ｄ）を記憶する。この最小差分距離（Ｄ）とは、エッジＩＤによって特定されるエッジと、その特定されるエッジよりも下にあるいずれかのエッジとの最近接する距離を示す。すなわち、この最小差分距離（Ｄ）は、オブジェクトの一部の縦方向の幅の最小値を示す。最小差分距離（Ｄ）は、後述のエッジ太らせ処理において用いられる。
【００６１】
Ｓ４１２において、エッジ抽出部１５は、現在のポイントのエッジＩＤをエッジリストに記憶するとともに、Ｓ４０７で求めた差分（Δ）をそのエッジＩＤと関連する最小差分距離（Ｄ）としてエッジリストに記憶する。そして処理はＳ４１３へ進む。
【００６２】
Ｓ４１０において、エッジ抽出部１５は、Ｓ４０７で求めた差分（Δ）が現在のポイントのエッジＩＤと関連付けられている最小差分距離（Ｄ）未満であるかを判定する。差分（Δ）が最小差分距離（Ｄ）未満である場合は、オブジェクトの一部の縦方向の幅の最小値が更新されたことになる。そこでＳ４１１においてエッジ抽出部１５は、エッジリストの最小差分距離（Ｄ）を差分（Δ）に更新する。一方、差分（Δ）最小差分距離（Ｄ）以上である場合は、最小差分距離の更新を行わずに処理がＳ４１３に進む。
【００６３】
Ｓ４１３において、エッジ抽出部１５は、ポイントリストに記憶されている全てのポイントについて処理を行ったか否かを判定する。全てのポイントの処理が完了したならば、図４のフローチャートの処理は終了する。そうでない場合は、Ｓ４０５の処理が行われる。
【００６４】
尚、上述Ｓ４０８の処理では、差分（Δ）が最低保証線幅（ｄ）未満であるか否かが判定されているが、他の判定でも良い。例えば、ＯＳ１５０によってラスタライズ解像度Ｍ［ｄｐｉ］（例えば縦６００ｄｐｉ）用に生成された描画コマンドからの点列データがＳ４０１で取得される。その後、ラスタライズ処理時に印刷解像度Ｎ（＜Ｍ）［ｄｐｉ］（例えば縦４００ｄｐｉ）に合わせた低解像度変換が行われるとする。この場合、上述のＳ４０８の処理に替えて、差分（Δ）が、１／Ｍ［ｉｎｃｈ］以上かつ最低保証線幅（ｄ＝１／Ｎ［ｉｎｃｈ］）未満であるかを判定する処理でも良い。すなわち、Ｓ４０９以降の処理を行う対象を、低解像度変換が仮になされなければ消失しなかったが、この低解像度変換を行ったがために消失してしまう部分とする。このようにＳ４０９以降の処理の対象を減らすことで、処理の演算回数を減らして高速化ができる。
【００６５】
＜エッジ太らせ処理＞
図６は、図５（Ａ）に示された点列データによって表現されるオブジェクトに対する、エッジ太らせ処理部１６が行うＳ８０４のエッジ太らせ処理の例を示す。エッジ太らせ処理で行いたいのは、オブジェクトの一部の輪郭を表現するパスの位置をずらすことで、オブジェクトのその一部の太さを太くすることである。
【００６６】
図６（Ａ）は、始点６０１（点Ｐ１）から終点６０２（点Ｐ２）まで接続するエッジ６０３（エッジ５０１）が、上述のエッジ抽出処理にて抽出された場合を示す。このエッジ６０３は、エッジ６１３（エッジ５０７）と共にオブジェクトの一部の輪郭を形成する。図６（Ａ）の例では、エッジリストに記憶されているエッジＩＤは「１」で、エッジＩＤ「１」に関連付けられている最小差分距離６０６はＤである。この場合、エッジ太らせ処理部１６は、点列データ（Ｐ１〜Ｐ８）を補正することで、エッジ６０３およびエッジ６１３で形成されるオブジェクトの一部の縦方向の幅を広げる。
【００６７】
図６（Ｂ）、（Ｃ）は、本実施例でのエッジ太らせ処理部１６による、点列データの補正の様子を示す。図６（Ｂ）は、エッジ太らせ処理部１６が、幅を広げるべきオブジェクトの一部に対応する点列（始点６０１（Ｐ１）、終点６０２（Ｐ２））に対応する新たな点６０８および６０９を追加することを示す。新たな点６０８の座標は、点６０１の座標を縦方向で上に距離６０７（最低保証線幅６０５（ｄ）から最小差分距離６０６（Ｄ）を引いた値）だけずらした座標である。同様に新たな点６０９は、点６０２の座標を縦方向の上に、（最低保証線幅６０５（ｄ）から最小差分距離６０６（Ｄ）を引いた値）だけずらした座標である。
【００６８】
そして、エッジ太らせ処理部１６は、図６（Ｃ）に示されるように、点６０１、６０２の接続順である点列を、点６０１、６０８、６０９、６０２の接続順となるように補正（変更）する。この接続順の補正により、オブジェクトの一部の輪郭が、点６０８から点６０９までを接続するエッジ６１８とエッジ６１３とで形成されるようになる。すなわちエッジ６０３が削除され、エッジ６１８が生成される。このエッジの削除および生成を、エッジ６０３を縦方向に所定量だけずらすと呼ぶ。その結果、エッジ６０３とエッジ６１３とで形成されていたオブジェクトの一部の縦方向の幅を所定量（ｄ−Ｄ）分広げることができる。
【００６９】
なお本実施例では、エッジ太らせ処理部１６が、オブジェクトの一部の縦方向の幅を最低保証線幅（ｄ）となるように、パス、すなわち点列を補正した。しかし、オブジェクトの一部の縦方向の幅を、少なくとも最低保証線幅（ｄ）以上とする補正であればよい。
【００７０】
また本実施例では、エッジ（線分パス）の両端点それぞれを縦方向にずらした位置に新たな２点を生成した。しかし一方の端点のみを縦方向にずらした位置に新たな１点を生成してその１点を経由するように一方の端点と他方の端点とを接続する点列を生成しても良い。この例を図６（Ｅ）に示す。図６（Ｅ）は、点６２１から点６２２を接続するエッジ６２３を示す。すなわちエッジ６２３は斜線であり、エッジ６２３とエッジ６２４との距離は、点６２１側で最低保証線幅６０５未満であって点６２２側で最低保証線幅以上である。このような条件を満たす場合に、点６２１から縦方向に最低保証線幅６０５だけずれた位置に点６２５を追加生成し、その点６２５を経由して点６２１から点６２２を接続する。すなわちエッジ太らせ処理部１６は、点６２５の追加後、接続順を点６２１、６２５、６２２と補正する。このように補正することで、エッジ６２６とエッジ６２４との距離は最低保証線幅以上が保たれ、オブジェクトの縮小後に行われるラスタライズによってオブジェクトの一部が消失することを防げる。そしてさらに、ラスタライズ後のオブジェクトの高さ（縦方向長さ）を点６２２側では保たれるので、オブジェクトの形状に元々のオブジェクトの形状を反映できるという効果がある。
【００７１】
上述のエッジ太らせ処理は、エッジ６０３に関して説明したが、１回のエッジ太らせ処理につき、１つのエッジに対応する点列が補正される。
【００７２】
以上説明したように、オブジェクトの幅を算出し、オブジェクトの一部の幅を広げるべきか否かをその算出された幅に基づいて判定し、広げるべき一部のみに幅を広げる処理を行うことができるので、不必要な補正を抑制することができる。
【００７３】
以上が本実施例でのプリンタドライバ１０で行われる処理の説明である。
【００７４】
なお、実施例の変形例として、プリンタドライバ１０で図７のフローチャートの処理を実行するのでなく、印刷装置２のコントローラ２１において図７のフローチャートの処理を実行しても良い。
【００７５】
（実施例２）
実施例１では、エッジ太らせ処理を、図６（Ａ）〜（Ｃ）を用いて説明したように、エッジを構成する点列を増やすことで実現した。しかし、点列を増やすとラスタライズ処理が複雑になる。そのため、本実施例では、点列を増やすのではなく、点列の点の座標を更新する。この結果が図６（Ｄ）に示される。すなわち、図６（Ｄ）に示されるように、点６０１の座標が、図６（Ｃ）の点６０８の座標に更新され、点６０２の座標が図６（Ｃ）の点６０９の座標に更新される。この更新によって点列データの点列数および接続順を変えずに、オブジェクトの一部の幅を広げることができる。
【００７６】
（その他の実施例）
以上の実施例１および２では、ラスタライズ処理に含まれる解像度変換処理前に、Ｓ７０５の補正処理が実行されていたが、この解像度変換処理後にＳ７０５の補正処理が実行されるようにしても良い。Ｓ７０５の補正処理を解像度変換処理後に実行する場合には、解像度変換処理後の点列データに対して、エッジ抽出処理およびエッジ太らせ処理を行ってから、補正処理後の点列データをラスタライズ解像度でラスタライズすればよい。なおこの場のエッジ抽出処理における最低保証線幅は１／（ラスタライズ解像度）となる。
【００７７】
また以上の実施例１および２は、点どうしを線分パス（エッジ）で接続する場合について説明していたが、本発明は、点どうしをベジエ曲線などの曲線パスで接続する場合にも適用できる。この場合には、曲線パスを直線近似することで複数の線分パスを生成し、各線分パスに対して上記実施例１および２と同様の処理を行えばよい。
【００７８】
また以上の実施例１および２の主題は、オブジェクトの一部の輪郭を表現するパスの位置を縦方向にずらすことで、縦方向のレイアウト処理および解像度変換処理に伴う、オブジェクトのその一部（横線部分）の消失を防ぐことであった。しかし、本発明は、横線部分の消失を防ぐことだけに限定されない。横方向のレイアウト処理および解像度変換処理に伴う、オブジェクトの一部（縦線部分）の消失を防ぐためにも適用できる。この縦線部分の消失を防ぐためには、以上の実施例で説明した縦方向に対する処理（縦方向のパス間の距離の算出処理およびパスの位置を縦方向にずらす処理）と同様の処理を、横方向に対しても行う。つまり、横方向のパス間の距離の算出処理、および、その算出結果に基づいてパスの位置を横方向にずらす処理を行えばよい。
【００７９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006541320.tif 000002
【図２】
0006541320.tif 000003
【図３】
0006541320.tif 000004
【図４】
0006541320.tif 000005
【図５】
0006541320.tif 000006
【図６】
0006541320.tif 000007
【図７】
0006541320.tif 000008
【図８】
0006541320.tif 000009
【図９】
0006541320.tif 000010