(57)【特許請求の範囲】
【請求項１】
曲線を線分で置き換えてベクタ画像をビットマップ画像へ変換するコンピュータソフトウェアによる画像処理方法であって、
（ａ）変換対象のベクタ画像の描画命令を解釈するステップと、
（ｂ）前記ステップ（ａ）で前回解釈した描画命令と前記ステップ（ａ）で今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するという接続点形状付加条件が成立したか否かを判定するステップと、
（ｃ）前記ステップ（ｂ）で前記接続点形状付加条件が成立したと判定したときには、前記接続点から前記円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側が該延長方向に略直交する辺を有する多角形である接続点形状を前記接続点に付加するステップと、
を含む画像処理方法。
【請求項２】
前記ステップ（ｃ）では、前記接続点における２つの円弧の線幅と同じ幅の矩形を前記接続点形状として付加する、請求項１に記載の画像処理方法。
【請求項３】
請求項１又は２に記載の画像処理方法であって、
（ｄ）前記ステップ（ａ）で前回解釈した描画命令の終点と前記ステップ（ａ）で今回解釈した描画命令の始点とが連結点で一致し、かつ、前記ステップ（ｂ）において前記接続点形状付加条件が成立しなかった場合、該連結点においてマイター接続処理を実行するステップを含む、画像処理方法。
【請求項４】
請求項１〜３のいずれか１項に記載の画像処理方法であって、
（ｅ）前記ステップ（ａ）で解釈した描画命令の内容に基づいてビットマップ画像を描画するステップ、を含む、画像処理方法。
【請求項５】
前記ステップ（ａ）では、印刷用のベクタ画像の描画命令を解釈し、
前記ステップ（ｅ）では、前記接続点形状付加条件が成立したときには、前記接続点形状を前記接続点に付加して印刷用のビットマップ画像を描画する、請求項４に記載の画像処理方法。
【請求項６】
前記ステップ（ｂ）では、前記ステップ（ａ）で前回解釈した描画命令と前記ステップ（ａ）で今回解釈した描画命令とが共に円弧を描画する描画命令であるか否かを判定し、その後、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令である場合には、該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するか否かを判定する一方、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令でない場合には、該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するか否かを判定しない、請求項１〜５のいずれか１項に記載の画像処理方法。
【請求項７】
請求項１〜６のいずれか１項に記載の画像処理方法の各ステップを１又は複数のコンピュータに実行させるためのプログラム。
【請求項８】
曲線を線分で置き換えてベクタ画像をビットマップ画像へ変換する画像処理装置であって、
変換対象のベクタ画像の描画命令を解釈する命令解釈手段と、
前記命令解釈手段によって前回解釈された描画命令と今回解釈された描画命令とが共に円弧を描画する描画命令であり且つ該前回解釈された描画命令の終点と該今回解釈された描画命令の始点とが接続点で一致すると共に該前回解釈された描画命令の中心点と該今回解釈された描画命令の中心点とを結ぶ直線上に該接続点が存在するという接続点形状付加条件が成立したか否かを判定する判定手段と、
前記判定手段によって前記接続点形状付加条件が成立したと判定されたときには、前記接続点から前記円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側が該延長方向に略直交する辺を有する多角形である接続点形状を前記接続点に付加する形状付加手段と、
を備えた画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、そのプログラム及び画像処理装置に関する。
【背景技術】
【０００２】
従来、画像処理方法としては、文字／図形の描画を実行する描画命令や、線幅・接続形状・端点形状等の線属性や色などを設定する描画状態命令等を含む描画データから、電子写真方式を用いたカラーページプリンタが画像を印字、出力可能な出力画像データへと変換するものが提案されている（例えば、特許文献１参照）。この特許文献１に記載された画像処理方法では、曲線を複数の線分で近似し、各線分を設定された線幅を有する矩形としたときの、その曲線の外側に対応する線分をそれぞれ交わるまで延長するいわゆるマイター接続を行う。
【特許文献１】特開２００２−１５３２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１の画像変換方法では、例えば、２つの円弧が連続し理論的にはその接点での各円弧の接線同士が全く同一の直線となるように接する場合であっても、各線分が長くなって、２つの円弧のその接点での線分同士が平行にならない場合がある。そして、この場合にマイター接続を行うと本来なるべき形状とならない場合があった。
【０００４】
本発明は、上述した課題に鑑みなされたものであり、ベクタ画像からビットマップ画像へと変換するに際してより意図する画像を生成することができる画像処理方法、そのプログラム及び画像処理装置を提供することを主目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上述の目的を達成するために以下の手段を採った。
【０００６】
本発明の画像処理方法は、
曲線を線分で置き換えてベクタ画像をビットマップ画像へ変換するコンピュータソフトウェアによる画像処理方法であって、
（ａ）変換対象のベクタ画像の描画命令を解釈するステップと、
（ｂ）前記ステップ（ａ）で前回解釈した描画命令と前記ステップ（ａ）で今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するという接続点形状付加条件が成立したか否かを判定するステップと、
（ｃ）前記ステップ（ｂ）で前記接続点形状付加条件が成立したと判定したときには、前記接続点から前記円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側が該延長方向に略直交する辺を有する多角形である接続点形状を前記接続点に付加するステップと、
を含むものである。
【０００７】
この画像処理方法では、前回解釈した変換対象のベクタ画像の描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回解釈した描画命令の終点と今回解釈した描画命令の始点とが接続点で一致すると共に前回解釈した描画命令の中心点と今回解釈した描画命令の中心点とを結ぶ直線上に接続点が存在するという接続点形状付加条件が成立したときには、接続点から円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側がこの延長方向に略直交する辺を有する多角形である接続点形状を付加する。ここで、円弧と円弧とが接続する接続点を有するベクタ画像を複数の矩形で置き換えてビットマップ画像に変換する際に、その接続点において、本来は前の円弧とあとの円弧との接線が一致する、即ち接続点から先端側の線分の形状が直角の矩形状になるはずであるが、置き換える矩形のサイズや接続点の位置によっては、接続点で接線方向に対して傾きが生じた線分になることがあり、このような場合、接続点が意図しないような形状になることがある。ここでは、接続点形状付加条件が成立したときに接続点から延長方向に接続点形状を付加するから、意図しない形状になるのを防止可能である。したがって、ベクタ画像からビットマップ画像へと変換するに際してより意図する画像を生成することができる。また、接続点形状付加条件が成立したか否かを判定すればよいため、置き換える矩形をより細かくして円弧を描画するものや、描画命令を解釈し置き換える矩形の方向を計算して円弧の接線を求めこの接線に基づいて接続点形状を付加するか否かを判定するものなどに比して、より容易に意図する画像を生成することができる。ここで、「所定の接続長さ」とは、円弧の接続点に付加しても違和感を感じない範囲の長さとしてもよいし、マイターリミット長としてもよい。
【０００８】
本発明の画像処理方法において、前記ステップ（ｃ）では、前記接続点における２つの円弧の線幅と同じ幅の矩形を前記接続点形状として付加するものとしてもよい。こうすれば、接続点の先端を本来なるべき矩形状とするため、一層意図する画像を生成することができる。
【０００９】
本発明の画像処理方法は、（ｄ）前記ステップ（ａ）で前回解釈した描画命令の終点と前記ステップ（ａ）で今回解釈した描画命令の始点とが連結点で一致し、かつ、前記ステップ（ｂ）において前記接続点形状付加条件が成立しなかった場合、該連結点においてマイター接続処理を実行するステップを含むものとしてもよい。こうすれば、接続点形状付加条件が成立し、マイター接続を行うと先端が尖った形状となるような場合に、先端が尖らない意図する画像を生成することができる。このとき、前記ステップ（ｃ）では、マイター接続処理を実行しないものとしてもよい。
【００１０】
本発明の画像処理方法は、（ｅ）前記ステップ（ａ）で解釈した描画命令の内容に基づいてビットマップ画像を描画するステップ、を含むものとしてもよい。このとき、前記ステップ（ａ）では、印刷用のベクタ画像の描画命令を解釈し、前記ステップ（ｅ）では、前記接続点形状付加条件が成立したときには、接続点形状を前記接続点に付加して印刷用のビットマップ画像を描画するものとしてもよい。印刷に際しては一度ビットマップ画像にする必要のある場合が多いため本発明を適用する意義が高い。
【００１１】
本発明の画像処理方法は、前記ステップ（ｂ）では、前記ステップ（ａ）で前回解釈した描画命令と前記ステップ（ａ）で今回解釈した描画命令とが共に円弧を描画する描画命令であるか否かを判定し、その後、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令である場合には、該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するか否かを判定する一方、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令でない場合には、該前回解釈した描画命令の終点と該今回解釈した描画命令の始点とが接続点で一致すると共に該前回解釈した描画命令の中心点と該今回解釈した描画命令の中心点とを結ぶ直線上に該接続点が存在するか否かを判定しないものとしてもよい。こうすれば、必要のない判定処理を行わずに済むため、処理効率を良くすることができる。
【００１２】
本発明のプログラムは、上述した画像処理方法の各ステップを１又は複数のコンピュータに実行させるためのものである。このプログラムは、コンピュータが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピュータに実行させるか複数のコンピュータに分散して実行させれば、上述した画像処理方法の各ステップが実行されるため、上述した画像処理方法と同様の作用効果が得られる。
【００１３】
本発明の画像処理装置は、
曲線を線分で置き換えてベクタ画像をビットマップ画像へ変換する画像処理装置であって、
変換対象のベクタ画像の描画命令を解釈する命令解釈手段と、
前記命令解釈手段によって前回解釈された描画命令と今回解釈された描画命令とが共に円弧を描画する描画命令であり且つ該前回解釈された描画命令の終点と該今回解釈された描画命令の始点とが接続点で一致すると共に該前回解釈された描画命令の中心点と該今回解釈された描画命令の中心点とを結ぶ直線上に該接続点が存在するという接続点形状付加条件が成立したか否かを判定する判定手段と、
前記判定手段によって前記接続点形状付加条件が成立したと判定されたときには、前記接続点から前記円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側が該延長方向に略直交する辺を有する多角形である接続点形状を前記接続点に付加する形状付加手段と、
を備えたものである。
【００１４】
この画像処理装置では、前回解釈した変換対象のベクタ画像の描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回解釈した描画命令の終点と今回解釈した描画命令の始点とが接続点で一致すると共に前回解釈した描画命令の中心点と今回解釈した描画命令の中心点とを結ぶ直線上に接続点が存在するという接続点形状付加条件が成立したときには、接続点から円弧を延長するような延長方向に所定の接続長さ以内で且つ先端側がこの延長方向に略直交する辺を有する多角形である接続点形状を付加する。ここで、円弧と円弧とが接続する接続点を有するベクタ画像を複数の矩形で置き換えてビットマップ画像に変換する際に、その接続点において、本来は前の円弧とあとの円弧との接線が一致する、即ち接続点から先端側の線分の形状が直角の矩形状になるはずであるが、置き換える矩形のサイズや接続点の位置によっては、接続点で接線方向に対して傾きが生じた線分になることがあり、このような場合、接続点が意図しないような形状になることがある。ここでは、接続点形状付加条件が成立したときに接続点から延長方向に接続点形状を付加するから、意図しない形状になるのを防止可能である。したがって、ベクタ画像からビットマップ画像へと変換するに際してより意図する画像を生成することができる。また、接続点形状付加条件が成立したか否かを判定すればよいため、置き換える矩形をより細かくして円弧を描画するものや、描画命令を解釈し置き換える矩形の方向を計算して円弧の接線を求めこの接線に基づいて接続点形状を付加するか否かを判定するものなどに比して、より容易に意図する画像を生成することができる。
【００１５】
本発明の画像処理装置は、前記命令解釈手段が解釈した前記描画命令を記憶する命令記憶手段と、前記接続点形状を記憶する形状記憶手段と、を備え、前記判定手段は、前記記憶手段に記憶された前回の描画命令を読み出して前記接続点形状付加条件が成立したか否かを判定し、前記形状付加手段は、前記接続点形状付加条件が成立したと判定されたときには、前記形状記憶手段に記憶された接続点形状を読み出し、該読み出した接続点形状を前記接続点に付加するものとしてもよい。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態を図面を用いて説明する。図１は、本発明を具現化した一実施形態であるプリンタ２０の構成の概略を示す構成図である。プリンタ２０は、装置全体の制御を司るコントローラ２１と、携帯用の記憶媒体であるメモリカード１２をスロット２５ａに装着・取外し可能であるリーダライタ２５と、記録紙Ｓへ画像を印刷処理する印刷機構２６と、接続された外部機器（例えばＰＣ）との間で情報の入出力が可能なインタフェース（Ｉ／Ｆ）２８と、ユーザへ情報を表示可能でありユーザの指示を入力可能である操作パネル３０と、を備えている。コントローラ２１やリーダライタ２５、印刷機構２６、Ｉ／Ｆ２８、操作パネル３０は、バス２９によって電気的に接続されている。コントローラ２１は、ＣＰＵ２２を中心とするマイクロプロセッサとして構成されており、情報を記憶消去可能であり各種処理プログラムを記憶したフラッシュＲＯＭ２３と、一時的にデータを記憶するＲＡＭ２４とを備えている。フラッシュＲＯＭ２３には、詳しくは後述するが予め決められた図形である接続点形状が記憶されている。また、ＲＡＭ２４には、Ｉ／Ｆ２８を介して入力した印刷ジョブなどのファイルを一時的に記憶する図示しない受信バッファが設けられている。印刷機構２６は、図示しないが、各色のインクに圧力をかけ、この加圧されたインクを記録紙Ｓに吐出して印刷処理を実行するインクジェット方式の機構である。なお、インクへ圧力をかける機構は、圧電素子の変形によるものとしてもよいしヒータの熱による気泡の発生によるものとしてもよい。操作パネル３０は、ユーザがプリンタ２０に対して各種の指示を入力するためのデバイスであり、各種の指示に応じた文字や画像が表示されるカラー液晶パネルにより構成された表示部３２や、各種操作を行う操作部３４が設けられている。メモリカード１２は、データの書き込み及び消去可能な不揮発性のメモリであり、デジタルカメラなどの撮影装置により撮影された複数の画像ファイルなどが保存されている。
【００１７】
こうして構成されたプリンタ２０は、メモリカード１２から読み取るか又はＩ／Ｆ２８を介して受信した印刷指令されたベクタ画像をビットマップ画像に変換して印刷する機能を有している。このベクタ画像は、主として描画命令により画像を表現している。また、ベクタ画像をビットマップ画像に変換するに際して、描画命令が円弧や円など曲線を描画する命令であるときには、その曲線を複数の線分で置き換え、即ち、線幅を考慮すれば複数の矩形で置き換える機能を有している。また、前回の描画命令の終点と今回の描画命令の始点とが連結点で一致する場合のその連結点の部分をマイター接続する機能を有している。ここで、矩形の中心を通り線幅方向と直角の方向を成し２つの端点が矩形の辺上にある線分を中心線とすると、マイター接続は、２つの矩形を角度をもって中心線同士を連結するときに、各中心線の方向と平行な方向のそれら２つの矩形の外側の辺をそれぞれ交わるまで延長して囲まれた部分を塗り潰したような連結点の部分の形状とする接続処理である。なお、曲線を矩形で置き換えたときの各矩形の交わる部分についてもマイター接続するものとする。
【００１８】
ここで、受信バッファに一時的に記憶されるベクタ画像ファイルについて説明する。図２は、ベクタ画像ファイル４０に含まれる複数の描画命令の一例を示す説明図である。図示しているのは、各描画に共通する描画補助情報４１とベクタ画像ファイル４０に含まれる複数の描画命令のうち１つの連なった線を描く描画命令群４２の一例である。この他にも、領域を塗り潰す描画命令や、他の線を描く描画命令などがあるが、ここでは、図示した描画命令群についてのみ説明する。この描画命令群には、各描画に共通する描画補助情報４１として、線幅や線色などの情報があり、ここでは、「線幅」として５ポイント、「線色」として黒色が指定されている。描画命令群４２の各描画命令は、描画の順を示すインデックス（図では「描画１」、「描画２」、「描画３」、「描画ｎ」など）や、描画の種類を表す「描画タイプ」、描画位置等を表す「座標情報」、円弧や円の「半径」、円弧を右回りに描くか左回りに描くかのパラメータなどを含んでいる。「描画タイプ」は、円弧を描画する「Ａｒｃ」や、線分を描画する「Ｌｉｎｅ」、円を描画する「Ｃｉｒｃｌｅ」などがある。また、「座標情報」は、描画タイプに応じた座標情報が含まれている。「描画タイプ」が「Ａｒｃ」の場合は、描画する円弧の中心点の座標（Ｘｃ，Ｙｃ）や、描画の始点の座標（Ｘｓ，Ｙｓ）、描画の終点の座標（Ｘｅ，Ｙｅ）などが含まれる。また、「描画タイプ」が「Ｌｉｎｅ」の場合は、描画する線分の始点の座標（Ｘｓ，Ｙｓ）や、終点の座標（Ｘｅ，Ｙｅ）等が含まれる。更に、「描画タイプ」が「Ｃｉｒｃｌｅ」の場合は、描画する円の始点の座標（Ｘｓ，Ｙｓ）や、中心点の座標（Ｘｃ，Ｙｃ）が含まれる。ここでは、描画１は、「描画タイプ」が「Ａｒｃ」であって、始点が点ＳＰ１（ｘ１，ｙ１）、終点が点ＥＰ１（ｘ２，ｘ２）、中心点が点ＣＰ１（ｘ３，ｙ３）、半径ｒ１で右回りに描画する描画命令である。また、描画２は、「描画タイプ」が「Ａｒｃ」であって、始点が描画１の終点ＥＰ１と同じ点ＳＰ２（ｘ２，ｙ２）、終点が点ＥＰ２（ｘ４，ｘ４）、中心点が点ＣＰ２（ｘ５，ｙ５）、半径ｒ２で右回りに描画する描画命令である。描画３は、「描画タイプ」が「Ｌｉｎｅ」であって、始点が描画２の終点ＥＰ２と同じ点ＳＰ３（ｘ４，ｙ４）から終点の点ＥＰ３（ｘ６，ｘ６）へと描画する描画命令である。描画ｎは、「描画タイプ」が「Ｌｉｎｅ」であって、始点の点ＳＰｎ（ｘｐ，ｙｐ）から終点の点ＥＰｎ（ｘｑ，ｘｑ）へと描画する描画命令である。このように前回の描画命令の終点の座標（Ｘｅ，Ｙｅ）と今回の描画命令の始点の座標（Ｘｓ，Ｙｓ）が等しいことによりこの描画命令群は１つの連なった線を描く描画命令群となっている。なお、このようなベクタ画像ファイルとしては、例えば、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）ファイル等がある。
【００１９】
次に、こうして構成された本実施形態のプリンタ２０の動作、特に、ベクタ画像である画像ファイルに基づいて印刷を実行するときの動作について説明する。図３は、コントローラ２１のＣＰＵ２２により実行される印刷処理ルーチンの一例を示すフローチャートである。このルーチンはフラッシュＲＯＭ２３に記憶されている。また、このルーチンはＣＰＵ２２により所定時間毎（例えば数ｍｓ毎）に繰り返し実行される。このルーチンが実行されるとＣＰＵ２２はまず、ＲＡＭ２３の図示しない受信バッファにファイルが記憶されているか否かを判定する（ステップＳ１００）。何もファイルが記憶されていないときには本ルーチンを終了する。ファイルが記憶されているときには、その記憶されているファイルがベクタ画像のファイルか否かを判定する（ステップＳ１１０）。ベクタ画像のファイルか否かは、例えば、ベクタ画像ファイルとしてＸＰＳファイルを扱うものとすれば、そのファイルの拡張子が「ｘｐｓ」であるか否かによって判定するものとした。ベクタ画像のファイルでないときには、その画像ファイルの印刷処理を実行し（ステップＳ１３０）、本ルーチンを終了する。ここで、印刷処理は、例えばＰＣの印刷ドライバによって変換されたその画像ファイルが圧縮されている場合であれば解凍し、ビットマップデータへと変換し、そのビットマップデータから印刷機構２６の図示しない印刷ヘッドを駆動する信号へと変換したあと、その信号を用いて印刷機構２６を駆動してインクを記録紙Ｓへと吐出させる処理である。一方、ステップＳ１２０でベクタ画像ファイルであると判定したときには、画像変換処理を実行してビットマップデータへと変換し（ステップＳ１４０）、ステップＳ１３０で変換後のビットマップデータに基づいて印刷処理を実行して本ルーチンを終了する。
【００２０】
ここで、画像変換処理について説明する。図４は、画像変換処理のうちの線を変換する画像変換処理を実行する画像変換処理ルーチンの一例を表すフローチャートである。このルーチンはフラッシュＲＯＭ２３に記憶されている。このルーチンが実行されると、ＣＰＵ２２はまず、ベクタ画像ファイルの描画命令を１つ解釈する（ステップＳ２００）。つまり、既述したような、描画命令に含まれている「描画タイプ」や「座標情報」をベクタ画像ファイルから読み出す。次に円弧を描く命令か否かを判定する（ステップＳ２１０）。描画命令が円弧を描く命令か否かは、「描画タイプ」が「Ａｒｃ」であるか否かによって判定するものとする。円弧を描く命令でないときには、円弧以以外の曲線であればその曲線を複数の線分で置き換える（ステップＳ２２０）。実際には、線を描く描画命令には線幅が設定されているために矩形で置き換える。ここでは、幅がＬＷで長さがＬＬの複数の矩形で置き換えるものとし、この幅ＬＷは線を描く描画命令に含まれる情報である「線幅」と同じ値とする。例えば、図２に示した描画命令群の場合は、５ポイントに設定する。また、長さＬＬは処理速度の許容できる範囲で経験的に求めた値に設定するものとする。そして、前回解釈した描画命令による描画（以下、前回の描画という）の終点と今回解釈した描画命令による描画（以下、今回の描画という）の始点とが連結点で一致するか否かを判定する（ステップＳ２３０）。前回の描画の終点と今回の描画の始点とが連結点で一致しないときには、印刷用のビットマップ画像の描画を実行する（ステップＳ２５０）。即ち、描画命令に含まれる「描画タイプ」や「座標情報」などにしたがって、その描画命令で描かれる描画をビットマップ画像の描画へと変換する。そして、今回解釈した描画命令をＲＡＭ２４に記憶し（ステップＳ２６０）、次の描画命令があるか否かを判定する（ステップＳ２７０）。次の描画命令があるときには、ステップＳ２００以降の処理を実行する。一方、ステップＳ２３０で前回の描画の終点と今回の描画の始点とが連結点で一致すると判定したときには、前回の描画と今回の描画との連結点について既述したようなマイター接続処理を実行し（ステップＳ２４０）、ステップＳ２５０以降の処理を実行してビットマップ画像の描画へと変換する。このように、つながった線を一筆書きで描画するような複数の描画命令のうちの今回解釈した描画命令が円弧でない場合、その描画命令と前回の描画命令間ではその複数の描画の連結点をマイター接続処理するのである。なお、今回の描画が描画命令群の最初の描画命令の場合には、前回の描画がないのでマイター接続処理を実行しないものとする。
【００２１】
一方、ステップＳ２１０で円弧を描く命令であると判定したときには、ＣＰＵ２２は、ＲＡＭ２４に記憶されている前回解釈した描画命令を参照して前回解釈した描画命令が円弧を描く描画命令であるか否かを判定し（ステップＳ２８０）、前回解釈した描画命令が円弧を描く描画命令でないときには、ステップＳ２２０以降の処理を実行する。また、前回解釈した描画命令が円弧を描く描画命令であるときには、前回の描画と今回の描画とが所定の位置関係にあるか否かを、ＲＡＭ２４に記憶されている前回の描画の円弧の情報と今回の描画の円弧の情報とから判定する（ステップＳ２９０）。ここで、所定の位置関係とは、前回の描画の終点と今回の描画の始点とが一致し、その点を接続点とすると前回の描画の円弧の中心点と今回の描画の円弧の中心点とを結んだ直線上にその接続点が存在するような位置関係である。前回の描画と今回の描画とが所定の位置関係にない時には、ステップＳ２２０以降の処理を実行する。一方、前回の描画と今回の描画とが所定の位置関係にあるときには、曲線を複数の線分（幅ＬＷ、長さＬＬの矩形）で置き換え（ステップＳ３００）、接続点形状を付加して（ステップＳ３１０）、ステップＳ２５０以降の処理を実行してビットマップ画像の描画へと変換する。なお、２つの円弧の接続点以外の、円弧を置き換えた矩形の連結点については、既述したようなマイター接続処理を行う。そして、ステップＳ２７０で次の描画命令がないと判定したときには本ルーチンを終了する。
【００２２】
ここで、ステップＳ３１０で付加する接続点形状は、既述したようにフラッシュＲＯＭ２３に記憶されている。この接続点形状について図５を用いて説明する。図５は、図２に例示した描画命令群のうちの２つの描画命令（描画１，描画２）からビットマップ画像の描画へと変換するときの接続点形状を付加する様子の説明図である。図５（ａ）に示すように、これら２つの円弧は、所定の位置関係にあるものとする。つまり、前回の描画（描画１）は、中心点がＣＰ１、始点がＳＰ１、終点がＥＰ１、半径がｒ１及び右回りに描画する円弧であり、今回の描画（描画２）は、中心点がＣＰ２、始点がＳＰ２、終点がＥＰ２、半径がｒ２及び右回りに描画する円弧であり、描画１の終点ＥＰ１と描画２の始点ＳＰ２とが一致し、２つの中心点ＣＰ１，ＣＰ２を結ぶ直線上に描画１の終点ＥＰ１と描画２の始点ＳＰ２とが存在している。これを複数の矩形で置き換えると図５（ｂ）に示すように、例えば線幅が幅ＬＷで長さがＬＬの、それぞれ６個の矩形による描画となる。ここで、本来は、この接続点（終点ＥＰ１，始点ＳＰ２）での両円弧の接線はそれぞれ平行（同一）であるはずであり、その円弧を置き換えた矩形のその接続点から先端側の形状は直角の矩形状となるべきである。ところが、円弧と円弧とが連続する上述の条件が成立する場合には、図示したように、接続点を含む矩形はそれぞれ角度を持って交わることになり、既述したマイター接続を、これら２つの円弧の接続点について適用すると、マイター接続した形状の先端までの長さが事前に設定されたマイターリミット長ＬＭを超えない場合には先が尖った様な形状となる（図５（ｃ）参照）。よって、本実施形態では、このような場合には、マイター接続を行わずに、本来なるべき形状である矩形の接続点形状を付加するのである（図５（ｄ）参照）。この付加する矩形は、図示するように、円弧の線幅即ち矩形の幅ＬＷと同じ幅で且つマイターリミット長ＬＭ以内の長さの矩形である。
【００２３】
このように、変換対象のベクタ画像ファイルに含まれる描画命令のうち前記解釈した描画命令と今回解釈した描画命令とが共に円弧を描画する命令であり且つ２つの円弧が所定の位置関係にあるときには、その２つの円弧の接続点をマイター接続処理するかわりに本来なるべき形状である矩形の接続点形状を付加するのである。
【００２４】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の図４の画像変換処理ルーチンのステップＳ２００の処理が本発明のステップ（ａ）に相当し、ステップＳ２１０、Ｓ２８０、Ｓ２９０の処理がステップ（ｂ）に相当し、ステップＳ３１０の処理がステップ（ｃ）に相当する。また、ステップＳ２３０及びステップＳ２４０がステップ（ｄ）に相当し、ステップＳ２５０がステップ（ｅ）に相当し、プリンタ２０が画像処理装置に相当し、コントローラ２１が命令解釈手段、判定手段及び形状付加手段に相当し、ＲＡＭ２４が命令記憶手段に相当し、フラッシュＲＯＭ２３が形状記憶手段に相当する。
【００２５】
以上詳述した本実施形態のプリンタ２０によれば、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあるときには、接続点から円弧を延長するような延長方向にマイターリミット長ＬＭ以内で先端側がこの延長方向に直交する辺を有する形状である矩形の接続点形状を付加する。ここで、円弧と円弧とが接続する接続点を有するベクタ画像ファイルを複数の矩形（線分）で置き換えてビットマップ画像に変換する際に、その接続点において、本来は前の円弧とあとの円弧との接線が一致する、即ち接続点から先端側の線分の形状が直角の矩形状になるはずであるが、置き換える矩形のサイズや接続点の位置によっては、接続点で接線方向に対して傾きが生じた線分になることがあり、このような場合、マイター接続を行うと図５（ｃ）に示したように意図しない形状になることがある。ここでは、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあるときには、接続点から延長方向に接続点形状としての矩形を付加するから、意図しない形状になるのを防止可能である。したがって、ベクタ画像からビットマップ画像へと変換するに際してより意図する画像を生成することができる。また、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあるか否かを判定すればよいため、置き換える矩形をより細かくして円弧を描画するものや、描画命令を解釈し置き換える矩形の方向を計算して円弧の接線を求めこの接線に基づいて接続点形状としての矩形を付加するか否かを判定するものなどに比して、より容易に意図するビットマップ画像を生成することができる。
【００２６】
また、接続点の先端を本来なるべき矩形状とするため、一層意図する画像を生成することができる。更に、前回解釈した描画命令の終点と今回解釈した描画命令の始点とが連結点で一致し、且つ、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とのいずれか一方が円弧を描画する描画命令でないか又は前回の描画と今回の描画とが所定の位置関係にないときには、その連結点においてマイター接続処理を実行し、前回解釈した描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあるときには、マイター接続を行う代わりに矩形の接続点形状を付加するから、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあり、マイター接続を行うと先端が尖った形状となるような場合に、先端が尖らない意図する画像を生成することができる。そして更に、印刷用のベクタ画像の描画命令を解釈し、前回解釈した変換対象のベクタ画像ファイルに含まれる描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であり且つ所定の位置関係にあるときには、接続点形状の矩形を接続点に付加して印刷用のビットマップ画像を描画するから、印刷に際しては一度ビットマップ画像にする必要がある場合が多いため本発明を適用する意義が高い。そして更にまた、前回解釈した描画命令と今回解釈した描画命令とが共に円弧を描画する描画命令であるか否かを判定し、その後、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令である場合には、前回の描画と今回の描画とが所定の位置関係にあるか否かを判定する一方、前回解釈した描画命令及び今回解釈した描画命令が共に円弧を描画する描画命令でない場合には、前回の描画と今回の描画とが所定の位置関係にあるか否かを判定しないから、必要のない判定処理を行わずに済むため、処理効率を良くすることができる。
【００２７】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００２８】
例えば、上述した実施形態では、図５（ｄ）に示したような幅ＬＷの矩形を接続点形状としたが、接続点から円弧を延長するような延長方向にマイターリミット長ＬＭ以内で且つ先端側がその延長方向に略直交する辺を有する多角形であれば幅ＬＷの矩形に限られない。例えば、幅ＬＷ以外の幅の矩形を接続点形状としてもよい。あるいは、図６に示すような台形を接続点形状としてもよい。図示するようにこの台形は円弧の延長方向に対して先端側の辺がより短くマイターリミット長ＬＭよりも短い形状である。これらの場合でも、先端が尖らない意図する画像を生成することができる。
【００２９】
上述した実施形態では、接続点形状としての矩形は、その円弧を延長する方向の長さがマイターリミット長ＬＭ以内であるものとしたが、違和感を感じない範囲の長さであれば、マイターリミット長ＬＭを超えてもよい。
【００３０】
上述した実施形態では、図４の画像変換処理ルーチンのステップＳ２８０で前回解釈した描画命令が円弧を描く描画命令ではないと判定したときには、前回の描画と今回の描画とが所定の位置関係にあるか否かを判定するステップＳ２９０の処理を実行しないものとしたが、前回解釈した描画命令が円弧を描く描画命令ではないときでもステップＳ２９０と同様の処理を実行するものとしてもよい。例えば、ステップＳ２８０の処理の直前に、前回解釈した描画命令が円弧を描く描画命令であり且つ前回の描画と今回の描画とが所定の位置関係にあるという接続点形状付加条件が成立しているか否かを判定し、接続点形状付加条件が成立しているときにはステップＳ３００以降の処理を実行し、接続点形状付加条件が成立していないときにはステップＳ２２０以降の処理を実行するものとしてもよい。
【００３１】
上述した実施形態では、図４に示した画像変換処理ルーチンを実行しベクタ画像をビットマップ画像の描画へと変換するプリンタ２０として説明したが、前回の描画及び今回の描画の描画命令から接続点形状を付加するか否かを判定するものであれば、ベクタ画像からビットマップ画像の描画へと変換するものに限られない。例えば、ベクタ画像からビットマップ画像へと変換する画像処理プログラムにあとから組み込む、前回の描画及び今回の描画の描画命令から接続点形状を付加するか否かを判定するモジュールとしてもよい。
【００３２】
上述した実施形態では、画像処理装置をプリンタ２０に適用した例を示したが、ベクタ画像をビットマップ画像に変換するものであれば、プリンタ２０以外のものに適用してもよい。例えば、電極材や色材などの材料を溶解した液体や同材料を分散した液状体（分散液）を吐出する印刷装置に適用してもよい。あるいは、画像処理を行うコンピュータや、ＦＡＸ、スキャナ、複合機、フォトストレージビューワなどに適用してもよい。
【図面の簡単な説明】
【００３３】
【図１】プリンタ２０の概略構成を示す構成図。
【図２】ベクタ画像ファイル４０に含まれる描画命令の一部の説明図。
【図３】印刷処理ルーチンの一例を示すフローチャート。
【図４】画像変換処理ルーチンの一例を示すフローチャート。
【図５】円弧の描画命令が連続し接続点形状を付加する様子を説明する説明図。
【図６】他の接続点形状の説明図。
【符号の説明】
【００３４】
１２  メモリカード、２０  プリンタ、２１  コントローラ、２２  ＣＰＵ、２３  フラッシュＲＯＭ、２４  ＲＡＭ、２５  カードリーダライタ、２５  カードスロット、２６  印刷機構、２８  インタフェース（Ｉ／Ｆ）、２９  バス、３０  操作パネル、３２  表示部、３４  操作部、４０  ベクタ画像ファイル、４１  描画補助情報、４２  描画命令群。
【図１】
0004946776.tif 000002
【図２】
0004946776.tif 000003
【図３】
0004946776.tif 000004
【図４】
0004946776.tif 000005
【図５】
0004946776.tif 000006
【図６】
0004946776.tif 000007