(57)【特許請求の範囲】
【請求項１】
画像描画命令を実行して出力画像を得るための画像形成装置において、
入力された印刷ジョブを解析して描画命令と描画命令のパラメータとなる描画データとを生成する命令解析手段と、
前記命令解析手段によって解析された描画命令に従って描画処理を行う描画手段と、
前記描画データを保存する描画データ保持手段と、
同心円状のグラデーション描画の際に前記描画手段より呼出され、前記描画データ保持手段に保持されたグラデーション情報をもとに、走査線が横切る描画領域の描画開始点の交点とグラデーションパターンの同心円の中心との距離を求めて同一の色が描画される前記同心円の中心からの刻み幅の累和と比較することで前記描画開始点での色値を求め、前記グラデーションパターンの前記同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる２つの同心円と前記走査線との交点の前記鉛直な直線からの距離の差から前記走査線上の次の色の変化点を求め、前記次の色の変化点での色値を先に求めた前記描画開始点での色値の次の順番の色値から求めるようにして描画領域を横切るすべての前記走査線に対してグラデーションパターンを展開するグラデーションパターン生成手段と、
を備えていることを特徴とする画像形成装置。
【請求項２】
前記グラデーションパターン生成手段は、前記鉛直な直線から前記色の変化点までの距離を前記同心円の半径の２乗から前記走査線と前記同心円の中心との距離の２乗を減じた値の平方根から求め、求めた前記色の変化点までの距離と前記同心円の中心の座標値とを用いて前記走査線上の色の変化点を求めるようにしたことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記グラデーションパターン生成手段は、１走査線の半分のグラデーションパターンを保持するラインバッファを有することを特徴とする請求項１記載の画像形成装置。
【請求項４】
画像描画命令を実行して同心円状のグラデーション出力画像を得るグラデーション描画方法において、
描画平面上での色の変化開始位置および変化範囲を示す情報と、前記変化開始位置と前記変化範囲の終点とにおける色値情報とで同心円状のグラデーション描画を表現するために必要なパラメータを取得し、
前記変化開始位置と前記変化範囲の終点とから同一の色が描画される刻み幅を算出し、
走査線上の描画図形の描画開始点とグラデーションパターンの同心円の中心との間の距離に相当する長さを算出し、
算出された長さから前記描画開始点がそれぞれ前記刻み幅の幅を有するドーナツ状領域の何番目に属しているかを計算し、
処理対象にしている交点から次に色が変わる交点までの前記走査線上の移動量を算出してグラデーションパターンに追加する処理を描画図形の描画終了点を越えるまで繰り返し行うこと、
を特徴とするグラデーション描画方法。
【請求項５】
前記移動量の算出は、前記グラデーションパターンの同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる２つの同心円と前記走査線との交点の前記鉛直な直線からの距離を求め、その差を前記走査線上での移動量とすることを特徴とする請求項４記載のグラデーション描画方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像形成装置およびグラデーション描画方法に関し、特に画像描画命令を実行して画像情報を形成する際に同心円状に徐々に変化する色を効率的に描画する画像形成装置およびグラデーション描画方法に関する。
【０００２】
【従来の技術】
計算機システムを用いた文書作成システムおよび文書印刷システムが高度化するに従い、そこで用いられる表現技術も高度なものになってきている。効果的なプレゼンテーションや立体の形状表現などの目的のためには、ある描画領域の色を徐々に変化させるグラデーションという技法が用いられている。
【０００３】
文書作成ソフトウェアでは様々なユーザインタフェースを用いてグラデーションの指定を行っているが、プリンタ側ではこれを印刷することが高い負荷となっている。これは、文書データを記述するためのページ記述言語にグラデーションを効率的に記述するための方法がないためである。このため、グラデーションを実現するには、ページ記述言語として、同じ形状で僅かに色の異なる領域を少しずつずらして重ねて描画する手続きで記述することになる。たとえば、同心円状に色が滑らかに変化していくようなグラデーションでは、大きな円を描画して塗りつぶしをし、次にその円に上書きする形で少し小さな円を描画して異なる色で塗りつぶしをするという処理を円の中心位置に来るまで何回も繰り返して行わなければならないので、ページ記述言語処理系がグラデーションパターンを生成する際には、繁雑な手続き実行が避けられず、どうしても処理負荷の高いものとなっている。
【０００４】
これに対し、プリンタ側でグラデーションを実現する方法が特開平８−７２３１７号公報に開示されている。この方法は、ページ記述言語の記法の一部としてグラデーション記述を導入し、これを解釈する際にはバックグラウンドとして展開したグラデーションパターンを描画対象図形の形状で切り取ることで、プリンタ内でのグラデーションを実現するものである。また、この方法においては、円周状グラデーションを描画するために微小なドーナツ状領域の境界をＤＤＡ（ディジタル・デファレンシャル・アルゴリズム）を用いて計算している。これは、ある走査線と交わる図形の交点が次の走査線ではどの位置に移動するかを計算するよく知られたアルゴリズムであり、これを用いて走査線との交点を先に全部計算し、交点間の塗りつぶし処理を行うようにしている。
【０００５】
【発明が解決しようとする課題】
しかし、特開平８−７２３１７号公報に開示された方法では、図形形状よりも大きなグラデーションパターンを一度展開しておいてから図形形状に沿って切り取るため、描画対象でない領域の色まで計算する必要があった。また、計算の進む方向がドーナツ状領域の境界の向きとなるため走査線上での塗りつぶし処理に適さず、独立した処理工程が必要であるという問題点があった。
【０００６】
本発明はこのような点に鑑みてなされたものであり、同心円状のグラデーション描画のための負荷を軽減した画像形成装置およびグラデーション描画方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明では上記問題を解決するために、画像描画命令を実行して出力画像を得るための画像形成装置において、入力された印刷ジョブを解析して描画命令と描画命令のパラメータとなる描画データとを生成する命令解析手段と、前記命令解析手段によって解析された描画命令に従って描画処理を行う描画手段と、前記描画データを保存する描画データ保持手段と、同心円状のグラデーション描画の際に前記描画手段より呼出され、前記描画データ保持手段に保持されたグラデーション情報をもとに、走査線が横切る描画領域の描画開始点の交点とグラデーションパターンの同心円の中心との距離を求めて同一の色が描画される前記同心円の中心からの刻み幅の累和と比較することで前記描画開始点での色値を求め、前記グラデーションパターンの前記同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる２つの同心円と前記走査線との交点の前記鉛直な直線からの距離の差から前記走査線上の次の色の変化点を求め、前記次の色の変化点での色値を先に求めた前記描画開始点での色値の次の順番の色値から求めるようにして描画領域を横切るすべての前記走査線に対してグラデーションパターンを展開するグラデーションパターン生成手段と、を備えていることを特徴とする画像形成装置が提供される。
【０００８】
このような画像形成装置によれば、命令解析手段により描画平面上の２点とそれぞれの点での色を指定したグラデーション描画のための描画データが解析され、描画データ保持手段に保存される。命令解析手段においてグラデーション描画のための描画命令が解析されると、描画手段に送られ、描画手段はグラデーションパターン生成手段を利用してグラデーションパターンを展開する。このとき、グラデーションパターン生成手段は描画データ保持手段を参照し、描画データによって指定された色と座標値とを基に走査線と描画領域の境界とが交わる位置での色を求め、更に次に色の変化する位置を求める操作を描画領域の端まで繰り返すことで、描画領域内で順に変化する色を表す画素の系列を求め、この処理を描画領域を横切る走査線すべてに適用することでグラデーションパターンを生成する。ここで、グラデーションパターンを構成する均一色の微小区間の形状は同心円状の形状とし、それぞれの微小区間の幅は必ずしも等しくなくてもよい。
【０００９】
また、本発明においては、画像描画命令を実行して同心円状のグラデーション出力画像を得るグラデーション描画方法において、描画平面上での色の変化開始位置および変化範囲を示す情報と、前記変化開始位置と前記変化範囲の終点とにおける色値情報とで同心円状のグラデーション描画を表現するために必要なパラメータを取得し、前記変化開始位置と前記変化範囲の終点とから同一の色が描画される刻み幅を算出し、走査線上の描画図形の描画開始点とグラデーションパターンの同心円の中心との間の距離に相当する長さを算出し、算出された長さから前記描画開始点がそれぞれ前記刻み幅の幅を有するドーナツ状領域の何番目に属しているかを計算し、処理対象にしている交点から次に色が変わる交点までの前記走査線上の移動量を算出してグラデーションパターンに追加する処理を描画図形の描画終了点を越えるまで繰り返し行うこと、を特徴とするグラデーション描画方法が提供される。
【００１０】
このグラデーション描画方法によれば、同心円状のグラデーション描画を表現するために必要なパラメータを基に走査線と同一の色で描画されるドーナツ状領域とが交差する位置から走査線上で塗りつぶしを行う描画範囲が求められ、これにより、通常の塗りつぶし処理と同じ方法でグラデーション描画が行われる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は本発明の画像生成装置の原理図である。本発明における画像生成装置は、入力された印刷ジョブを解析する命令解析手段１と、解析された描画命令に従って描画処理を行う描画手段２と、描画命令のパラメータとなる描画データを保存する描画データ保持手段３と、同心円状のグラデーションの描画命令に従って描画データ保持手段３に保持されたグラデーションを表現するのに必要なグラデーション情報をもとにグラデーションパターンを展開処理するグラデーションパターン展開手段４とから構成されている。
【００１２】
命令解析手段１にて解析され、描画データ保持手段３にて保存される描画データとする、同心円状のグラデーションを表現するのに必要なグラデーション情報は、色の変化方向に対応するベクトルの端点を表す２点と、その２点の位置での色の値と、単位グラデーションパターンの形状と、単位グラデーションパターン間の距離とからなっている。色の変化方向のベクトルの端点はその座標値で与えられ、描画領域に必ずしも含まれていなくてもよい。色の値はＲＧＢやＹＭＣＫなどの色空間での座標値とする。単位グラデーションパターンの形状は、色の変化方向を表すベクトルの向きに半径を持つ２つの同心円で囲まれたドーナツ状の形状とする。単位グラデーションパターン間の距離は、そのパターンを色の変化方向に配置する際の距離であり、一定の固定値を用いるか変動する値の系列が用いられる。
【００１３】
グラデーションパターン展開手段３は、グラデーション描画領域に含まれる走査線のそれぞれを走査し、走査線上の描画領域開始位置から描画領域終了位置までで色が変化する位置と色値との系列を求めることで、画素列または画素値のランレングス表現を生成する。
【００１４】
走査線上の描画開始位置での色値を求めるためには、同心円の中心と走査線上の描画開始位置とを結ぶ半径の長さを求めて単位グラデーションパターン間の距離と比較して、その点が属するドーナツ状領域を判定すればよい。単位グラデーションパターン間の距離が固定値の場合は、求めた半径の長さとその固定値の比を求めればどのドーナツ状領域に属する点であるかを容易に判定することができる。単位グラデーションパターン間の距離が変動する値の系列で与えられた場合でも、その累積値と半径の長さとを比較することで同様の結果を得ることができる。このときの色値は、初めに与えられた二つの色値の差を等分して得られる色値の増分を用いて容易に求めることができる。また、以降の走査線上での色の変化位置はドーナツ状領域の境界と走査線との交点であるが、これは次のようにして求められる。まず、単位グラデーションパターン間の距離から同心円の半径の系列を求め、次に同心円の中心と走査線との距離を求める。これは、走査線上の色の変化位置と同心円の中心を結ぶ半径と同心円の中心から鉛直方向に伸びる線分および走査線とから成る直角三角形の２辺の長さとなっている。ピタゴラスの定理を用いてこの直角三角形の残る１辺の長さを求めると、走査線上での色の変化位置までの距離が得られる。こうして求めた距離を順に加算していくことで走査線上の色の変化位置の系列を順に求めることができる。
【００１５】
以上のようにして生成したグラデーションパターンには、色値と色の変化位置の情報が含まれており、特別な方法を用いなくとも画素値の並びまたはランレングス形式を生成することができる。また、グラデーションパターンの生成過程でこのような形式のデータを直接生成してもよい。
【００１６】
次に、本発明の第１の実施の形態として、ネットワークに接続された印刷システムに適用された場合を例に詳細に説明する。
図２はネットワーク印刷システムの構成例を示す図である。文書作成ソフトウェアを有し作成された文書の印刷ジョブを発行する複数の、図示の例では２台のクライアント計算機１１ａ，１１ｂがネットワーク１２に接続されている。このネットワーク１２には、また、画像形成装置１３が接続されている。この画像形成装置１３は、ネットワーク１２に接続された命令解析部１３ａ、描画データ保持部１３ｂ、描画部１３ｃ、グラデーション生成部１３ｄおよびページバッファ１３ｅを備え、それぞれバス１３ｆによって相互に接続されている。ページバッファ１３ｅはプリントエンジン１４に接続されている。
【００１７】
クライアント計算機１１ａ，１１ｂで作成された印刷ジョブはネットワーク１２を介して命令解析部１３ａに送られる。命令解析部１３ａでは、受け取った印刷ジョブの内容を解釈し、描画データと描画命令とに分類する。描画データは、描画図形の形状データと色や線幅などの属性データとからなり、いずれも描画データ保持部１３ｂに蓄積される。また、グラデーションが指定されていればその情報も描画データ保持部１３ｂに蓄積される。命令解析部１３ａにおいて描画命令が検出されると、その描画命令は描画部１３ｃに送られる。描画部１３ｃでは送られた描画命令が描画データ保持部１３ｂに蓄積されている描画データを参照しながら描画を行う。このとき、参照された描画データは描画データ保持部１３ｂから削除される。また、描画データにグラデーションが指定されていれば、描画部１３ｃの機能の一部として設けられたグラデーション生成部１３ｄが描画データ保持部１３ｂの描画データを用いてグラデーションを生成する。グラデーションが指定されていない場合は、一般のページ記述言語処理系と同様に、描画部１３ｃにおいて描画処理が行われる。描画部１３ｃの描画結果はページバッファ１３ｅに送られ、１ページ分のデータが生成されると、プリントエンジン１４に送られて印刷される。
【００１８】
図３は画像形成装置の処理の流れを示すフローチャートである。まず、印刷ジョブが入力されると、命令解析部１３ａはページ記述言語の命令として解析する（ステップＳ１）。次に、その入力はページ終端を表しているかどうかが判断され（ステップＳ２）、ページ終端でなければ、次に、その入力は描画命令かどうかが判断される（ステップＳ３）。ここで、入力が描画命令でなければ、描画データと判断して、その入力を描画データ保持部１３ｂに保存する（ステップＳ４）。描画データはグラフィックス図形の形状を表す形状データの他に色や線幅などの属性データも含む。描画データを保存した後はステップＳ１に戻る。このようにして、保存動作が繰り返され、必要な描画データが描画データ保持部１３ｂに揃うと、次に、描画命令が入力される。描画命令には、グラフィックス図形の塗りつぶしを行う「ｆｉｌｌ」や輪郭描画を行う「ｓｔｒｏｋｅ」などがある。ステップＳ３で描画命令と判断されると、その描画命令は描画部１３ｃに送られ、保存された形状データおよび属性データの描画データを参照しながら描画部１３ｃにて塗りつぶしなどの描画処理が実行される（ステップＳ５）。描画処理の実行後はステップＳ１に戻る。このようにして、入力がページ終端まで描画処理が終了すると、描画処理された１ページ分のデータはページバッファ１３ｅからプリントエンジン１４に出力される（ステップＳ６）。
【００１９】
次に、具体的な命令を示して画像形成装置を更に詳細に説明する。
図４は画像形成装置に入力されるページ記述言語の例を示す図である。図４に示した記述例はポストスクリプト（アドビシステムズ社およびその子会社の各国での商標または登録商標）の文法に従って記述されたもので、まず、記述２１は色をＲＧＢ方式で表現したときの値を保存するよう指定している。記述２２は図形の形状を指定する記述であって、この例では、四角の図形を指定している。これらの記述２１，２２が描画データを構成し、これらの描画データに続いて描画命令の記述２３が指定される。この例では、描画命令は図形の塗りつぶしを行う「ｆｉｌｌ」が指定されている。このように記述されたページ記述言語が画像形成装置１３の命令解析部１３ａに入力されると、命令解析部１３ａは図５に示すような処理を行う。
【００２０】
図５は命令解析部の処理の流れを示すフローチャートである。図４に示すようなページ記述言語が入力されると、命令解析部１３ａは入力順に入力を解析し、入力を入力２１，２２，２３のような適当な単位に分割する（ステップＳ１１）。次に、入力はページ終端かどうかが判断され（ステップＳ１２）、ページ終端であれば、この命令解析部の処理は終了する。入力がページ終端でなければ、分割された単位の入力は描画命令かどうかが判断される（ステップＳ１３）。ここで、入力が描画命令でなければ、その入力は描画データ保持部１３ｂに転送され蓄積される（ステップＳ１４）。その後、ステップＳ１１に戻って、この描画データの蓄積が描画命令が来るまで繰り返される。入力が描画命令であれば、その入力は描画部１３ｃに転送される。
【００２１】
このようにして、描画データ保持部１３ｂは、命令解析部１３ａから与えられた描画データを保持し、命令実行時の描画部１３ｃの要求に応じて保持している描画データを渡す。また、描画データを描画部１３ｃに渡す際には描画データ保持部１３ｂで保持しているデータは保存しない。このため、描画部１３ｃが描画の際に描画データ保持部１３ｂのデータは消費しているように見える。
【００２２】
図６は描画部の一般的なグラフィックの処理の流れを示すフローチャートである。描画部１３ｃは、命令解析部１３ａから描画命令を受け取ると、その描画命令は輪郭描画を指示する「ｓｔｒｏｋｅ」命令かどうかが判断される（ステップＳ２１）。「ｓｔｒｏｋｅ」命令であれば、幅を持った線を描画することになるので、幅を持った線の外側と内側に該当する外周、内周の線を算出する（ステップＳ２２）。これにより、実際に塗りつぶしの処理を行うときの輪郭が計算され、輪郭描画命令が塗りつぶしの命令のときのデータと同じデータに変換することになる。次に、描画図形の形状データからその図形が横切る走査線の範囲を求めて、塗りつぶし処理の必要な走査線群を特定する（ステップＳ２３）。特定された走査線群から一つの走査線を選択し（ステップＳ２４）、次に、すべての走査線の処理が完了して未処理の走査線が選択されなかったかどうかが判断される（ステップＳ２５）。ここで、未処理の走査線が選択された場合は、その走査線に対して描画図形が横切っていて塗りつぶし処理の必要な範囲を特定する（ステップＳ２６）。描画範囲が特定されると、そのデータはページバッファ１３ｅに転送され、処理対象の走査線における描画図形の存在範囲に塗りつぶしの色情報が配置される。このとき、ページバッファが画素値の配列で構成されていればメモリ上に色の値を置き、ページバッファが画素値のランレングス形式であれば走査線上の図形の存在範囲からランの開始点とランの長さとを求めて色値とともにラン情報を形成して加えられる。その後、ステップＳ２４に戻り、この描画範囲特定処理をステップＳ２３で特定されたすべての走査線について繰り返し行う。ステップＳ２５にて、すべての走査線の処理が完了したと判断されるとこの処理は終了する。このように、輪郭描画を指示する「ｓｔｒｏｋｅ」命令が与えられた場合は、線幅情報を用いて線の内側と外側に相当する描画境界を算出し、しかる後に塗りつぶしを指示する「ｆｉｌｌ」命令が与えられたときと同様の処理が行われる。
【００２３】
グラデーションによる描画が指示された場合には、グラデーション生成部１３ｄが描画データ保持部１３ｂからグラデーションデータを受け取り、上述の描画部１３ｃの動作における走査線上での描画図形の存在範囲での塗りつぶし処理を行う。
【００２４】
グラデーションパターンの形状が同心円の場合の例を図７に示す。
図７は同心円のグラデーションパターン生成を説明する図である。図７では、描画図形３１の中に同心円状に色が変化するグラデーションを描画する場合を示している。ここで、同心円の中心から色が変化していく方向をグラデーションベクトルと呼び、符号３２で示してある。このグラデーションベクトル３２はベクトルの始点３２ａと終点３２ｂとの両端点の座標によって指定される。同心円の場合は方向に意味を持たないので、同心円の中心座標と半径の長さとによってグラデーションベクトル３２を指定してもよい。また、ここでは、グラデーションベクトル３２を便宜的に鉛直上向きとしたが、任意の向きのベクトルもその長さが分かればそのベクトルを回転処理することによって容易に鉛直上向きに変換することができる。グラデーションベクトル３２の始点３２ａおよび終点３２ｂの各々での色値をｃｓ  ，ｃｅ  とし、色値が変化するときの刻み幅をΔｃとする。Δｃは人間の知覚や使用する色空間の特徴および出力デバイスの色再現能力などを考慮して、色の変化が滑らかであると感じられる値を選べばよい。（ｃｓ  −ｃｅ  ）／Δｃを計算すれば、グラデーションベクトル３２の分割数Ｎが得られ、これとグラデーションベクトル３２の長さからグラデーションベクトル３２の刻み幅Δｇが求められる。この方法ではグラデーションベクトル３２の刻み幅Δｇはすべて同じになってしまうが、この幅をユーザが明示的に与えても構わない。
【００２５】
ここで、走査線３３に対して描画図形３１の中でそれぞれの色による塗りつぶし処理の範囲を特定する。走査線３３と描画図形３１との交点のうち、最も左側にある交点３４が描画開始点となり、最も右側にある交点３５が描画終了点となる。交点３４とグラデーションパターンの同心円の中心（始点３２ａ）との距離を求めて刻み幅Δｇと比較すれば、描画開始点の交点３４が何番目の同心円に属するかを示す値ｎが求まり、これによって交点３４での色値が計算される。走査線３３上の次の色の変化点は次の同心円３６と走査線３３との交点３７であるが、これは同心円３６の半径の２乗から走査線３３と同心円の中心（始点３２ａ）との距離の２乗を減じた値の平方根と同心円の中心（３２ａ）の座標値を用いて容易に求めることができ、その位置での色値は先に求めた交点３４での色値から次の順番の色値が求められる。また、他の同心円との交点の座標も同様にして求められ、この計算を描画終了点である交点３５を越えるまで繰り返すことで、走査線３３に対するグラデーションパターンを生成する。
【００２６】
次に、グラデーション生成部１３ｄで行われる上記のような各走査線上での描画範囲特定処理の流れについて説明する。
図８はグラデーション生成部での処理の流れを示すフローチャートである。まず、グラデーションベクトル３２の刻み幅Δｇを算出する（ステップＳ３１）。この刻み幅Δｇはユーザによって明示的に指定されるか、システムによって計算された値でもよい。次に、描画開始点での同心円の半径の大きさ、すなわち、走査線３３における描画開始点の交点３４とグラデーションベクトル３２の始点３２ａとの間の距離に相当する長さが算出される（ステップＳ３２）。算出された長さを基に、描画開始点が何番目のドーナツ状領域に属しているかが計算され、それによってその位置での色値が求められる（ステップＳ３３）。次は、今、処理対象にしている交点から次に色が変わる交点までの走査線３３上の距離、すなわち、移動量が算出される（ステップＳ３４）。算出されたこの移動量は、走査線３３上の描画開始点と描画終了点との間における色の変化点間の距離情報として、グラデーションパターンに追加される（ステップＳ３５）。次に、処理対象の走査線３３上で移動量の算出が描画終了点を越えたかどうかが判断され（ステップＳ３６）、描画領域の走査が終了していなければ、ステップＳ３４に戻り、次に色が変わる交点までの移動量の算出が続けられる。ここで、ステップＳ３４に戻るのは、グラデーション処理では、色は順番に変わっているという前提があるので、次に描画すべき色はあらかじめ分かっているので、交点の属するドーナツ状領域の判定はやらず、移動量の算出だけを描画領域が終了するまで行うことにしている。ステップＳ３６の判断にて、処理対象の走査線３３上での描画領域内の移動量の算出が終了したなら、次は、あらかじめ特定されていた描画図形３１と交わる走査線群すべてについて処理が終了したかどうかが判断され（ステップＳ３７）、まだ処理が終了していない走査線があれば、ステップＳ３２に戻って、次の走査線における描画開始点と同心円の中心との間の距離の算出から始められ、すべての走査線に対する処理が終わると、この処理は終了する。
【００２７】
こうして生成されたグラデーションパターンはページバッファ１３ｅに蓄積され、印刷が指示されるとプリントエンジン１４に送られて印刷される。
次に、以上の処理を図９に示す入力に適用した場合の画像形成装置の動作について説明する。
【００２８】
図９は画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。図９において、二重の不等号で括った部分の記述４１がグラデーションを記述するために必要なパラメータを与える記述であり、「ｓｅｔｇｒａｄ」なる記述４２でグラデーションを指定している。記述４１において、「ＧＴｙｐｅ」では同心円状のグラデーションであることを「ｃｉｒｃｌｅ」で指定し、「ＳｔａｒｔＰｏｉｎｔ」でグラデーションベクトルの始点の座標が（２９０，１１０）、「ＥｎｄＰｏｉｎｔ」で終点の座標が（２９０，２１０）、「ＳｔａｒｔＣｏｌｏｒ」および「ＥｎｄＣｏｌｏｒ」でそれぞれの点でのＲＧＢの色値が（１．０，０，０），（０，１．０，０）であることを指定している。なお、「ＧＳｔｅｐ」は刻み幅の指定であるが、ここでは、特に指定していないので、システムでの計算によって与えられる。記述４３は描画図形の形状を指示する部分であり、座標（２００，２００）を左上の頂点とし、幅１００、高さ１００の四角形となる描画図形形状を与えている。続いて、塗りつぶしを指示する描画命令の記述４４が与えられている。
【００２９】
入力された記述４１〜４３は命令解析部１３ａによって解析され、描画データ保持部１３ｂに送られて保持される。続いて、塗りつぶしの描画命令の記述４４が検出されると、これは描画部１３ｃに送られる。描画部１３ｃでは、描画データ保持部１３ｂに保持された描画図形形状データおよび描画属性データを参照して、描画処理を行う。ここでは帯状のグラデーションによる塗りつぶしが指示されているので、グラデーション生成部１３ｄを起動してグラデーションによる塗りつぶしを行う。グラデーション生成部１３ｄは、上述の描画図形形状データおよび描画属性データを受け取り、図８で説明したアルゴリズムに従って各走査線に対するグラデーションパターンを生成する。上記の記述に従って描画される様子を図１０に示す。
【００３０】
図１０はグラデーション指定の記述が入力されたときの描画の説明図である。図１０において、記述４１によって指定されたグラデーションベクトル５１の始点の座標（２９０，１１０）が同心円の中心であり、これを中心として半径方向に色が変化していく。描画図形５２は記述４３によって指定された座標（２００，２００）を左上の頂点とする、一辺が１００の正方形である。ここで、たとえばｙ＝１４０の位置の走査線５３に対しては、描画開始点が（２００，１４０）となり、これとグラデーションベクトル５１の始点（２９０，１１０）とが成すベクトルは（−９０，３０）となる。グラデーションベクトルの分割数を１０、刻み幅を１０とすれば、この描画開始点は１０番目の帯領域に属することが分かり、この描画開始点での色値は（０，１．０，０）となる。
【００３１】
走査線５３上での次の色の変化点５４は走査線５３と半径が９０の同心円５５との交点である。この変化点５４と同心円の中心とを結ぶ線分を斜辺とし、走査線５３およびグラデーションベクトル５１を直角をはさむ２辺とする直角三角形を考えると、変化点５４とグラデーションベクトル５１との間の距離は（９０２  −３０２  ）１／２  ＝６０（２）１／２  となり、したがって、この変化点５４のｘ座標は２９０−６０（２）１／２  となる。また、描画開始点から変化点５４までの距離は９０−６０（２）１／２  となる。同様にして、半径が８０の同心円５６と走査線５３との交点である変化点５７の座標は２９０−１０（５５）１／２  、先程求めた変化点５４からの距離は６０（２）１／２  −１０（５５）１／２  となる。これに続く色の変化点は、上述の操作を繰り返すことで次々に求められる。この処理を各々の走査線に対して行うことで、描画図形内部のグラデーションパターンが生成され、ページバッファ１３ｅに蓄積される。印刷指示が与えられると、ページバッファ１３ｅの内容はプリントエンジン１４に送られ印刷される。
【００３２】
以上に示した方法を用いれば、グラデーションを表現するために同じ図形を繰り返し描画する必要がなく、また、グラデーションパターンの展開も描画対象領域内だけにとどめることができるため、グラデーションを高速に描画することができる。
【００３３】
次に、本発明の第２の実施の形態として、同じくネットワーク印刷システムに適用された場合を例に詳細に説明する。
図１１はネットワーク印刷システムの構成例を示す図である。図１１に示したネットワーク印刷システムによれば、図２に示したネットワーク印刷システムの画像形成装置１３におけるグラデーション生成部１３ｄの内部に１ライン分のラインバッファ１３ｇを備えている。
【００３４】
画像形成装置１３はネットワーク１２を介してクライアント計算機１１ａ，１１ｂと接続されている。クライアント計算機１１ａ，１１ｂで作成された印刷ジョブはネットワーク１２を介して命令解析部１３ａに送られる。命令解析部１３ａでは、受け取った印刷ジョブの内容を解釈し、描画データと描画命令とに分類する。描画データは、描画図形の形状データと色や線幅などの属性データとから成り、いずれも描画データ保持部１３ｂに蓄積される。また、グラデーションが指定されていればその情報も描画データ保持部１３ｂに蓄積される。命令解析部１３ａで描画命令が検出されると、描画部１３ｃは描画を行うが、このとき描画データ保持部１３ｂに蓄積された描画データを消費する。
【００３５】
また、描画命令のパラメータとしてグラデーションが指定されていれば、描画部１３ｃの機能の一部として設けられたグラデーション生成部１３ｄが描画データ保持部１３ｂの情報を用いてグラデーションを生成するが、このときグラデーション生成部１３ｄは内部に１ライン分のラインバッファ１３ｇを持ち、このラインバッファ１３ｇにグラデーションパターンのうちｘ座標が同心円の中心と同じになる部分を保持しておく。また、グラデーションが指定されていない場合は一般のページ記述言語処理系と同様の描画を行う。描画部１３ｃの描画結果はページバッファ１３ｅに送られ、１ページ分の処理が終わると、プリントエンジン１４に送られて印刷される。
【００３６】
グラデーション生成部１３ｄ以外の部分の動作および処理アルゴリズムは第１の実施の形態の場合と同様であるため、それらの説明は省略する。
グラデーション生成部１３ｄにグラデーション生成が指示され、ある走査線に対する処理が開始されると、グラデーションパターンが順に生成される。生成されるグラデーションパターンのうちｘ座標が同心円の中心と同じになる部分までをグラデーション生成部１３ｄの内部に設けられたラインバッファ１３ｇに保持する。これは、同心円のグラデーションパターンのうち左半分をラインバッファ１３ｇに保存しておく動作に当たる。しかる後に、更に次の色の変化点までの距離を求める必要がある場合には、ラインバッファ１３ｇの内容を逆順に調べて利用し、グラデーションパターンを生成する。
【００３７】
次に、以上の処理を図１２に示す入力に適用した場合の画像形成装置の動作について説明する。
図１２は画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。図１２において、記述６１はグラデーションを記述するために必要なパラメータを与える部分であり、グラデーションベクトルの始点の座標が（２９０，１１０）、終点の座標が（２９０，２１０）、それぞれの点での色が（１．０，０，０），（０，１．０，０）、となる同心円状のグラデーションを与えている。記述６２はグラデーションを指定している。また、記述６３は、座標（２４０，２００）を左上の頂点とし、幅１００、高さ１００の四角形となる描画図形形状を与えている。これらの記述６１〜６３は命令解析部１３ａによって解析され、描画データ保持部１３ｂに送られて保持される。
【００３８】
続いて、塗りつぶしを指示する描画命令の記述６４が検出されると、これは描画部１３ｃに送られる。描画部１３ｃでは、描画データ保持部１３ｂに保持された描画図形形状データおよび描画属性データを参照して、描画処理を行う。ここでは同心円状のグラデーションによる塗りつぶしが指示されているので、グラデーション生成部１３ｄを起動して描画範囲特定処理、すなわち、グラデーションによる塗りつぶしの処理を行う。グラデーション生成部１３ｄは、上述の描画図形形状データおよび描画属性データを受け取り、先に説明したアルゴリズムに従って各走査線に対するグラデーションパターンを生成する。上記の記述に従って描画される様子を図１３に示す。
【００３９】
図１３はグラデーション指定の記述が入力されたときの描画の説明図である。図１３において、記述６１によって指定されたグラデーションベクトル７１の始点の座標（２９０，１１０）が同心円の中心であり、これを中心として半径方向に色が変化していく。描画図形７２は記述６３によって指定された座標（２４０，２００）を左上の頂点とする、一辺が１００の正方形である。ここで、たとえばｙ＝１４０の位置の走査線７３に対しては、描画開始点が（２４０，１４０）となり、これとグラデーションベクトル７１の始点（２９０，１１０）とが成すベクトルは（−５０，３０）となる。グラデーションベクトルの分割数を１０、刻み幅を１０とすれば、この描画開始点は６番目の帯領域に属することが分かり、この描画開始点での色値は（０．４，０．６，０）となる。
【００４０】
走査線７３上での次の色の変化点７４は走査線７３と半径が５０の同心円７５との交点である。この変化点７４と同心円の中心とを結ぶ線分を斜辺とし、走査線７３およびグラデーションベクトル７１を直角をはさむ２辺とする直角三角形を考えると、変化点７４とグラデーションベクトル７１との間の距離は（５０２  −３０２  ）１／２  ＝４０となり、この変化点７４のｘ座標は２５０となる。また、描画開始点から変化点７４までの距離は１０となる。このとき、ラインバッファ１３ｇには、変化点とグラデーションベクトル７１との距離である４０が保存される。次の同心円に対しても同様の処理を行うと、半径が４０の同心円７６と走査線７３との交点の座標は２９０−１０（７）１／２  、先程求めた変化点７４からの距離は５０−１０（７）１／２  となる。ここでも、同様に交点とグラデーションベクトル７１との距離である１０（７）１／２  がラインバッファ１３ｇに保存される。これに続く色の変化点のうちグラデーションベクトル７１の位置ｘ＝２９０までは、上述の操作を繰り返すことで次々に求められ、ラインバッファ１３ｇに保存される。
【００４１】
図１４はラインバッファへの距離データの格納例を示す図である。ラインバッファ１３ｇには、走査線７３上の交点とグラデーションベクトル７１との間の距離が計算されるたびに順に格納される。図１３の例では、ｙ座標位置が１４０の走査線７３での色の変化点を求めた場合、走査線７３上の交点とグラデーションベクトル７１との間の距離として「４０」、「１０（７）１／２  」の二つのデータ８１，８２が順次計算され、この順序でラインバッファ１３ｇに格納される。図１３の例では、走査線７３と同心円７６との交点の次の色の変化点はグラデーションベクトル７１の位置になっているので、距離のデータとしては二つのデータ８１，８２が格納された時点で距離の計算は終了している。グラデーションベクトルの位置ｘ＝２９０を越えた部分での交点の座標は、ラインバッファ１３ｇの内容を逆順にたどり、その値を順に加えることで次々に得られる。
【００４２】
この処理を各々の走査線に対して行うことで、描画図形内部のグラデーションパターンが生成され、ページバッファ１３ｅに蓄積される。印刷指示が与えられると、ページバッファ１３ｅの内容はプリントエンジン１４に送られ、印刷される。
【００４３】
この方法を用いれば、同じパターンの繰り返しに関する計算を避けることができるため、グラデーションパターンを高速に生成することができる。
【００４４】
【発明の効果】
以上説明したように本発明では、描画データとして描画平面上の２点とそれぞれの点での色値とが同心円状のグラデーション描画のためのパラメータになり、このパラメータから計算されるドーナツ状領域と走査線とを比較することで、走査線上の色の変化位置を簡単に求めることが可能となり、微小区間の塗りつぶしを繰り返す必要がないため、グラデーション描画の負荷が大幅に軽減される。また、処理が走査線方向に進むため、通常の塗りつぶし処理の特別な場合として実現可能である。
【図面の簡単な説明】
【図１】本発明の画像生成装置の原理図である。
【図２】ネットワーク印刷システムの構成例を示す図である。
【図３】画像形成装置の処理の流れを示すフローチャートである。
【図４】画像形成装置に入力されるページ記述言語の例を示す図である。
【図５】命令解析部の処理の流れを示すフローチャートである。
【図６】描画部の一般的なグラフィックの処理の流れを示すフローチャートである。
【図７】同心円のグラデーションパターン生成を説明する図である。
【図８】グラデーション生成部での処理の流れを示すフローチャートである。
【図９】画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。
【図１０】グラデーション指定の記述が入力されたときの描画の説明図である。
【図１１】ネットワーク印刷システムの構成例を示す図である。
【図１２】画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。
【図１３】グラデーション指定の記述が入力されたときの描画の説明図である。
【図１４】ラインバッファへの距離データの格納例を示す図である。
【符号の説明】
１  命令解析手段
２  描画手段
３  描画データ保持手段
４  グラデーションパターン展開手段
１１ａ，１１ｂ  クライアント計算機
１２  ネットワーク
１３  画像形成装置
１３ａ  命令解析部
１３ｂ  描画データ保持部
１３ｃ  描画部
１３ｄ  グラデーション生成部
１３ｅ  ページバッファ
１３ｆ  バス
１３ｇ  ラインバッファ
１４  プリントエンジン
【図１】
0003606006.tif 000002
【図２】
0003606006.tif 000003
【図３】
0003606006.tif 000004
【図４】
0003606006.tif 000005
【図５】
0003606006.tif 000006
【図６】
0003606006.tif 000007
【図７】
0003606006.tif 000008
【図８】
0003606006.tif 000009
【図９】
0003606006.tif 000010
【図１０】
0003606006.tif 000011
【図１１】
0003606006.tif 000012
【図１２】
0003606006.tif 000013
【図１３】
0003606006.tif 000014
【図１４】
0003606006.tif 000015