JP3606006B2 - 画像形成装置およびグラデーション描画方法 - Google Patents
画像形成装置およびグラデーション描画方法 Download PDFInfo
- Publication number
- JP3606006B2 JP3606006B2 JP18471497A JP18471497A JP3606006B2 JP 3606006 B2 JP3606006 B2 JP 3606006B2 JP 18471497 A JP18471497 A JP 18471497A JP 18471497 A JP18471497 A JP 18471497A JP 3606006 B2 JP3606006 B2 JP 3606006B2
- Authority
- JP
- Japan
- Prior art keywords
- gradation
- scanning line
- color
- concentric
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は画像形成装置およびグラデーション描画方法に関し、特に画像描画命令を実行して画像情報を形成する際に同心円状に徐々に変化する色を効率的に描画する画像形成装置およびグラデーション描画方法に関する。
【0002】
【従来の技術】
計算機システムを用いた文書作成システムおよび文書印刷システムが高度化するに従い、そこで用いられる表現技術も高度なものになってきている。効果的なプレゼンテーションや立体の形状表現などの目的のためには、ある描画領域の色を徐々に変化させるグラデーションという技法が用いられている。
【0003】
文書作成ソフトウェアでは様々なユーザインタフェースを用いてグラデーションの指定を行っているが、プリンタ側ではこれを印刷することが高い負荷となっている。これは、文書データを記述するためのページ記述言語にグラデーションを効率的に記述するための方法がないためである。このため、グラデーションを実現するには、ページ記述言語として、同じ形状で僅かに色の異なる領域を少しずつずらして重ねて描画する手続きで記述することになる。たとえば、同心円状に色が滑らかに変化していくようなグラデーションでは、大きな円を描画して塗りつぶしをし、次にその円に上書きする形で少し小さな円を描画して異なる色で塗りつぶしをするという処理を円の中心位置に来るまで何回も繰り返して行わなければならないので、ページ記述言語処理系がグラデーションパターンを生成する際には、繁雑な手続き実行が避けられず、どうしても処理負荷の高いものとなっている。
【0004】
これに対し、プリンタ側でグラデーションを実現する方法が特開平8−72317号公報に開示されている。この方法は、ページ記述言語の記法の一部としてグラデーション記述を導入し、これを解釈する際にはバックグラウンドとして展開したグラデーションパターンを描画対象図形の形状で切り取ることで、プリンタ内でのグラデーションを実現するものである。また、この方法においては、円周状グラデーションを描画するために微小なドーナツ状領域の境界をDDA(ディジタル・デファレンシャル・アルゴリズム)を用いて計算している。これは、ある走査線と交わる図形の交点が次の走査線ではどの位置に移動するかを計算するよく知られたアルゴリズムであり、これを用いて走査線との交点を先に全部計算し、交点間の塗りつぶし処理を行うようにしている。
【0005】
【発明が解決しようとする課題】
しかし、特開平8−72317号公報に開示された方法では、図形形状よりも大きなグラデーションパターンを一度展開しておいてから図形形状に沿って切り取るため、描画対象でない領域の色まで計算する必要があった。また、計算の進む方向がドーナツ状領域の境界の向きとなるため走査線上での塗りつぶし処理に適さず、独立した処理工程が必要であるという問題点があった。
【0006】
本発明はこのような点に鑑みてなされたものであり、同心円状のグラデーション描画のための負荷を軽減した画像形成装置およびグラデーション描画方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明では上記問題を解決するために、画像描画命令を実行して出力画像を得るための画像形成装置において、入力された印刷ジョブを解析して描画命令と描画命令のパラメータとなる描画データとを生成する命令解析手段と、前記命令解析手段によって解析された描画命令に従って描画処理を行う描画手段と、前記描画データを保存する描画データ保持手段と、同心円状のグラデーション描画の際に前記描画手段より呼出され、前記描画データ保持手段に保持されたグラデーション情報をもとに、走査線が横切る描画領域の描画開始点の交点とグラデーションパターンの同心円の中心との距離を求めて同一の色が描画される前記同心円の中心からの刻み幅の累和と比較することで前記描画開始点での色値を求め、前記グラデーションパターンの前記同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる2つの同心円と前記走査線との交点の前記鉛直な直線からの距離の差から前記走査線上の次の色の変化点を求め、前記次の色の変化点での色値を先に求めた前記描画開始点での色値の次の順番の色値から求めるようにして描画領域を横切るすべての前記走査線に対してグラデーションパターンを展開するグラデーションパターン生成手段と、を備えていることを特徴とする画像形成装置が提供される。
【0008】
このような画像形成装置によれば、命令解析手段により描画平面上の2点とそれぞれの点での色を指定したグラデーション描画のための描画データが解析され、描画データ保持手段に保存される。命令解析手段においてグラデーション描画のための描画命令が解析されると、描画手段に送られ、描画手段はグラデーションパターン生成手段を利用してグラデーションパターンを展開する。このとき、グラデーションパターン生成手段は描画データ保持手段を参照し、描画データによって指定された色と座標値とを基に走査線と描画領域の境界とが交わる位置での色を求め、更に次に色の変化する位置を求める操作を描画領域の端まで繰り返すことで、描画領域内で順に変化する色を表す画素の系列を求め、この処理を描画領域を横切る走査線すべてに適用することでグラデーションパターンを生成する。ここで、グラデーションパターンを構成する均一色の微小区間の形状は同心円状の形状とし、それぞれの微小区間の幅は必ずしも等しくなくてもよい。
【0009】
また、本発明においては、画像描画命令を実行して同心円状のグラデーション出力画像を得るグラデーション描画方法において、描画平面上での色の変化開始位置および変化範囲を示す情報と、前記変化開始位置と前記変化範囲の終点とにおける色値情報とで同心円状のグラデーション描画を表現するために必要なパラメータを取得し、前記変化開始位置と前記変化範囲の終点とから同一の色が描画される刻み幅を算出し、走査線上の描画図形の描画開始点とグラデーションパターンの同心円の中心との間の距離に相当する長さを算出し、算出された長さから前記描画開始点がそれぞれ前記刻み幅の幅を有するドーナツ状領域の何番目に属しているかを計算し、処理対象にしている交点から次に色が変わる交点までの前記走査線上の移動量を算出してグラデーションパターンに追加する処理を描画図形の描画終了点を越えるまで繰り返し行うこと、を特徴とするグラデーション描画方法が提供される。
【0010】
このグラデーション描画方法によれば、同心円状のグラデーション描画を表現するために必要なパラメータを基に走査線と同一の色で描画されるドーナツ状領域とが交差する位置から走査線上で塗りつぶしを行う描画範囲が求められ、これにより、通常の塗りつぶし処理と同じ方法でグラデーション描画が行われる。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は本発明の画像生成装置の原理図である。本発明における画像生成装置は、入力された印刷ジョブを解析する命令解析手段1と、解析された描画命令に従って描画処理を行う描画手段2と、描画命令のパラメータとなる描画データを保存する描画データ保持手段3と、同心円状のグラデーションの描画命令に従って描画データ保持手段3に保持されたグラデーションを表現するのに必要なグラデーション情報をもとにグラデーションパターンを展開処理するグラデーションパターン展開手段4とから構成されている。
【0012】
命令解析手段1にて解析され、描画データ保持手段3にて保存される描画データとする、同心円状のグラデーションを表現するのに必要なグラデーション情報は、色の変化方向に対応するベクトルの端点を表す2点と、その2点の位置での色の値と、単位グラデーションパターンの形状と、単位グラデーションパターン間の距離とからなっている。色の変化方向のベクトルの端点はその座標値で与えられ、描画領域に必ずしも含まれていなくてもよい。色の値はRGBやYMCKなどの色空間での座標値とする。単位グラデーションパターンの形状は、色の変化方向を表すベクトルの向きに半径を持つ2つの同心円で囲まれたドーナツ状の形状とする。単位グラデーションパターン間の距離は、そのパターンを色の変化方向に配置する際の距離であり、一定の固定値を用いるか変動する値の系列が用いられる。
【0013】
グラデーションパターン展開手段3は、グラデーション描画領域に含まれる走査線のそれぞれを走査し、走査線上の描画領域開始位置から描画領域終了位置までで色が変化する位置と色値との系列を求めることで、画素列または画素値のランレングス表現を生成する。
【0014】
走査線上の描画開始位置での色値を求めるためには、同心円の中心と走査線上の描画開始位置とを結ぶ半径の長さを求めて単位グラデーションパターン間の距離と比較して、その点が属するドーナツ状領域を判定すればよい。単位グラデーションパターン間の距離が固定値の場合は、求めた半径の長さとその固定値の比を求めればどのドーナツ状領域に属する点であるかを容易に判定することができる。単位グラデーションパターン間の距離が変動する値の系列で与えられた場合でも、その累積値と半径の長さとを比較することで同様の結果を得ることができる。このときの色値は、初めに与えられた二つの色値の差を等分して得られる色値の増分を用いて容易に求めることができる。また、以降の走査線上での色の変化位置はドーナツ状領域の境界と走査線との交点であるが、これは次のようにして求められる。まず、単位グラデーションパターン間の距離から同心円の半径の系列を求め、次に同心円の中心と走査線との距離を求める。これは、走査線上の色の変化位置と同心円の中心を結ぶ半径と同心円の中心から鉛直方向に伸びる線分および走査線とから成る直角三角形の2辺の長さとなっている。ピタゴラスの定理を用いてこの直角三角形の残る1辺の長さを求めると、走査線上での色の変化位置までの距離が得られる。こうして求めた距離を順に加算していくことで走査線上の色の変化位置の系列を順に求めることができる。
【0015】
以上のようにして生成したグラデーションパターンには、色値と色の変化位置の情報が含まれており、特別な方法を用いなくとも画素値の並びまたはランレングス形式を生成することができる。また、グラデーションパターンの生成過程でこのような形式のデータを直接生成してもよい。
【0016】
次に、本発明の第1の実施の形態として、ネットワークに接続された印刷システムに適用された場合を例に詳細に説明する。
図2はネットワーク印刷システムの構成例を示す図である。文書作成ソフトウェアを有し作成された文書の印刷ジョブを発行する複数の、図示の例では2台のクライアント計算機11a,11bがネットワーク12に接続されている。このネットワーク12には、また、画像形成装置13が接続されている。この画像形成装置13は、ネットワーク12に接続された命令解析部13a、描画データ保持部13b、描画部13c、グラデーション生成部13dおよびページバッファ13eを備え、それぞれバス13fによって相互に接続されている。ページバッファ13eはプリントエンジン14に接続されている。
【0017】
クライアント計算機11a,11bで作成された印刷ジョブはネットワーク12を介して命令解析部13aに送られる。命令解析部13aでは、受け取った印刷ジョブの内容を解釈し、描画データと描画命令とに分類する。描画データは、描画図形の形状データと色や線幅などの属性データとからなり、いずれも描画データ保持部13bに蓄積される。また、グラデーションが指定されていればその情報も描画データ保持部13bに蓄積される。命令解析部13aにおいて描画命令が検出されると、その描画命令は描画部13cに送られる。描画部13cでは送られた描画命令が描画データ保持部13bに蓄積されている描画データを参照しながら描画を行う。このとき、参照された描画データは描画データ保持部13bから削除される。また、描画データにグラデーションが指定されていれば、描画部13cの機能の一部として設けられたグラデーション生成部13dが描画データ保持部13bの描画データを用いてグラデーションを生成する。グラデーションが指定されていない場合は、一般のページ記述言語処理系と同様に、描画部13cにおいて描画処理が行われる。描画部13cの描画結果はページバッファ13eに送られ、1ページ分のデータが生成されると、プリントエンジン14に送られて印刷される。
【0018】
図3は画像形成装置の処理の流れを示すフローチャートである。まず、印刷ジョブが入力されると、命令解析部13aはページ記述言語の命令として解析する(ステップS1)。次に、その入力はページ終端を表しているかどうかが判断され(ステップS2)、ページ終端でなければ、次に、その入力は描画命令かどうかが判断される(ステップS3)。ここで、入力が描画命令でなければ、描画データと判断して、その入力を描画データ保持部13bに保存する(ステップS4)。描画データはグラフィックス図形の形状を表す形状データの他に色や線幅などの属性データも含む。描画データを保存した後はステップS1に戻る。このようにして、保存動作が繰り返され、必要な描画データが描画データ保持部13bに揃うと、次に、描画命令が入力される。描画命令には、グラフィックス図形の塗りつぶしを行う「fill」や輪郭描画を行う「stroke」などがある。ステップS3で描画命令と判断されると、その描画命令は描画部13cに送られ、保存された形状データおよび属性データの描画データを参照しながら描画部13cにて塗りつぶしなどの描画処理が実行される(ステップS5)。描画処理の実行後はステップS1に戻る。このようにして、入力がページ終端まで描画処理が終了すると、描画処理された1ページ分のデータはページバッファ13eからプリントエンジン14に出力される(ステップS6)。
【0019】
次に、具体的な命令を示して画像形成装置を更に詳細に説明する。
図4は画像形成装置に入力されるページ記述言語の例を示す図である。図4に示した記述例はポストスクリプト(アドビシステムズ社およびその子会社の各国での商標または登録商標)の文法に従って記述されたもので、まず、記述21は色をRGB方式で表現したときの値を保存するよう指定している。記述22は図形の形状を指定する記述であって、この例では、四角の図形を指定している。これらの記述21,22が描画データを構成し、これらの描画データに続いて描画命令の記述23が指定される。この例では、描画命令は図形の塗りつぶしを行う「fill」が指定されている。このように記述されたページ記述言語が画像形成装置13の命令解析部13aに入力されると、命令解析部13aは図5に示すような処理を行う。
【0020】
図5は命令解析部の処理の流れを示すフローチャートである。図4に示すようなページ記述言語が入力されると、命令解析部13aは入力順に入力を解析し、入力を入力21,22,23のような適当な単位に分割する(ステップS11)。次に、入力はページ終端かどうかが判断され(ステップS12)、ページ終端であれば、この命令解析部の処理は終了する。入力がページ終端でなければ、分割された単位の入力は描画命令かどうかが判断される(ステップS13)。ここで、入力が描画命令でなければ、その入力は描画データ保持部13bに転送され蓄積される(ステップS14)。その後、ステップS11に戻って、この描画データの蓄積が描画命令が来るまで繰り返される。入力が描画命令であれば、その入力は描画部13cに転送される。
【0021】
このようにして、描画データ保持部13bは、命令解析部13aから与えられた描画データを保持し、命令実行時の描画部13cの要求に応じて保持している描画データを渡す。また、描画データを描画部13cに渡す際には描画データ保持部13bで保持しているデータは保存しない。このため、描画部13cが描画の際に描画データ保持部13bのデータは消費しているように見える。
【0022】
図6は描画部の一般的なグラフィックの処理の流れを示すフローチャートである。描画部13cは、命令解析部13aから描画命令を受け取ると、その描画命令は輪郭描画を指示する「stroke」命令かどうかが判断される(ステップS21)。「stroke」命令であれば、幅を持った線を描画することになるので、幅を持った線の外側と内側に該当する外周、内周の線を算出する(ステップS22)。これにより、実際に塗りつぶしの処理を行うときの輪郭が計算され、輪郭描画命令が塗りつぶしの命令のときのデータと同じデータに変換することになる。次に、描画図形の形状データからその図形が横切る走査線の範囲を求めて、塗りつぶし処理の必要な走査線群を特定する(ステップS23)。特定された走査線群から一つの走査線を選択し(ステップS24)、次に、すべての走査線の処理が完了して未処理の走査線が選択されなかったかどうかが判断される(ステップS25)。ここで、未処理の走査線が選択された場合は、その走査線に対して描画図形が横切っていて塗りつぶし処理の必要な範囲を特定する(ステップS26)。描画範囲が特定されると、そのデータはページバッファ13eに転送され、処理対象の走査線における描画図形の存在範囲に塗りつぶしの色情報が配置される。このとき、ページバッファが画素値の配列で構成されていればメモリ上に色の値を置き、ページバッファが画素値のランレングス形式であれば走査線上の図形の存在範囲からランの開始点とランの長さとを求めて色値とともにラン情報を形成して加えられる。その後、ステップS24に戻り、この描画範囲特定処理をステップS23で特定されたすべての走査線について繰り返し行う。ステップS25にて、すべての走査線の処理が完了したと判断されるとこの処理は終了する。このように、輪郭描画を指示する「stroke」命令が与えられた場合は、線幅情報を用いて線の内側と外側に相当する描画境界を算出し、しかる後に塗りつぶしを指示する「fill」命令が与えられたときと同様の処理が行われる。
【0023】
グラデーションによる描画が指示された場合には、グラデーション生成部13dが描画データ保持部13bからグラデーションデータを受け取り、上述の描画部13cの動作における走査線上での描画図形の存在範囲での塗りつぶし処理を行う。
【0024】
グラデーションパターンの形状が同心円の場合の例を図7に示す。
図7は同心円のグラデーションパターン生成を説明する図である。図7では、描画図形31の中に同心円状に色が変化するグラデーションを描画する場合を示している。ここで、同心円の中心から色が変化していく方向をグラデーションベクトルと呼び、符号32で示してある。このグラデーションベクトル32はベクトルの始点32aと終点32bとの両端点の座標によって指定される。同心円の場合は方向に意味を持たないので、同心円の中心座標と半径の長さとによってグラデーションベクトル32を指定してもよい。また、ここでは、グラデーションベクトル32を便宜的に鉛直上向きとしたが、任意の向きのベクトルもその長さが分かればそのベクトルを回転処理することによって容易に鉛直上向きに変換することができる。グラデーションベクトル32の始点32aおよび終点32bの各々での色値をcs ,ce とし、色値が変化するときの刻み幅をΔcとする。Δcは人間の知覚や使用する色空間の特徴および出力デバイスの色再現能力などを考慮して、色の変化が滑らかであると感じられる値を選べばよい。(cs −ce )/Δcを計算すれば、グラデーションベクトル32の分割数Nが得られ、これとグラデーションベクトル32の長さからグラデーションベクトル32の刻み幅Δgが求められる。この方法ではグラデーションベクトル32の刻み幅Δgはすべて同じになってしまうが、この幅をユーザが明示的に与えても構わない。
【0025】
ここで、走査線33に対して描画図形31の中でそれぞれの色による塗りつぶし処理の範囲を特定する。走査線33と描画図形31との交点のうち、最も左側にある交点34が描画開始点となり、最も右側にある交点35が描画終了点となる。交点34とグラデーションパターンの同心円の中心(始点32a)との距離を求めて刻み幅Δgと比較すれば、描画開始点の交点34が何番目の同心円に属するかを示す値nが求まり、これによって交点34での色値が計算される。走査線33上の次の色の変化点は次の同心円36と走査線33との交点37であるが、これは同心円36の半径の2乗から走査線33と同心円の中心(始点32a)との距離の2乗を減じた値の平方根と同心円の中心(32a)の座標値を用いて容易に求めることができ、その位置での色値は先に求めた交点34での色値から次の順番の色値が求められる。また、他の同心円との交点の座標も同様にして求められ、この計算を描画終了点である交点35を越えるまで繰り返すことで、走査線33に対するグラデーションパターンを生成する。
【0026】
次に、グラデーション生成部13dで行われる上記のような各走査線上での描画範囲特定処理の流れについて説明する。
図8はグラデーション生成部での処理の流れを示すフローチャートである。まず、グラデーションベクトル32の刻み幅Δgを算出する(ステップS31)。この刻み幅Δgはユーザによって明示的に指定されるか、システムによって計算された値でもよい。次に、描画開始点での同心円の半径の大きさ、すなわち、走査線33における描画開始点の交点34とグラデーションベクトル32の始点32aとの間の距離に相当する長さが算出される(ステップS32)。算出された長さを基に、描画開始点が何番目のドーナツ状領域に属しているかが計算され、それによってその位置での色値が求められる(ステップS33)。次は、今、処理対象にしている交点から次に色が変わる交点までの走査線33上の距離、すなわち、移動量が算出される(ステップS34)。算出されたこの移動量は、走査線33上の描画開始点と描画終了点との間における色の変化点間の距離情報として、グラデーションパターンに追加される(ステップS35)。次に、処理対象の走査線33上で移動量の算出が描画終了点を越えたかどうかが判断され(ステップS36)、描画領域の走査が終了していなければ、ステップS34に戻り、次に色が変わる交点までの移動量の算出が続けられる。ここで、ステップS34に戻るのは、グラデーション処理では、色は順番に変わっているという前提があるので、次に描画すべき色はあらかじめ分かっているので、交点の属するドーナツ状領域の判定はやらず、移動量の算出だけを描画領域が終了するまで行うことにしている。ステップS36の判断にて、処理対象の走査線33上での描画領域内の移動量の算出が終了したなら、次は、あらかじめ特定されていた描画図形31と交わる走査線群すべてについて処理が終了したかどうかが判断され(ステップS37)、まだ処理が終了していない走査線があれば、ステップS32に戻って、次の走査線における描画開始点と同心円の中心との間の距離の算出から始められ、すべての走査線に対する処理が終わると、この処理は終了する。
【0027】
こうして生成されたグラデーションパターンはページバッファ13eに蓄積され、印刷が指示されるとプリントエンジン14に送られて印刷される。
次に、以上の処理を図9に示す入力に適用した場合の画像形成装置の動作について説明する。
【0028】
図9は画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。図9において、二重の不等号で括った部分の記述41がグラデーションを記述するために必要なパラメータを与える記述であり、「setgrad」なる記述42でグラデーションを指定している。記述41において、「GType」では同心円状のグラデーションであることを「circle」で指定し、「StartPoint」でグラデーションベクトルの始点の座標が(290,110)、「EndPoint」で終点の座標が(290,210)、「StartColor」および「EndColor」でそれぞれの点でのRGBの色値が(1.0,0,0),(0,1.0,0)であることを指定している。なお、「GStep」は刻み幅の指定であるが、ここでは、特に指定していないので、システムでの計算によって与えられる。記述43は描画図形の形状を指示する部分であり、座標(200,200)を左上の頂点とし、幅100、高さ100の四角形となる描画図形形状を与えている。続いて、塗りつぶしを指示する描画命令の記述44が与えられている。
【0029】
入力された記述41〜43は命令解析部13aによって解析され、描画データ保持部13bに送られて保持される。続いて、塗りつぶしの描画命令の記述44が検出されると、これは描画部13cに送られる。描画部13cでは、描画データ保持部13bに保持された描画図形形状データおよび描画属性データを参照して、描画処理を行う。ここでは帯状のグラデーションによる塗りつぶしが指示されているので、グラデーション生成部13dを起動してグラデーションによる塗りつぶしを行う。グラデーション生成部13dは、上述の描画図形形状データおよび描画属性データを受け取り、図8で説明したアルゴリズムに従って各走査線に対するグラデーションパターンを生成する。上記の記述に従って描画される様子を図10に示す。
【0030】
図10はグラデーション指定の記述が入力されたときの描画の説明図である。図10において、記述41によって指定されたグラデーションベクトル51の始点の座標(290,110)が同心円の中心であり、これを中心として半径方向に色が変化していく。描画図形52は記述43によって指定された座標(200,200)を左上の頂点とする、一辺が100の正方形である。ここで、たとえばy=140の位置の走査線53に対しては、描画開始点が(200,140)となり、これとグラデーションベクトル51の始点(290,110)とが成すベクトルは(−90,30)となる。グラデーションベクトルの分割数を10、刻み幅を10とすれば、この描画開始点は10番目の帯領域に属することが分かり、この描画開始点での色値は(0,1.0,0)となる。
【0031】
走査線53上での次の色の変化点54は走査線53と半径が90の同心円55との交点である。この変化点54と同心円の中心とを結ぶ線分を斜辺とし、走査線53およびグラデーションベクトル51を直角をはさむ2辺とする直角三角形を考えると、変化点54とグラデーションベクトル51との間の距離は(902 −302 )1/2 =60(2)1/2 となり、したがって、この変化点54のx座標は290−60(2)1/2 となる。また、描画開始点から変化点54までの距離は90−60(2)1/2 となる。同様にして、半径が80の同心円56と走査線53との交点である変化点57の座標は290−10(55)1/2 、先程求めた変化点54からの距離は60(2)1/2 −10(55)1/2 となる。これに続く色の変化点は、上述の操作を繰り返すことで次々に求められる。この処理を各々の走査線に対して行うことで、描画図形内部のグラデーションパターンが生成され、ページバッファ13eに蓄積される。印刷指示が与えられると、ページバッファ13eの内容はプリントエンジン14に送られ印刷される。
【0032】
以上に示した方法を用いれば、グラデーションを表現するために同じ図形を繰り返し描画する必要がなく、また、グラデーションパターンの展開も描画対象領域内だけにとどめることができるため、グラデーションを高速に描画することができる。
【0033】
次に、本発明の第2の実施の形態として、同じくネットワーク印刷システムに適用された場合を例に詳細に説明する。
図11はネットワーク印刷システムの構成例を示す図である。図11に示したネットワーク印刷システムによれば、図2に示したネットワーク印刷システムの画像形成装置13におけるグラデーション生成部13dの内部に1ライン分のラインバッファ13gを備えている。
【0034】
画像形成装置13はネットワーク12を介してクライアント計算機11a,11bと接続されている。クライアント計算機11a,11bで作成された印刷ジョブはネットワーク12を介して命令解析部13aに送られる。命令解析部13aでは、受け取った印刷ジョブの内容を解釈し、描画データと描画命令とに分類する。描画データは、描画図形の形状データと色や線幅などの属性データとから成り、いずれも描画データ保持部13bに蓄積される。また、グラデーションが指定されていればその情報も描画データ保持部13bに蓄積される。命令解析部13aで描画命令が検出されると、描画部13cは描画を行うが、このとき描画データ保持部13bに蓄積された描画データを消費する。
【0035】
また、描画命令のパラメータとしてグラデーションが指定されていれば、描画部13cの機能の一部として設けられたグラデーション生成部13dが描画データ保持部13bの情報を用いてグラデーションを生成するが、このときグラデーション生成部13dは内部に1ライン分のラインバッファ13gを持ち、このラインバッファ13gにグラデーションパターンのうちx座標が同心円の中心と同じになる部分を保持しておく。また、グラデーションが指定されていない場合は一般のページ記述言語処理系と同様の描画を行う。描画部13cの描画結果はページバッファ13eに送られ、1ページ分の処理が終わると、プリントエンジン14に送られて印刷される。
【0036】
グラデーション生成部13d以外の部分の動作および処理アルゴリズムは第1の実施の形態の場合と同様であるため、それらの説明は省略する。
グラデーション生成部13dにグラデーション生成が指示され、ある走査線に対する処理が開始されると、グラデーションパターンが順に生成される。生成されるグラデーションパターンのうちx座標が同心円の中心と同じになる部分までをグラデーション生成部13dの内部に設けられたラインバッファ13gに保持する。これは、同心円のグラデーションパターンのうち左半分をラインバッファ13gに保存しておく動作に当たる。しかる後に、更に次の色の変化点までの距離を求める必要がある場合には、ラインバッファ13gの内容を逆順に調べて利用し、グラデーションパターンを生成する。
【0037】
次に、以上の処理を図12に示す入力に適用した場合の画像形成装置の動作について説明する。
図12は画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。図12において、記述61はグラデーションを記述するために必要なパラメータを与える部分であり、グラデーションベクトルの始点の座標が(290,110)、終点の座標が(290,210)、それぞれの点での色が(1.0,0,0),(0,1.0,0)、となる同心円状のグラデーションを与えている。記述62はグラデーションを指定している。また、記述63は、座標(240,200)を左上の頂点とし、幅100、高さ100の四角形となる描画図形形状を与えている。これらの記述61〜63は命令解析部13aによって解析され、描画データ保持部13bに送られて保持される。
【0038】
続いて、塗りつぶしを指示する描画命令の記述64が検出されると、これは描画部13cに送られる。描画部13cでは、描画データ保持部13bに保持された描画図形形状データおよび描画属性データを参照して、描画処理を行う。ここでは同心円状のグラデーションによる塗りつぶしが指示されているので、グラデーション生成部13dを起動して描画範囲特定処理、すなわち、グラデーションによる塗りつぶしの処理を行う。グラデーション生成部13dは、上述の描画図形形状データおよび描画属性データを受け取り、先に説明したアルゴリズムに従って各走査線に対するグラデーションパターンを生成する。上記の記述に従って描画される様子を図13に示す。
【0039】
図13はグラデーション指定の記述が入力されたときの描画の説明図である。図13において、記述61によって指定されたグラデーションベクトル71の始点の座標(290,110)が同心円の中心であり、これを中心として半径方向に色が変化していく。描画図形72は記述63によって指定された座標(240,200)を左上の頂点とする、一辺が100の正方形である。ここで、たとえばy=140の位置の走査線73に対しては、描画開始点が(240,140)となり、これとグラデーションベクトル71の始点(290,110)とが成すベクトルは(−50,30)となる。グラデーションベクトルの分割数を10、刻み幅を10とすれば、この描画開始点は6番目の帯領域に属することが分かり、この描画開始点での色値は(0.4,0.6,0)となる。
【0040】
走査線73上での次の色の変化点74は走査線73と半径が50の同心円75との交点である。この変化点74と同心円の中心とを結ぶ線分を斜辺とし、走査線73およびグラデーションベクトル71を直角をはさむ2辺とする直角三角形を考えると、変化点74とグラデーションベクトル71との間の距離は(502 −302 )1/2 =40となり、この変化点74のx座標は250となる。また、描画開始点から変化点74までの距離は10となる。このとき、ラインバッファ13gには、変化点とグラデーションベクトル71との距離である40が保存される。次の同心円に対しても同様の処理を行うと、半径が40の同心円76と走査線73との交点の座標は290−10(7)1/2 、先程求めた変化点74からの距離は50−10(7)1/2 となる。ここでも、同様に交点とグラデーションベクトル71との距離である10(7)1/2 がラインバッファ13gに保存される。これに続く色の変化点のうちグラデーションベクトル71の位置x=290までは、上述の操作を繰り返すことで次々に求められ、ラインバッファ13gに保存される。
【0041】
図14はラインバッファへの距離データの格納例を示す図である。ラインバッファ13gには、走査線73上の交点とグラデーションベクトル71との間の距離が計算されるたびに順に格納される。図13の例では、y座標位置が140の走査線73での色の変化点を求めた場合、走査線73上の交点とグラデーションベクトル71との間の距離として「40」、「10(7)1/2 」の二つのデータ81,82が順次計算され、この順序でラインバッファ13gに格納される。図13の例では、走査線73と同心円76との交点の次の色の変化点はグラデーションベクトル71の位置になっているので、距離のデータとしては二つのデータ81,82が格納された時点で距離の計算は終了している。グラデーションベクトルの位置x=290を越えた部分での交点の座標は、ラインバッファ13gの内容を逆順にたどり、その値を順に加えることで次々に得られる。
【0042】
この処理を各々の走査線に対して行うことで、描画図形内部のグラデーションパターンが生成され、ページバッファ13eに蓄積される。印刷指示が与えられると、ページバッファ13eの内容はプリントエンジン14に送られ、印刷される。
【0043】
この方法を用いれば、同じパターンの繰り返しに関する計算を避けることができるため、グラデーションパターンを高速に生成することができる。
【0044】
【発明の効果】
以上説明したように本発明では、描画データとして描画平面上の2点とそれぞれの点での色値とが同心円状のグラデーション描画のためのパラメータになり、このパラメータから計算されるドーナツ状領域と走査線とを比較することで、走査線上の色の変化位置を簡単に求めることが可能となり、微小区間の塗りつぶしを繰り返す必要がないため、グラデーション描画の負荷が大幅に軽減される。また、処理が走査線方向に進むため、通常の塗りつぶし処理の特別な場合として実現可能である。
【図面の簡単な説明】
【図1】本発明の画像生成装置の原理図である。
【図2】ネットワーク印刷システムの構成例を示す図である。
【図3】画像形成装置の処理の流れを示すフローチャートである。
【図4】画像形成装置に入力されるページ記述言語の例を示す図である。
【図5】命令解析部の処理の流れを示すフローチャートである。
【図6】描画部の一般的なグラフィックの処理の流れを示すフローチャートである。
【図7】同心円のグラデーションパターン生成を説明する図である。
【図8】グラデーション生成部での処理の流れを示すフローチャートである。
【図9】画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。
【図10】グラデーション指定の記述が入力されたときの描画の説明図である。
【図11】ネットワーク印刷システムの構成例を示す図である。
【図12】画像形成装置に入力されるグラデーション指定のページ記述言語の例を示す図である。
【図13】グラデーション指定の記述が入力されたときの描画の説明図である。
【図14】ラインバッファへの距離データの格納例を示す図である。
【符号の説明】
1 命令解析手段
2 描画手段
3 描画データ保持手段
4 グラデーションパターン展開手段
11a,11b クライアント計算機
12 ネットワーク
13 画像形成装置
13a 命令解析部
13b 描画データ保持部
13c 描画部
13d グラデーション生成部
13e ページバッファ
13f バス
13g ラインバッファ
14 プリントエンジン
Claims (5)
- 画像描画命令を実行して出力画像を得るための画像形成装置において、
入力された印刷ジョブを解析して描画命令と描画命令のパラメータとなる描画データとを生成する命令解析手段と、
前記命令解析手段によって解析された描画命令に従って描画処理を行う描画手段と、
前記描画データを保存する描画データ保持手段と、
同心円状のグラデーション描画の際に前記描画手段より呼出され、前記描画データ保持手段に保持されたグラデーション情報をもとに、走査線が横切る描画領域の描画開始点の交点とグラデーションパターンの同心円の中心との距離を求めて同一の色が描画される前記同心円の中心からの刻み幅の累和と比較することで前記描画開始点での色値を求め、前記グラデーションパターンの前記同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる2つの同心円と前記走査線との交点の前記鉛直な直線からの距離の差から前記走査線上の次の色の変化点を求め、前記次の色の変化点での色値を先に求めた前記描画開始点での色値の次の順番の色値から求めるようにして描画領域を横切るすべての前記走査線に対してグラデーションパターンを展開するグラデーションパターン生成手段と、
を備えていることを特徴とする画像形成装置。 - 前記グラデーションパターン生成手段は、前記鉛直な直線から前記色の変化点までの距離を前記同心円の半径の2乗から前記走査線と前記同心円の中心との距離の2乗を減じた値の平方根から求め、求めた前記色の変化点までの距離と前記同心円の中心の座標値とを用いて前記走査線上の色の変化点を求めるようにしたことを特徴とする請求項1記載の画像形成装置。
- 前記グラデーションパターン生成手段は、1走査線の半分のグラデーションパターンを保持するラインバッファを有することを特徴とする請求項1記載の画像形成装置。
- 画像描画命令を実行して同心円状のグラデーション出力画像を得るグラデーション描画方法において、
描画平面上での色の変化開始位置および変化範囲を示す情報と、前記変化開始位置と前記変化範囲の終点とにおける色値情報とで同心円状のグラデーション描画を表現するために必要なパラメータを取得し、
前記変化開始位置と前記変化範囲の終点とから同一の色が描画される刻み幅を算出し、
走査線上の描画図形の描画開始点とグラデーションパターンの同心円の中心との間の距離に相当する長さを算出し、
算出された長さから前記描画開始点がそれぞれ前記刻み幅の幅を有するドーナツ状領域の何番目に属しているかを計算し、
処理対象にしている交点から次に色が変わる交点までの前記走査線上の移動量を算出してグラデーションパターンに追加する処理を描画図形の描画終了点を越えるまで繰り返し行うこと、
を特徴とするグラデーション描画方法。 - 前記移動量の算出は、前記グラデーションパターンの同心円の中心を通る鉛直な直線上で前記刻み幅だけ半径の異なる2つの同心円と前記走査線との交点の前記鉛直な直線からの距離を求め、その差を前記走査線上での移動量とすることを特徴とする請求項4記載のグラデーション描画方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18471497A JP3606006B2 (ja) | 1997-07-10 | 1997-07-10 | 画像形成装置およびグラデーション描画方法 |
US09/106,136 US6201550B1 (en) | 1997-06-30 | 1998-06-29 | Image forming apparatus and method of generating gradation pattern |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18471497A JP3606006B2 (ja) | 1997-07-10 | 1997-07-10 | 画像形成装置およびグラデーション描画方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1131231A JPH1131231A (ja) | 1999-02-02 |
JP3606006B2 true JP3606006B2 (ja) | 2005-01-05 |
Family
ID=16158088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18471497A Expired - Fee Related JP3606006B2 (ja) | 1997-06-30 | 1997-07-10 | 画像形成装置およびグラデーション描画方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3606006B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4513888B2 (ja) | 2008-03-31 | 2010-07-28 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
JP4513887B2 (ja) | 2008-03-31 | 2010-07-28 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
JP4561858B2 (ja) * | 2008-03-31 | 2010-10-13 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
JP4572947B2 (ja) * | 2008-03-31 | 2010-11-04 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
JP4518172B2 (ja) * | 2008-03-31 | 2010-08-04 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
JP7131013B2 (ja) * | 2018-03-26 | 2022-09-06 | 富士通株式会社 | 3次元モデル表示プログラム、3次元モデル表示方法、及び表示制御装置 |
-
1997
- 1997-07-10 JP JP18471497A patent/JP3606006B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1131231A (ja) | 1999-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6201550B1 (en) | Image forming apparatus and method of generating gradation pattern | |
JP4518172B2 (ja) | 画像生成装置および印刷装置 | |
US5524198A (en) | Character or graphic processing method and apparatus | |
JP4022710B2 (ja) | 描画処理装置 | |
JP4969515B2 (ja) | 画像形成装置、グラデーション図形画像描画方法、グラデーション図形画像描画プログラム、及び記録媒体 | |
JP3606006B2 (ja) | 画像形成装置およびグラデーション描画方法 | |
JPH08146936A (ja) | アウトラインフォントデータの処理方法および装置 | |
JPH1125282A (ja) | 画像形成装置およびグラデーションパターン生成方法 | |
JP5079341B2 (ja) | 印刷データ処理装置 | |
JP3994851B2 (ja) | 画像処理方法 | |
JPH07110568A (ja) | 白版図形修正方法 | |
JP3628523B2 (ja) | 情報処理装置およびパターン生成プログラムを記録した記録媒体 | |
JP3570164B2 (ja) | 画像形成装置およびグラデーション描画方法 | |
JPH0877324A (ja) | 電子ファイル装置 | |
JP2006072834A (ja) | 画像形成装置および方法 | |
JPH08212362A (ja) | 文字図形作成装置 | |
JPH03213367A (ja) | 印刷装置及びその制御方法 | |
JP2000099750A (ja) | 画像処理装置及び画像処理方法 | |
JP2000013601A (ja) | 印刷情報処理装置、中間データ生成装置および方法 | |
JP2000215320A (ja) | 画像形成装置およびグラデ―ションパタ―ン生成方法 | |
JP3536894B2 (ja) | 図形処理装置 | |
JP2002063582A (ja) | 画像形成装置及び画像形成方法 | |
JP2002318680A (ja) | 画像処理装置および画像処理方法 | |
JP3155617B2 (ja) | 文書処理方法及び装置 | |
JPH0765151A (ja) | 図形編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040715 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040927 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |