説明

データ生成装置、データ生成方法、データ生成プログラム、及びデータ生成プログラムを記録した記録媒体

【課題】大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるようにする。
【解決手段】データ生成装置は、テーブル作成部45と、記憶部46と、新しい濃度値を算出するカラー値算出部48と、濃度値テーブル46aにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部47と、判定の結果が、隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、濃度値テーブルを用いて取得した濃度値を用いて、グラデーション領域内のグラデーションの描画を行い、判定の結果が、隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、データ算出部が算出した前記新しい濃度値を用いて、グラデーション領域内のグラデーションの描画を行うグラデーション描画部49とを有している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラデーション描画命令を伴う図形データから他の形式の図形データを生成するデータ生成装置、データ生成方法、データ生成プログラム、及びデータ生成プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
一般に、パーソナルコンピュータ(PC)では、図形データを、点の座標とそれを結ぶ線又は面の方程式のパラメータ、及び、塗りつぶしなどの描画情報によって記憶している。一方、プリンタでは、画像を色のついた点(画素)を縦横に並べた集合として扱う。このため、通常、PCは、そのプリンタドライバにおいて、図形作成ソフト(例えば、グラフィックスソフト)で作成された画像データを展開して、点の集合に変換してラスタライズデータを生成する処理(ラスタライズ処理)を行い、このラスタライズデータをプリンタに送るように構成されている。しかし、図形作成ソフトによって作成された画像データが、ある領域の色の濃さを示すカラー値(「濃度値」とも言う。)を徐々に変化させるためのグラデーション描画命令を伴う図形データを含む場合には、PCは、ラスタライズデータを生成するために処理量の大きな計算を行わなければならず、このような計算のために大容量のメモリを必要とした。
【0003】
この対策として、グラデーション描画命令を伴う図形データに対応する描画領域の始点及び終点の座標と始点及び終点のカラー値とから複数の帯状領域を有するグラデーションパターンを生成する方法の提案がある(例えば、特許文献1参照)。この提案では、グラデーションパターンを生成する装置が、色の変化方向のベクトル及びその始点と終点の色の情報を用いて、始点と終点を結ぶ直線に垂直でその内部のカラー値が均一となる複数の隣接する帯状領域を設定する。そして、帯状領域の境界と走査線との交点を求めて色の変化点とし、走査線ごとに、色の変化点及び変化点間の色を順次求め、走査線方向のグラデーションパターンを生成している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−25282号公報(段落0005−0007、要約、図1)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の方法においては、複雑なグラデーション図形を描画する際に、作成されるラスタライズデータのサイズが大きくなるので、依然として大容量のメモリが必要になるという問題があった。
【0006】
そこで、本発明は、上記従来技術の課題を解決するためになされたものであり、その目的は、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるデータ生成装置、データ生成方法、データ生成プログラム、及びこのデータ生成プログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【0007】
本発明の一形態に係るデータ生成装置は、入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するグラデーションデータ作成部と、前記濃度値テーブルを記憶する記憶部と、前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するデータ算出部と、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部と、前記テーブル判定部による判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うグラデーション描画部とを有することを特徴としている。
【0008】
本発明の他の形態に係るデータ生成方法は、入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するステップと、前記濃度値テーブルを記憶部に記憶させるステップと、前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップと、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するステップと、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部(48)が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うステップとを有することを特徴としている。
【0009】
本発明の他の形態に係るデータ生成プログラムは、コンピュータに、前記データ生成方法を実行させる、コンピュータ読み取り可能なものである。
【0010】
本発明の他の形態に係る記録媒体は、コンピュータに、前記データ生成方法を実行させるデータ生成プログラムを記録した、コンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0011】
本発明に係るデータ生成装置又はデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるという効果がある。
【0012】
また、本発明に係るデータ生成プログラム又は記録媒体に記録されたプログラムをデータ生成装置で実行すれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるという効果がある。
【図面の簡単な説明】
【0013】
【図1】第1の実施形態に係るデータ生成装置としてのプリンタドライバ部を含むシステムの構成を概略的に示すブロック図である。
【図2】第1の実施形態に係るデータ生成装置におけるグラデーション領域を示す説明図である。
【図3】図1に示される記憶部に記憶されるカラー値テーブルの一例を示す図である。
【図4】第1の実施形態に係るデータ生成装置が行う処理を示すフローチャートである。
【図5】図4のステップS3の編集処理の一例を示すフローチャートである。
【図6】図5のステップS33のカラー値テーブルの作成処理の一例を示すフローチャートである。
【図7】図5のステップS34のグラデーション描画処理の一例を示すフローチャートである。
【図8】図7のステップS341のカラー値テーブルについての判定処理の一例を示すフローチャートである。
【図9】濃度値の変化が滑らかではないカラー値テーブルを用いたグラデーションの描画結果の一例を示す説明図である。
【図10】カラー値算出部の計算結果を用いたグラデーションの描画結果の一例を示す説明図である。
【図11】第2の実施形態に係るデータ生成装置としてのプリンタドライバ部を含むシステムの構成を概略的に示すブロック図である。
【図12】第2の実施形態に係るデータ生成装置の処理を示すフローチャートである。
【図13】図12のステップS3aの編集処理の一例を示すフローチャートである。
【図14】図13のステップS33aのカラー値テーブルの判定及び作成処理の一例を示すフローチャートである。
【図15】第3の実施形態に係るデータ生成装置を含むPCの構成を概略的に示すブロック図である。
【発明を実施するための形態】
【0014】
《1》第1の実施形態
《1−1》第1の実施形態の構成
図1は、第1の実施形態に係るデータ生成装置としてのプリンタドライバ部4を含むシステムの構成を概略的に示すブロック図である。図1に示されるシステムは、ホストPC(パーソナルコンピュータ)1と、ホストPC1に接続されたプリンタ5とを有している。ホストPC1とプリンタ5との接続は、通信可能な方式であれば、有線又は無線のいずれであってもよい。また、プリンタ5は、例えば、ファクシミリ装置又は多機能周辺装置(MFP)などのような、印刷機能を備えた他の装置であってもよい。
【0015】
図1に示されるように、ホストPC1は、アプリケーションソフトウェアを格納し実行するアプリケーション部2と、オペレーティングシステム(OS)を実行するOS部3と、第1の実施形態に係るデータ生成装置としてのプリンタドライバ部4とを有している。ホストPC1において、アプリケーション部2がデータの印刷指示を行うと、OS部3は受け取った印刷対象のデータから第1形式の画像データとしてのスプールファイルを作成し、このスプールファイルをプリンタドライバ部4に送る。プリンタドライバ部4は、受け取ったスプールファイルをプリンタ5で印字可能な第2形式の画像データとしてのラスタライズデータに変換し、このラスタライズデータをプリンタ5に送信する。
【0016】
OS部3は、アプリケーション部2から受け取った印刷指示に応じてスプールファイルを生成するスプールファイル生成部30を有している。スプールファイルは、描画すべき図形の形状と塗りつぶし方法とを定義する画像データを、定められた形式に基づいて記述しているファイルである。なお、OS3及びプリンタドライバ4の処理対象のファイルを、スプールファイルに代えて他のファイル(例えば、PostScript、PCL(Printer Control Language)、XPS(XML Paper Specification)等のページ記述言語)を処理対象とすることも可能である。
【0017】
プリンタドライバ部4は、スプールファイル受信部40と、構文解析部41と、編集部42と、ラスタライズ部43と、ラスタライズデータ送信部44と、グラデーションデータ作成部としてのテーブル作成部45と、カラー値テーブル46aを記憶する記憶部(メモリ)46と、データ判定部としてのテーブル判定部47と、データ算出部としてのカラー値算出部48と、グラデーション描画部49とを有している。
【0018】
スプールファイル受信部40は、スプールファイル生成部30により生成された第1形式の画像データとしてのスプールファイルを受信する。
【0019】
構文解析部41は、スプールファイル受信部40によって受信されたスプールファイルに記述されている図形データ(第1の形式の画像データに含まれる図形データ)を解析する。
【0020】
編集部42は、構文解析部41による解析結果を用いて、スプールファイルに記述されている図形データを、ラスタライズ部43で処理可能な形式のデータに変換し、一時的に保持(登録)する。編集部42は、スプールファイルに記述されている図形データの中から、グラデーション描画命令を伴うグラデーション領域の図形データを抽出し、テーブル作成部45に与える。グラデーション描画命令は、例えば、カラー値テーブル46aを構成するデータの個数情報(後述する「tableSize」)を含む。
【0021】
テーブル作成部45は、グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルとしてのカラー値テーブル46aを作成する。例えば、テーブル作成部45は、グラデーション領域の図形データに含まれる第1の位置の濃度値及び第2の位置の濃度値と、カラー値テーブル46aを構成するデータの個数情報とを用いて、カラー値テーブル46aを作成する。言い換えれば、テーブル作成部45は、グラデーション描画部49が行うグラデーション描画処理(グラデーションをカラー値で描画する処理)において使用することができるグラデーションデータから成るカラー値テーブル46aを作成し、記憶部46に記憶させる。カラー値テーブル46aは、グラデーション描画で使用する各色の濃度値(カラー値)を格納する。なお、第1の位置は、例えば、グラデーション領域の開始点であり、第2の位置は、例えば、グラデーション領域の終了点である。また、グラデーション領域の図形データに含まれる第1の位置と第2の位置とを結ぶ直線の方向は、グラデーション領域における濃度値の変化の方向に一致する。また、濃度値は、入力された画像データがモノクロ画像データであるときには、各画素における1つの色の濃度値であり、入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である。
【0022】
テーブル判定部47は、作成されたカラー値テーブル46aをグラデーション描画部49が行うグラデーション描画で使用するか否かを判定する。例えば、テーブル判定部4は、カラー値テーブル46aにおいて、隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、閾値未満であると判断した場合には、カラー値テーブル46aを使用するという判断をし、閾値以上であると判断した場合には、カラー値テーブル46aを使用しないという判断をする。
【0023】
カラー値算出部48は、グラデーション描画部49がグラデーション描画処理に際してカラー値テーブル46aを使用しない場合に、グラデーション描画部49が使用する新しいカラー値を計算することによって、新しいグラデーションデータを生成する。例えば、カラー値算出部48は、グラデーション領域の図形データに含まれる第3の位置の濃度値及び第4の位置の濃度値を用いて、グラデーション領域内の各画素の濃度値を算出するう、カラー値テーブル46aを作成する。なお、第3の位置は、例えば、グラデーション領域の開始点であり、第4の位置は、例えば、グラデーション領域の終了点である。また、グラデーション領域の図形データに含まれる第3の位置と第4の位置とを結ぶ直線の方向は、グラデーション領域における濃度値の変化の方向に一致する。
【0024】
グラデーション描画部49は、編集部42からの指示に応じて、カラー値テーブル46aのグラデーションデータから、又は、カラー値算出部48によって計算された新しいグラデーションデータから、グラデーションイメージを作成する。例えば、グラデーション描画部49は、テーブル判定部47による判定の結果が、隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、カラー値テーブル46aを用いて取得した濃度値を用いて、グラデーション領域内のグラデーションの描画を行い、判定の結果が、隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、カラー値算出部48が算出した新しい濃度値を用いて、グラデーション領域内のグラデーションの描画を行う。
【0025】
ラスタライズ部43は、スプールファイルと、編集部42によって保持された図形データとから、プリンタ5で印字可能なラスタライズデータを作成する。
【0026】
ラスタライズデータ送信部44は、ラスタライズ部43によって作成されたラスタライズデータをプリンタ5に送信する。
【0027】
図2は、図1に示されるプリンタドライバ部4で処理するグラデーション描画命令を伴う画像データの一例を示す説明図である。図2においては、スプールファイル画像を概念的に1枚のシート状の領域50として示し、グラデーション領域を領域51として示している。図2に示されるように、グラデーション描画命令は、例えば、
グラデーション領域51の開始点の座標(Xs,Ys)と、
グラデーション領域51の開始点におけるR、G、B各色のカラー値Rs,Gs,Bs(「カラー値(Rs,Gs,Bs)」とも表記する。)と、
グラデーション領域51の終了点の座標(Xe,Ye)と、
グラデーション領域51の終了点におけるR、G、B各色のカラー値Re,Ge,Be(「カラー値(Re,Ge,Be)」とも表記する。)と、
により定義される。また、図2において、単位ベクトルuは、グラデーション領域51の開始点の座標(Xs,Ys)から終了点の座標(Xe,Ye)に向かう方向を持つベクトルである。また、グラデーション領域51の開始点(Xs,Ys)からグラデーション領域51の終了点(Xe,Ye)に向かう単位ベクトルuに垂直な単位ベクトルをvとし、グラデーション領域51の開始点(Xs,Ys)から現在の座標(X,Y)に向かうベクトルをpとする。ここで、RGBカラー値の各要素である赤(R)成分、青(B)成分、緑(G)成分のそれぞれは、各色のカラー値(濃度値)を表し、0から255までの256個の値のいずれかの値を取る。また、グラデーション描画命令に基づいて作成されるグラデーションデータの各ピクセルは、座標(X,Y)により識別され、RGBカラー値(R,G,B)を持つ。例えば、図2において、グラデーション領域51の開始点の座標は(Xs,Ys)=(100,100)であり、各色のカラー値は(Rs,Gs,Bs)=(0,0,0)である。また、例えば、図2において、グラデーション領域51の終了点の座標は(Xe,Ye)=(200,200)であり、各色のカラー値は(Re,Ge,Be)=(255,255,255)である。なお、カラー値の種類は、R,G,Bの3色に限定されず、これらに加えて、又は、これらに代えて他の色を用いることも可能である。また、濃度値が256階調の場合を説明したが、カラー値の階調数はこの値に限定されない。
【0028】
図1に示されるカラー値テーブル46aは、R,G,Bの各色について予め定められた個数(実施の形態1においては、tableSize個)のカラー値を有する。言い換えれば、カラー値テーブル46aは、RGBカラー値(Ri,Gi,Bi)を格納しており、
i=0,1,…,(tableSize−1)
である。「tableSize」は、2以上の整数を示す。カラー値テーブル46aの先頭には、グラデーション領域51の開始点のRGBカラー値(Rs,Gs,Bs)が、カラー値テーブル46aの末尾には、グラデーション領域51の終了点のRGBカラー値(Re,Ge,Be)が、それぞれ格納されている。
【0029】
図3は、テーブル作成部45が作成するカラー値テーブル46aの一例を示す図である。図3には、
グラデーション領域51の開始点(Xs,Ys)におけるRGBカラー値(Rs,Gs,Bs)が、
(Rs,Gs,Bs)=(R0,G0,B0)=(0,0,0)であり、
グラデーション領域51の終了点(Xe,Ye)におけるRGBカラー値(Re,Ge,Be)が、
(Re,Ge,Be)=(R9,G9,B9)=(255,255,255)であり、
カラー値テーブル46aのテーブルサイズ、すなわち、カラー値テーブル46aを構成するRカラー値Ri、Gカラー値Gi、Bカラー値Biのそれぞれの個数(「tableSize」と表記する。)が、
tableSize=10、
i=0,1,…,(tableSize−1)=0,1,…,9
である場合が示されている。
【0030】
《1−2》第1の実施形態の動作
図4は、プリンタドライバ部4のスプールファイル受信部40が受信したスプールファイルをラスタライズデータに変換してプリンタ5に送信する処理を示すフローチャートである。図4に示されるように、スプールファイル受信部40は、スプールファイル生成部30により生成されたスプールファイルを受信する(ステップS1)。次に、構文解析部41は、スプールファイル受信部40によって受信されたスプールファイルを受け取り、これに含まれる図形データを解析する(ステップS2)。次に、編集部42は、解析された各図形データを、ラスタライズ部43が処理可能な形式のデータに変換し、変換されデータをラスタライズ部403に登録する編集処理(グラデーションテーブル作成部45、記憶部46、テーブル判定部47、カラー値算出部48、及びグラデーション描画部49にグラ−デーション描画データを生成させる処理を含む)を行う、解析された各図形データを、ラスタライズ部43が処理可能な形式のデータに変換し、変換されデータをラスタライズ部403に登録する編集処理を行う(ステップS3)。次に、ラスタライズ部43は、登録されたデータから、プリンタ5で印字可能なラスタライズデータを作成するラスタライズ処理を行う(ステップS4)。次に、ラスタライズデータ送信部44は、ラスタライズ部43で作成されたラスタライズデータをプリンタ5に送信する(ステップS5)。
【0031】
図5は、図4の編集処理の詳細を示すフローチャートである。編集部42は、構文解析部41によって解析された図形データのうち、ラスタライズ部43への登録を行っていない図形データ(未登録図形)を選択し、処理を開始する(ステップS31)。編集部42は、選択した図形データがグラデーション描画命令を伴う図形データ(グラデーション領域のデータ)であるか否かを判定する(ステップS32)。
【0032】
編集部42は、選択した図形データがグラデーション描画命令を伴う図形データであると判定した場合(ステップS32においてYESの場合)には、テーブル作成部45は、カラー値テーブル46aの作成を行う(ステップS33)。次に、グラデーション描画部49は、グラデーション描画を実行してグラデーションイメージを作成する(ステップS34)。編集部42は、グラデーション描画部49によるグラデーション描画が終了した後に、図形データをラスタライズ部43で処理可能な形式のデータに変換し(ステップS35)、変換した図形データをラスタライズ部43に登録する(ステップS36)。
【0033】
編集部42は、選択した図形データがグラデーション領域ではないと判定した場合(ステップS32においてNOの場合)には、テーブル作成部45にカラー値テーブル46aの作成を行わせず、及び、グラデーション描画部49にグラデーション描画を行わずに、図形データをラスタライズ部43で処理可能な形式のデータに変換し(ステップS35)、ラスタライズ部43に図形データを登録する(ステップS36)。編集部42は、ステップS31からS36の処理を、全ての図形の処理が完了するまで繰り返す(ステップS37)。
【0034】
図6は、テーブル作成部45におけるカラー値テーブル作成処理(図5のステップS33)の詳細を示すフローチャートである。図6に示されるように、まず、テーブル作成部45は、テーブルのインデックスを表す変数iを初期化(i=0)する(ステップS331)。次に、テーブル作成部45は、i番目のR成分の濃度値、i番目のG成分の濃度値、i番目のB成分の濃度値を、それぞれ計算する(ステップS332,S333,S334)。テーブル作成部45は、カラー値テーブル46aに格納されるR、G、Bの各色の濃度値を、例えば、グラデーション領域51の開始点のRGBカラー値(Rs,Gs,Bs)とグラデーション領域51の終了点のRGBカラー値(Re,Ge,Be)を線形補間した値として求める。i番目の要素のRGBカラー値(Ri,Gi,Bi)は、例えば、次式(1)〜(3)により計算される。
【0035】
【数1】

【0036】
テーブル作成部45は、ステップS332,S333,S334の処理を、カラー値テーブル46aの全ての要素、すなわち、i=0,1,2,…,tableSize−1について繰り返す(ステップS335,S336)。
【0037】
図7は、グラデーション描画部49におけるグラデーション描画処理(図5のステップS34)の詳細を示すフローチャートである。図7に示されるように、まず、グラデーション描画部49は、テーブル判定部47により作成されたカラー値テーブル46aのデータを、グラデーション描画処理で使用するか否かの判定を行う(ステップS341)。グラデーションの描画は、グラデーション領域51の開始点(Xs,Ys)から始まり、x座標をグラデーション終了点のx座標Xeに向けて変化させ1ライン分の処理をする。そして、y座標をグラデーション終了点のy座標Yeに向けて変化させながら、同様の手順で1ライン分の処理を行い、この処理を繰り返す。x座標方向の変化分Δxは、次式(4)により算出する(ステップS342)。
Δx=sign(Xe−Xs) (4)
ここで、sign()は、引数の値が負の場合には一1を、正の場合には+1を返す関数である。
同様に、y座標方向の変化分Δyは、次式(5)により算出する(ステップS343)。
Δy=sign(Ye−Ys) (5)
【0038】
次に、グラデーション描画部49は、グラデーションの描画開始位置を設定し(すなわち、x=Xs、y=Ysとし)、描画を開始する(ステップS344,S345)。次に、グラデーション描画部49は、ステップS341のテーブルデータ判定処理の結果をチェックする(ステップS346)。
【0039】
グラデーション描画部49は、カラー値テーブル46aのデータをグラデーション描画処理で使用するか否かの判定結果が「使用しない(NG)」の場合は、カラー値算出部48に、現在の座標(x,y)に対応する新しいRGBカラー値の計算を行わせる(ステップS348)。
【0040】
グラデーション領域51の開始点(Xs,Ys)からグラデーション領域51の終了点(Xe,Ye)に向かう単位ベクトルuを、u=(Xu,Yu)とし、単位ベクトルuに垂直な単位ベクトルvを、v=(Xv,Yv)とし、グラデーション領域51の開始点(Xs,Ys)から現在の座標(x,y)に向かうベクトルpを、p=(Xp,Yp)とすると、現在の座標(x,y)に対応するRGBカラー値(R,G,B)の値は、例えば、次式(6)〜(9)により計算される。
【0041】
【数2】

【0042】
一方、グラデーション描画部49は、カラー値テーブル46aのデータをグラデーション描画処理で使用するか否かの判定結果が「使用する(OK)」の場合は、カラー値テーブル46aに格納されているRGBカラー値を描画に使用するために、現在の座標(x,y)に対応するカラー値テーブル46aのデータを参照する(ステップS347)。現在の座標(x,y)に対応するカラー値テーブルのインデックスiは、次式(10)によって計算される。
【0043】
【数3】

ここで、int()は、引数の小数部分を除いた整数値を返す関数である。
【0044】
そして、グラデーション描画部49は、次の点の処理に進むためにx座標をΔxだけ変化させる(ステップS349)。グラデーション描画部49は、以上のステップS346〜S349の処理を1ライン分の描画が完了するまで繰り返す(ステップS350)。グラデーション描画部49は、1ライン分の描画が終了したら次のラインの処理に進むためにy座標をΔyだけ変化させる(ステップS351)。グラデーション描画部49は、以上のステップS345〜S351の処理を全てのラインの描画が完了するまで繰り返す(ステップS352)。
【0045】
図8は、テーブル判定部47におけるテーブル判定処理(図7のステップS341)を示すフローチャートである。図8に示されるように、まず、テーブル判定部47は、テーブルのインデックスを表す変数iを初期化(i=0)する(ステップS3411)。テーブル判定部47は、カラー値テーブル46aのデータを、グラデーション描画部49によるグラデーション描面に使用するか否かの判定を行う。テーブル判定部47は、カラー値テーブルにおける隣り合う列のRGB各色のカラー値の差を算出し、隣り合う列の各ピクセルの差が20以上の場合にはカラー値が滑らかに変化するグラデーションにならないと判断し、差が20未満の場合にはカラー値が滑らかに変化するグラデーションになると判断する。テーブル判定部47は、現在のインデックスiが示すRGBカラー値(Ri,Gi,Bi)と、隣接するRGBカラー値(Ri+1,Gi+1,Bi+1)をそれぞれ比較し、
|(Ri)−(Ri+1)|<20であるか否か、
|(Gi)−(Gi+1)|<20であるか否か、
|(Bi)−(Bi+1)|<20であるか否か
を判断する(ステップS3412,S3413,S3414)。テーブル判定部47は、ステップS3412,S3413,S3414において、一つでも差が20以上のもの(判断がNOのもの)があれば、濃度値が滑らかに変化するグラデーションにならないと判断(判定結果をNGと)して処理を終了する(ステップS3418)。
【0046】
一方、テーブル判定部47は、ステップS3412,S3413,S3414において、全ての差が20未満の場合(判断がYESの場合)、インデックスiを1増加させる(ステップS3415)。テーブル判定部47は、以上のステップS3412〜S3415の処理を、カラー値テーブル46aにおける隣接する全ての要素を比較するまで繰り返す(ステップS3416)。テーブル判定部47は、全ての隣接する要素の差が20未満であれば、画素値が滑らかに変化するグラデーションであると判断(判定結果をOK)して処理を終了する(ステップS3417)。図2で示したグラデーション描画命令からtableSize=10で作成したカラー値テーブル(図3)の場合、
|R0−R1|=28≧20
であり、判定結果はNGとなる。
【0047】
図9は、グラデーションデータを示すカラー値テーブル46aにおける濃度値の変化が滑らかではない場合の描画結果の一例を示す説明図である。カラー値テーブル46aを用いて描画を行うと、図9のように、カラー値テーブル46aのインデックスiが変化する境界における色の濃度値の変化が大きくなり、描画結果は、滑らかなグラデーションを描画したものとならない。例えば、座標(x,y)=(151,168)に対応するカラー値テーブルのインデックスiは、上記式(10)を用いて算出すると、以下の式(11)のように、i=5となり、カラー値テーブル46aのR5,B5,G5の欄から、RGBカラー値(141,141,141)を得る。
【0048】
【数4】

【0049】
同樣に、式(10)を用いて、
座標(x,y)=(152,168)
座標(x,y)=(151,169)
座標(x,y)=(152,169)
のそれぞれについて、カラー値テーブル46aのインデックスiを算出すると、いずれもi=6となり、RGBカラー値は、(170,170,170)となる。
【0050】
図10は、カラー値算出部48の計算結果を用いた描画結果の一例を示す説明図である。この場合には、図9の場合と異なり、滑らかなグラデーション描画が実現できる。例えば、座標(x,y)=(151,168)におけるRGBカラー値を、上記式(6)〜(9)を用いて算出すると、以下の式(12)〜(15)の計算により、RGBカラー値(151,151,151)を得る。
【数5】

【0051】
同様に、式(12)〜(15)を用いて、
座標(x,y)=(152,168)
座標(x,y)=(151,169)
座標(x,y)=(152,169)
のそれぞれについて、RGBカラー値を算出すると、それぞれ(153,153,153)、(153,153,153)、(154,154,154)となる。
【0052】
図9に符号70で示すように、カラー値テーブル46aを使用した場合には、4個のピクセル(151,168)、(152,168)、(151,169)、(152,169)中の3個のピクセル(152,168)、(151,169)、(152,169)のRGBカラー値が同じカラー値になっている。これに対し、図10に符号71で示すように、カラー値算出部48による計算結果では、4個のピクセル(151,168)、(152,168)、(151,169)、(152,169)中の2個のピクセル(152,168)、(151,169)のみが同じ値で、隣接するピクセルの各RGBカラー値の差は3未満である。したがって、図10に示されるカラー値算出部48による計算結果を用いた場合には、図9に示すカラー値テーブル46aを使用した場合に比べ、グラデーションの滑らかさが向上する。
【0053】
カラー値テーブル46aを使用することによって、カラー値算出部48の計算結果と同程度の滑らかさを実現するためには、カラー値テーブル46aの隣接する行のカラー値の差が3未満である必要があり、tableSizeが以下の式(16)〜(18)を満たす必要があるが、
【数6】

これを実現するためのカラー値テーブルのテーブルサイズtableSizeは、129となり、図3に示すカラー値テーブル46を記憶するメモリの12.9倍の容量のメモリが必要になる。ただし、一般的に、式(6)〜(9)の処理時間は、インデックスiを求めるための式(10)の処理時間よりも長いので、カラー値算出部48によるグラデーション描画時には、PCの処理性能は幾分低下することになる。
【0054】
《1−3》第1の実施形態の効果
以上に説明したように、第1の実施形態に係るデータ生成装置又はこの装置によって実行されるデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う画像データを効率的に他の形式のデータに変換することができる。また、グラデーション描画命令が複雑であっても、必要なメモリが一定である。
【0055】
《2》第2の実施形態
《2−1》第2の実施形態の構成
図11は、第2の実施形態に係るデータ生成装置としてのプリンタドライバ部4aを含むシステムの構成を概略的に示すブロック図である。図11において、図1に示される構成と同一又は対応する構成には、同じ符合を付す。第2の実施形態に係るホストPC1aにおいては、テーブル判定部47aが直接カラー値テーブル46aにアクセスするのではなく、テーブル作成部45aでのテーブル作成結果を用いる構成に変更されているが、その他の構成は同一である。第2の実施形態は、テーブル作成部45aにおけるテーブル作成及びテーブル判定部47aにおけるテーブル判定の点において、第1の実施形態と異なり、その他の動作においては第1の実施形態と同一である。
【0056】
《2−2》第2の実施形態の動作
図12は、プリンタドライバ部4aのスプールファイル受信部40が受信したスプールファイルをラスタライズデータに変換してプリンタ5に送信する処理を示すフローチャートである。図12において、図4(第1の実施形態)におけるステップと同一又は対応するステップには、同じ符合を付す。図12に示されるプリンタドライバ部4aの処理は、編集処理のステップS3aの内容の点において、図4に示されるプリンタドライバ部4の処理と相違する。
【0057】
図13は、図12の編集処理の詳細を示すフローチャートである。図13において、図5(第1の実施形態)におけるステップと同一又は対応するステップには、同じ符合を付す。図13に示されるプリンタドライバ部4aの編集処理は、カラー値テーブル46aを判定及び作成するステップS33aの内容、並びに、グラデーションを描画するステップS34aの内容の点において、図5に示されるプリンタドライバ部4の編集処理と相違する。
【0058】
図14は、図13のカラー値テーブルを判定及び作成するステップS33aの内容を示すフローチャートである。第2の実施形態においては、カラー値テーブル46aを作成する前に、グラデーション領域51の開始点のRGBカラー値とグラデーション領域51の終了点のRGBカラー値の各成分の差の絶対値を(tableSize−1)で割った値
【数7】

のそれぞれが、予め定められた閾値TH(例えば、第2の実施形態においては、TH=2)未満であるか比較をする(ステップS331a〜S333a)。言い換えれば、カラー値テーブル46aを使用することによって、カラー値算出部48の計算結果と同程度の滑らかさを実現するためには、カラー値テーブル46aの隣接する行のカラー値の差が3未満である必要があり、tableSizeが上記式(16)〜(18)を満たす必要がある。
【0059】
テーブル作成部45aは、RGBカラー値の各成分の差の絶対値を(tableSize−1)で割った値が閾値TH以上の場合、すなわち、ステップS331a〜S333aのいずれかの判定結果がNOである場合には、カラー値テーブル46aを作成しないことを決定し(テーブル作成しない(NG))、処理を終了する(ステップS341a)。
【0060】
一方、テーブル作成部45aは、値が閾値TH未満の場合、すなわち、ステップS331a〜S333aの全ての判定結果がYESである場合には、第1の実施形態の場合と同じ手順で、カラー値テーブル46aを作成し(ステップS334a〜S339a)、テーブルを作成することを決定し(テーブル作成する(OK))、処理を終了する(ステップS340a)。
【0061】
《2−3》第2の実施形態の効果
以上に説明したように、第2の実施形態に係るデータ生成装置又はこの装置により実行することができるデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う画像データを効率的に他の形式のデータに変換することができる。また、グラデーション描画命令が複雑であっても、必要なメモリが一定である。また、第2の実施形態によれば、テーブル作成部45においてテーブル作成前に、カラー値テーブル46a作成の要否を判定しており、カラー値テーブル46aを使用しない場合には、カラー値テーブル46a作成に掛かる処理時間を削減できるという効果が得られる。
【0062】
《3》第3の実施形態
図15は、第1及び第2の実施形態に係るデータ生成装置の一部をコンピュータプログラムで実現する場合のホストPC1又は1aの構成を概略的に示す構成図である。図15に示されるホストPCは、CPUを含むプロセッサ101、入出力インタフェース(I/F)102、記録媒体読取部103、RAM(random access memory)104、不揮発性メモリ105、ハードディスクドライブ(HDD)106、及びバス107を備えている。記録媒体読取部103によって読み取られる記録媒体としては、磁気ディスク、光ディスク、又はフラッシュメモリ等がある、第1及び第2の実施形態に係るデータ生成方法をホストPC1又は1aに実行可能にするプログラムが、入出力インタフェース(I/F)102を経由してダウンロードされ、又は、記録媒体110から記録媒体読取部103によって読み込まれ、例えば、HDD106にインストールされる。プロセッサ101は、不揮発性メモリ105又はHDD106からコンピュータプログラムをロードし、実行することによって、第1又は第2の実施形態に係るデータ生成方法を実行することができる。
【符号の説明】
【0063】
1,1a ホストPC、 2 アプリケーション部、 3 OS部、 4,4a プリンタドライバ部、 5 プリンタ、 40 スプールファイル受信部、 41 構文解析部、 42 編集部、 43 ラスタライズ部、 44 ラスタライズデータ送信部、 45,45a テーブル作成部(グラデーションデータ作成部)、 46 記憶部、 46a カラー値テーブル、 47,47a テーブル判定部(データ判定部)、 48 カラー値算出部(データ算出部)、 49 グラデーション描画部、 110 記録媒体。

【特許請求の範囲】
【請求項1】
入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するグラデーションデータ作成部と、
前記濃度値テーブルを記憶する記憶部と、
前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するデータ算出部と、
前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部と、
前記テーブル判定部による判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うグラデーション描画部と
を有することを特徴とするデータ生成装置。
【請求項2】
前記テーブル判定部は、前記グラデーションデータ作成部による前記濃度値テーブルの作成前に、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記グラデーションデータ作成部は前記濃度値テーブルを作成しない
ことを特徴とする請求項1に記載のデータ生成装置。
【請求項3】
前記グラデーション描画命令は、前記濃度値テーブルを構成する濃度値を示すデータの個数情報を含むことを特徴とする請求項1又は2に記載のデータ生成装置。
【請求項4】
前記グラデーションデータ作成部は、前記グラデーション領域の図形データに含まれる第1の位置の濃度値及び第2の位置の濃度値と、前記個数情報とを用いて、前記濃度値テーブルを作成することを特徴とする請求項3に記載のデータ生成装置。
【請求項5】
前記第1の位置と前記第2の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項4に記載のデータ生成装置。
【請求項6】
前記データ算出部は、前記グラデーション領域の図形データに含まれる第3の位置の濃度値及び第4の位置の濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出することを特徴とする請求項1から5までのいずれか1項に記載のデータ生成装置。
【請求項7】
前記第3の位置と前記第4の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項6に記載のデータ生成装置。
【請求項8】
前記濃度値は、
前記入力された画像データがモノクロ画像データであるときには、各画素における1つの色の濃度値であり、
前記入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である
ことを特徴とする請求項6又は7に記載のデータ生成装置。
【請求項9】
入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するステップと、
前記濃度値テーブルを記憶部に記憶させるステップと、
前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップと、
前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するステップと、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うステップと
を有することを特徴とするデータ生成方法。
【請求項10】
前記判定するステップにおいて、前記濃度値テーブルの作成前に、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記濃度値テーブルを作成するステップを実行しない
ことを特徴とする請求項9に記載のデータ生成方法。
【請求項11】
前記グラデーション描画命令は、前記濃度値テーブルを構成する濃度値を示すデータの個数情報を含むことを特徴とする請求項9又は10に記載のデータ生成方法。
【請求項12】
前記グラデーション領域の図形データに含まれる第1の位置の濃度値及び第2の位置の濃度値と、前記個数情報とを用いて、前記濃度値テーブルを作成することを特徴とする請求項11に記載のデータ生成方法。
【請求項13】
前記第1の位置と前記第2の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項12に記載のデータ生成方法。
【請求項14】
前記新しい濃度値を算出するステップは、前記グラデーション領域の図形データに含まれる第3の位置の濃度値及び第4の位置の濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップを含むことを特徴とする請求項9から13までのいずれか1項に記載のデータ生成方法。
【請求項15】
前記第3の位置と前記第4の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項14に記載のデータ生成方法。
【請求項16】
前記濃度値は、
前記入力された画像データがモノクロ画像データであるときには、各画素における1つの色の濃度値であり、
前記入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である
ことを特徴とする請求項14又は15に記載のデータ生成方法。
【請求項17】
コンピュータに、請求項9から16までのいずれか1項に記載のデータ生成方法を実行させるためのデータ生成プログラム。
【請求項18】
コンピュータに、請求項9から16までのいずれか1項に記載のデータ生成方法を実行させるためのデータ生成プログラムを記録した、コンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−177988(P2012−177988A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−39618(P2011−39618)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】