(57)【要約】【課題】大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるようにする。【解決手段】データ生成装置は、テーブル作成部４５と、記憶部４６と、新しい濃度値を算出するカラー値算出部４８と、濃度値テーブル４６ａにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部４７と、判定の結果が、隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、濃度値テーブルを用いて取得した濃度値を用いて、グラデーション領域内のグラデーションの描画を行い、判定の結果が、隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、データ算出部が算出した前記新しい濃度値を用いて、グラデーション領域内のグラデーションの描画を行うグラデーション描画部４９とを有している。【選択図】図１
2012177988.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するグラデーションデータ作成部と、
前記濃度値テーブルを記憶する記憶部と、
前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するデータ算出部と、
前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部と、
前記テーブル判定部による判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うグラデーション描画部と
を有することを特徴とするデータ生成装置。
【請求項２】
前記テーブル判定部は、前記グラデーションデータ作成部による前記濃度値テーブルの作成前に、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記グラデーションデータ作成部は前記濃度値テーブルを作成しない
ことを特徴とする請求項１に記載のデータ生成装置。
【請求項３】
前記グラデーション描画命令は、前記濃度値テーブルを構成する濃度値を示すデータの個数情報を含むことを特徴とする請求項１又は２に記載のデータ生成装置。
【請求項４】
前記グラデーションデータ作成部は、前記グラデーション領域の図形データに含まれる第１の位置の濃度値及び第２の位置の濃度値と、前記個数情報とを用いて、前記濃度値テーブルを作成することを特徴とする請求項３に記載のデータ生成装置。
【請求項５】
前記第１の位置と前記第２の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項４に記載のデータ生成装置。
【請求項６】
前記データ算出部は、前記グラデーション領域の図形データに含まれる第３の位置の濃度値及び第４の位置の濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出することを特徴とする請求項１から５までのいずれか１項に記載のデータ生成装置。
【請求項７】
前記第３の位置と前記第４の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項６に記載のデータ生成装置。
【請求項８】
前記濃度値は、
前記入力された画像データがモノクロ画像データであるときには、各画素における１つの色の濃度値であり、
前記入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である
ことを特徴とする請求項６又は７に記載のデータ生成装置。
【請求項９】
入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するステップと、
前記濃度値テーブルを記憶部に記憶させるステップと、
前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップと、
前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するステップと、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うステップと
を有することを特徴とするデータ生成方法。
【請求項１０】
前記判定するステップにおいて、前記濃度値テーブルの作成前に、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、
前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記濃度値テーブルを作成するステップを実行しない
ことを特徴とする請求項９に記載のデータ生成方法。
【請求項１１】
前記グラデーション描画命令は、前記濃度値テーブルを構成する濃度値を示すデータの個数情報を含むことを特徴とする請求項９又は１０に記載のデータ生成方法。
【請求項１２】
前記グラデーション領域の図形データに含まれる第１の位置の濃度値及び第２の位置の濃度値と、前記個数情報とを用いて、前記濃度値テーブルを作成することを特徴とする請求項１１に記載のデータ生成方法。
【請求項１３】
前記第１の位置と前記第２の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項１２に記載のデータ生成方法。
【請求項１４】
前記新しい濃度値を算出するステップは、前記グラデーション領域の図形データに含まれる第３の位置の濃度値及び第４の位置の濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップを含むことを特徴とする請求項９から１３までのいずれか１項に記載のデータ生成方法。
【請求項１５】
前記第３の位置と前記第４の位置とを結ぶ直線の方向は、前記グラデーション領域における濃度値の変化の方向に一致することを特徴とする請求項１４に記載のデータ生成方法。
【請求項１６】
前記濃度値は、
前記入力された画像データがモノクロ画像データであるときには、各画素における１つの色の濃度値であり、
前記入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である
ことを特徴とする請求項１４又は１５に記載のデータ生成方法。
【請求項１７】
コンピュータに、請求項９から１６までのいずれか１項に記載のデータ生成方法を実行させるためのデータ生成プログラム。
【請求項１８】
コンピュータに、請求項９から１６までのいずれか１項に記載のデータ生成方法を実行させるためのデータ生成プログラムを記録した、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラデーション描画命令を伴う図形データから他の形式の図形データを生成するデータ生成装置、データ生成方法、データ生成プログラム、及びデータ生成プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
一般に、パーソナルコンピュータ（ＰＣ）では、図形データを、点の座標とそれを結ぶ線又は面の方程式のパラメータ、及び、塗りつぶしなどの描画情報によって記憶している。一方、プリンタでは、画像を色のついた点（画素）を縦横に並べた集合として扱う。このため、通常、ＰＣは、そのプリンタドライバにおいて、図形作成ソフト（例えば、グラフィックスソフト）で作成された画像データを展開して、点の集合に変換してラスタライズデータを生成する処理（ラスタライズ処理）を行い、このラスタライズデータをプリンタに送るように構成されている。しかし、図形作成ソフトによって作成された画像データが、ある領域の色の濃さを示すカラー値（「濃度値」とも言う。）を徐々に変化させるためのグラデーション描画命令を伴う図形データを含む場合には、ＰＣは、ラスタライズデータを生成するために処理量の大きな計算を行わなければならず、このような計算のために大容量のメモリを必要とした。
【０００３】
この対策として、グラデーション描画命令を伴う図形データに対応する描画領域の始点及び終点の座標と始点及び終点のカラー値とから複数の帯状領域を有するグラデーションパターンを生成する方法の提案がある（例えば、特許文献１参照）。この提案では、グラデーションパターンを生成する装置が、色の変化方向のベクトル及びその始点と終点の色の情報を用いて、始点と終点を結ぶ直線に垂直でその内部のカラー値が均一となる複数の隣接する帯状領域を設定する。そして、帯状領域の境界と走査線との交点を求めて色の変化点とし、走査線ごとに、色の変化点及び変化点間の色を順次求め、走査線方向のグラデーションパターンを生成している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２５２８２号公報（段落０００５−０００７、要約、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法においては、複雑なグラデーション図形を描画する際に、作成されるラスタライズデータのサイズが大きくなるので、依然として大容量のメモリが必要になるという問題があった。
【０００６】
そこで、本発明は、上記従来技術の課題を解決するためになされたものであり、その目的は、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるデータ生成装置、データ生成方法、データ生成プログラム、及びこのデータ生成プログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一形態に係るデータ生成装置は、入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するグラデーションデータ作成部と、前記濃度値テーブルを記憶する記憶部と、前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するデータ算出部と、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するテーブル判定部と、前記テーブル判定部による判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うグラデーション描画部とを有することを特徴としている。
【０００８】
本発明の他の形態に係るデータ生成方法は、入力された画像データから抽出された、グラデーション描画命令を伴うグラデーション領域の図形データから、該グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルを作成するステップと、前記濃度値テーブルを記憶部に記憶させるステップと、前記グラデーション領域の図形データに含まれる濃度値を用いて、前記グラデーション領域内の各画素の新しい濃度値を算出するステップと、前記濃度値テーブルにおける隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定するステップと、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、前記濃度値テーブルを用いて取得した濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行い、前記判定の結果が、前記隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、前記データ算出部（４８）が算出した前記新しい濃度値を用いて、前記グラデーション領域内のグラデーションの描画を行うステップとを有することを特徴としている。
【０００９】
本発明の他の形態に係るデータ生成プログラムは、コンピュータに、前記データ生成方法を実行させる、コンピュータ読み取り可能なものである。
【００１０】
本発明の他の形態に係る記録媒体は、コンピュータに、前記データ生成方法を実行させるデータ生成プログラムを記録した、コンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１１】
本発明に係るデータ生成装置又はデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるという効果がある。
【００１２】
また、本発明に係るデータ生成プログラム又は記録媒体に記録されたプログラムをデータ生成装置で実行すれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う図形データを効率的に他の形式の図形データに変換することができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係るデータ生成装置としてのプリンタドライバ部を含むシステムの構成を概略的に示すブロック図である。
【図２】第１の実施形態に係るデータ生成装置におけるグラデーション領域を示す説明図である。
【図３】図１に示される記憶部に記憶されるカラー値テーブルの一例を示す図である。
【図４】第１の実施形態に係るデータ生成装置が行う処理を示すフローチャートである。
【図５】図４のステップＳ３の編集処理の一例を示すフローチャートである。
【図６】図５のステップＳ３３のカラー値テーブルの作成処理の一例を示すフローチャートである。
【図７】図５のステップＳ３４のグラデーション描画処理の一例を示すフローチャートである。
【図８】図７のステップＳ３４１のカラー値テーブルについての判定処理の一例を示すフローチャートである。
【図９】濃度値の変化が滑らかではないカラー値テーブルを用いたグラデーションの描画結果の一例を示す説明図である。
【図１０】カラー値算出部の計算結果を用いたグラデーションの描画結果の一例を示す説明図である。
【図１１】第２の実施形態に係るデータ生成装置としてのプリンタドライバ部を含むシステムの構成を概略的に示すブロック図である。
【図１２】第２の実施形態に係るデータ生成装置の処理を示すフローチャートである。
【図１３】図１２のステップＳ３ａの編集処理の一例を示すフローチャートである。
【図１４】図１３のステップＳ３３ａのカラー値テーブルの判定及び作成処理の一例を示すフローチャートである。
【図１５】第３の実施形態に係るデータ生成装置を含むＰＣの構成を概略的に示すブロック図である。
【発明を実施するための形態】
【００１４】
《１》第１の実施形態
《１−１》第１の実施形態の構成
図１は、第１の実施形態に係るデータ生成装置としてのプリンタドライバ部４を含むシステムの構成を概略的に示すブロック図である。図１に示されるシステムは、ホストＰＣ（パーソナルコンピュータ）１と、ホストＰＣ１に接続されたプリンタ５とを有している。ホストＰＣ１とプリンタ５との接続は、通信可能な方式であれば、有線又は無線のいずれであってもよい。また、プリンタ５は、例えば、ファクシミリ装置又は多機能周辺装置（ＭＦＰ）などのような、印刷機能を備えた他の装置であってもよい。
【００１５】
図１に示されるように、ホストＰＣ１は、アプリケーションソフトウェアを格納し実行するアプリケーション部２と、オペレーティングシステム（ＯＳ）を実行するＯＳ部３と、第１の実施形態に係るデータ生成装置としてのプリンタドライバ部４とを有している。ホストＰＣ１において、アプリケーション部２がデータの印刷指示を行うと、ＯＳ部３は受け取った印刷対象のデータから第１形式の画像データとしてのスプールファイルを作成し、このスプールファイルをプリンタドライバ部４に送る。プリンタドライバ部４は、受け取ったスプールファイルをプリンタ５で印字可能な第２形式の画像データとしてのラスタライズデータに変換し、このラスタライズデータをプリンタ５に送信する。
【００１６】
ＯＳ部３は、アプリケーション部２から受け取った印刷指示に応じてスプールファイルを生成するスプールファイル生成部３０を有している。スプールファイルは、描画すべき図形の形状と塗りつぶし方法とを定義する画像データを、定められた形式に基づいて記述しているファイルである。なお、ＯＳ３及びプリンタドライバ４の処理対象のファイルを、スプールファイルに代えて他のファイル（例えば、ＰｏｓｔＳｃｒｉｐｔ、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）等のページ記述言語）を処理対象とすることも可能である。
【００１７】
プリンタドライバ部４は、スプールファイル受信部４０と、構文解析部４１と、編集部４２と、ラスタライズ部４３と、ラスタライズデータ送信部４４と、グラデーションデータ作成部としてのテーブル作成部４５と、カラー値テーブル４６ａを記憶する記憶部（メモリ）４６と、データ判定部としてのテーブル判定部４７と、データ算出部としてのカラー値算出部４８と、グラデーション描画部４９とを有している。
【００１８】
スプールファイル受信部４０は、スプールファイル生成部３０により生成された第１形式の画像データとしてのスプールファイルを受信する。
【００１９】
構文解析部４１は、スプールファイル受信部４０によって受信されたスプールファイルに記述されている図形データ（第１の形式の画像データに含まれる図形データ）を解析する。
【００２０】
編集部４２は、構文解析部４１による解析結果を用いて、スプールファイルに記述されている図形データを、ラスタライズ部４３で処理可能な形式のデータに変換し、一時的に保持（登録）する。編集部４２は、スプールファイルに記述されている図形データの中から、グラデーション描画命令を伴うグラデーション領域の図形データを抽出し、テーブル作成部４５に与える。グラデーション描画命令は、例えば、カラー値テーブル４６ａを構成するデータの個数情報（後述する「ｔａｂｌｅＳｉｚｅ」）を含む。
【００２１】
テーブル作成部４５は、グラデーション描画命令にしたがって、グラデーション領域内の各画素の濃度値を算出可能にする濃度値テーブルとしてのカラー値テーブル４６ａを作成する。例えば、テーブル作成部４５は、グラデーション領域の図形データに含まれる第１の位置の濃度値及び第２の位置の濃度値と、カラー値テーブル４６ａを構成するデータの個数情報とを用いて、カラー値テーブル４６ａを作成する。言い換えれば、テーブル作成部４５は、グラデーション描画部４９が行うグラデーション描画処理（グラデーションをカラー値で描画する処理）において使用することができるグラデーションデータから成るカラー値テーブル４６ａを作成し、記憶部４６に記憶させる。カラー値テーブル４６ａは、グラデーション描画で使用する各色の濃度値（カラー値）を格納する。なお、第１の位置は、例えば、グラデーション領域の開始点であり、第２の位置は、例えば、グラデーション領域の終了点である。また、グラデーション領域の図形データに含まれる第１の位置と第２の位置とを結ぶ直線の方向は、グラデーション領域における濃度値の変化の方向に一致する。また、濃度値は、入力された画像データがモノクロ画像データであるときには、各画素における１つの色の濃度値であり、入力された画像データがカラー画像データであるときには、各画素における複数の色の濃度値である。
【００２２】
テーブル判定部４７は、作成されたカラー値テーブル４６ａをグラデーション描画部４９が行うグラデーション描画で使用するか否かを判定する。例えば、テーブル判定部４は、カラー値テーブル４６ａにおいて、隣接する位置の濃度値の差が所定の閾値未満であるか否かを判定し、閾値未満であると判断した場合には、カラー値テーブル４６ａを使用するという判断をし、閾値以上であると判断した場合には、カラー値テーブル４６ａを使用しないという判断をする。
【００２３】
カラー値算出部４８は、グラデーション描画部４９がグラデーション描画処理に際してカラー値テーブル４６ａを使用しない場合に、グラデーション描画部４９が使用する新しいカラー値を計算することによって、新しいグラデーションデータを生成する。例えば、カラー値算出部４８は、グラデーション領域の図形データに含まれる第３の位置の濃度値及び第４の位置の濃度値を用いて、グラデーション領域内の各画素の濃度値を算出するう、カラー値テーブル４６ａを作成する。なお、第３の位置は、例えば、グラデーション領域の開始点であり、第４の位置は、例えば、グラデーション領域の終了点である。また、グラデーション領域の図形データに含まれる第３の位置と第４の位置とを結ぶ直線の方向は、グラデーション領域における濃度値の変化の方向に一致する。
【００２４】
グラデーション描画部４９は、編集部４２からの指示に応じて、カラー値テーブル４６ａのグラデーションデータから、又は、カラー値算出部４８によって計算された新しいグラデーションデータから、グラデーションイメージを作成する。例えば、グラデーション描画部４９は、テーブル判定部４７による判定の結果が、隣接する位置の濃度値の差が所定の閾値未満であるという結果である場合には、カラー値テーブル４６ａを用いて取得した濃度値を用いて、グラデーション領域内のグラデーションの描画を行い、判定の結果が、隣接する位置の濃度値の差が所定の閾値以上であるという結果である場合には、カラー値算出部４８が算出した新しい濃度値を用いて、グラデーション領域内のグラデーションの描画を行う。
【００２５】
ラスタライズ部４３は、スプールファイルと、編集部４２によって保持された図形データとから、プリンタ５で印字可能なラスタライズデータを作成する。
【００２６】
ラスタライズデータ送信部４４は、ラスタライズ部４３によって作成されたラスタライズデータをプリンタ５に送信する。
【００２７】
図２は、図１に示されるプリンタドライバ部４で処理するグラデーション描画命令を伴う画像データの一例を示す説明図である。図２においては、スプールファイル画像を概念的に１枚のシート状の領域５０として示し、グラデーション領域を領域５１として示している。図２に示されるように、グラデーション描画命令は、例えば、
グラデーション領域５１の開始点の座標（Ｘｓ，Ｙｓ）と、
グラデーション領域５１の開始点におけるＲ、Ｇ、Ｂ各色のカラー値Ｒｓ，Ｇｓ，Ｂｓ（「カラー値（Ｒｓ，Ｇｓ，Ｂｓ）」とも表記する。）と、
グラデーション領域５１の終了点の座標（Ｘｅ，Ｙｅ）と、
グラデーション領域５１の終了点におけるＲ、Ｇ、Ｂ各色のカラー値Ｒｅ，Ｇｅ，Ｂｅ（「カラー値（Ｒｅ，Ｇｅ，Ｂｅ）」とも表記する。）と、
により定義される。また、図２において、単位ベクトルｕは、グラデーション領域５１の開始点の座標（Ｘｓ，Ｙｓ）から終了点の座標（Ｘｅ，Ｙｅ）に向かう方向を持つベクトルである。また、グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）からグラデーション領域５１の終了点（Ｘｅ，Ｙｅ）に向かう単位ベクトルｕに垂直な単位ベクトルをｖとし、グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）から現在の座標（Ｘ，Ｙ）に向かうベクトルをｐとする。ここで、ＲＧＢカラー値の各要素である赤（Ｒ）成分、青（Ｂ）成分、緑（Ｇ）成分のそれぞれは、各色のカラー値（濃度値）を表し、０から２５５までの２５６個の値のいずれかの値を取る。また、グラデーション描画命令に基づいて作成されるグラデーションデータの各ピクセルは、座標（Ｘ，Ｙ）により識別され、ＲＧＢカラー値（Ｒ，Ｇ，Ｂ）を持つ。例えば、図２において、グラデーション領域５１の開始点の座標は（Ｘｓ，Ｙｓ）＝（１００，１００）であり、各色のカラー値は（Ｒｓ，Ｇｓ，Ｂｓ）＝（０，０，０）である。また、例えば、図２において、グラデーション領域５１の終了点の座標は（Ｘｅ，Ｙｅ）＝（２００，２００）であり、各色のカラー値は（Ｒｅ，Ｇｅ，Ｂｅ）＝（２５５，２５５，２５５）である。なお、カラー値の種類は、Ｒ，Ｇ，Ｂの３色に限定されず、これらに加えて、又は、これらに代えて他の色を用いることも可能である。また、濃度値が２５６階調の場合を説明したが、カラー値の階調数はこの値に限定されない。
【００２８】
図１に示されるカラー値テーブル４６ａは、Ｒ，Ｇ，Ｂの各色について予め定められた個数（実施の形態１においては、ｔａｂｌｅＳｉｚｅ個）のカラー値を有する。言い換えれば、カラー値テーブル４６ａは、ＲＧＢカラー値（Ｒｉ，Ｇｉ，Ｂｉ）を格納しており、
ｉ＝０，１，…，（ｔａｂｌｅＳｉｚｅ−１）
である。「ｔａｂｌｅＳｉｚｅ」は、２以上の整数を示す。カラー値テーブル４６ａの先頭には、グラデーション領域５１の開始点のＲＧＢカラー値（Ｒｓ，Ｇｓ，Ｂｓ）が、カラー値テーブル４６ａの末尾には、グラデーション領域５１の終了点のＲＧＢカラー値（Ｒｅ，Ｇｅ，Ｂｅ）が、それぞれ格納されている。
【００２９】
図３は、テーブル作成部４５が作成するカラー値テーブル４６ａの一例を示す図である。図３には、
グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）におけるＲＧＢカラー値（Ｒｓ，Ｇｓ，Ｂｓ）が、
（Ｒｓ，Ｇｓ，Ｂｓ）＝（Ｒ０，Ｇ０，Ｂ０）＝（０，０，０）であり、
グラデーション領域５１の終了点（Ｘｅ，Ｙｅ）におけるＲＧＢカラー値（Ｒｅ，Ｇｅ，Ｂｅ）が、
（Ｒｅ，Ｇｅ，Ｂｅ）＝（Ｒ９，Ｇ９，Ｂ９）＝（２５５，２５５，２５５）であり、
カラー値テーブル４６ａのテーブルサイズ、すなわち、カラー値テーブル４６ａを構成するＲカラー値Ｒｉ、Ｇカラー値Ｇｉ、Ｂカラー値Ｂｉのそれぞれの個数（「ｔａｂｌｅＳｉｚｅ」と表記する。）が、
ｔａｂｌｅＳｉｚｅ＝１０、
ｉ＝０，１，…，（ｔａｂｌｅＳｉｚｅ−１）＝０，１，…，９
である場合が示されている。
【００３０】
《１−２》第１の実施形態の動作
図４は、プリンタドライバ部４のスプールファイル受信部４０が受信したスプールファイルをラスタライズデータに変換してプリンタ５に送信する処理を示すフローチャートである。図４に示されるように、スプールファイル受信部４０は、スプールファイル生成部３０により生成されたスプールファイルを受信する（ステップＳ１）。次に、構文解析部４１は、スプールファイル受信部４０によって受信されたスプールファイルを受け取り、これに含まれる図形データを解析する（ステップＳ２）。次に、編集部４２は、解析された各図形データを、ラスタライズ部４３が処理可能な形式のデータに変換し、変換されデータをラスタライズ部４０３に登録する編集処理（グラデーションテーブル作成部４５、記憶部４６、テーブル判定部４７、カラー値算出部４８、及びグラデーション描画部４９にグラ−デーション描画データを生成させる処理を含む）を行う、解析された各図形データを、ラスタライズ部４３が処理可能な形式のデータに変換し、変換されデータをラスタライズ部４０３に登録する編集処理を行う（ステップＳ３）。次に、ラスタライズ部４３は、登録されたデータから、プリンタ５で印字可能なラスタライズデータを作成するラスタライズ処理を行う（ステップＳ４）。次に、ラスタライズデータ送信部４４は、ラスタライズ部４３で作成されたラスタライズデータをプリンタ５に送信する（ステップＳ５）。
【００３１】
図５は、図４の編集処理の詳細を示すフローチャートである。編集部４２は、構文解析部４１によって解析された図形データのうち、ラスタライズ部４３への登録を行っていない図形データ（未登録図形）を選択し、処理を開始する（ステップＳ３１）。編集部４２は、選択した図形データがグラデーション描画命令を伴う図形データ（グラデーション領域のデータ）であるか否かを判定する（ステップＳ３２）。
【００３２】
編集部４２は、選択した図形データがグラデーション描画命令を伴う図形データであると判定した場合（ステップＳ３２においてＹＥＳの場合）には、テーブル作成部４５は、カラー値テーブル４６ａの作成を行う（ステップＳ３３）。次に、グラデーション描画部４９は、グラデーション描画を実行してグラデーションイメージを作成する（ステップＳ３４）。編集部４２は、グラデーション描画部４９によるグラデーション描画が終了した後に、図形データをラスタライズ部４３で処理可能な形式のデータに変換し（ステップＳ３５）、変換した図形データをラスタライズ部４３に登録する（ステップＳ３６）。
【００３３】
編集部４２は、選択した図形データがグラデーション領域ではないと判定した場合（ステップＳ３２においてＮＯの場合）には、テーブル作成部４５にカラー値テーブル４６ａの作成を行わせず、及び、グラデーション描画部４９にグラデーション描画を行わずに、図形データをラスタライズ部４３で処理可能な形式のデータに変換し（ステップＳ３５）、ラスタライズ部４３に図形データを登録する（ステップＳ３６）。編集部４２は、ステップＳ３１からＳ３６の処理を、全ての図形の処理が完了するまで繰り返す（ステップＳ３７）。
【００３４】
図６は、テーブル作成部４５におけるカラー値テーブル作成処理（図５のステップＳ３３）の詳細を示すフローチャートである。図６に示されるように、まず、テーブル作成部４５は、テーブルのインデックスを表す変数ｉを初期化（ｉ＝０）する（ステップＳ３３１）。次に、テーブル作成部４５は、ｉ番目のＲ成分の濃度値、ｉ番目のＧ成分の濃度値、ｉ番目のＢ成分の濃度値を、それぞれ計算する（ステップＳ３３２，Ｓ３３３，Ｓ３３４）。テーブル作成部４５は、カラー値テーブル４６ａに格納されるＲ、Ｇ、Ｂの各色の濃度値を、例えば、グラデーション領域５１の開始点のＲＧＢカラー値（Ｒｓ，Ｇｓ，Ｂｓ）とグラデーション領域５１の終了点のＲＧＢカラー値（Ｒｅ，Ｇｅ，Ｂｅ）を線形補間した値として求める。ｉ番目の要素のＲＧＢカラー値（Ｒｉ，Ｇｉ，Ｂｉ）は、例えば、次式（１）〜（３）により計算される。
【００３５】
【数１】
2012177988.tif 000003
【００３６】
テーブル作成部４５は、ステップＳ３３２，Ｓ３３３，Ｓ３３４の処理を、カラー値テーブル４６ａの全ての要素、すなわち、ｉ＝０，１，２，…，ｔａｂｌｅＳｉｚｅ−１について繰り返す（ステップＳ３３５，Ｓ３３６）。
【００３７】
図７は、グラデーション描画部４９におけるグラデーション描画処理（図５のステップＳ３４）の詳細を示すフローチャートである。図７に示されるように、まず、グラデーション描画部４９は、テーブル判定部４７により作成されたカラー値テーブル４６ａのデータを、グラデーション描画処理で使用するか否かの判定を行う（ステップＳ３４１）。グラデーションの描画は、グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）から始まり、ｘ座標をグラデーション終了点のｘ座標Ｘｅに向けて変化させ１ライン分の処理をする。そして、ｙ座標をグラデーション終了点のｙ座標Ｙｅに向けて変化させながら、同様の手順で１ライン分の処理を行い、この処理を繰り返す。ｘ座標方向の変化分Δｘは、次式（４）により算出する（ステップＳ３４２）。
Δｘ＝ｓｉｇｎ（Ｘｅ−Ｘｓ）                        （４）
ここで、ｓｉｇｎ（）は、引数の値が負の場合には一１を、正の場合には＋１を返す関数である。
同様に、ｙ座標方向の変化分Δｙは、次式（５）により算出する（ステップＳ３４３）。
Δｙ＝ｓｉｇｎ（Ｙｅ−Ｙｓ）                        （５）
【００３８】
次に、グラデーション描画部４９は、グラデーションの描画開始位置を設定し（すなわち、ｘ＝Ｘｓ、ｙ＝Ｙｓとし）、描画を開始する（ステップＳ３４４，Ｓ３４５）。次に、グラデーション描画部４９は、ステップＳ３４１のテーブルデータ判定処理の結果をチェックする（ステップＳ３４６）。
【００３９】
グラデーション描画部４９は、カラー値テーブル４６ａのデータをグラデーション描画処理で使用するか否かの判定結果が「使用しない（ＮＧ）」の場合は、カラー値算出部４８に、現在の座標（ｘ，ｙ）に対応する新しいＲＧＢカラー値の計算を行わせる（ステップＳ３４８）。
【００４０】
グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）からグラデーション領域５１の終了点（Ｘｅ，Ｙｅ）に向かう単位ベクトルｕを、ｕ＝（Ｘｕ，Ｙｕ）とし、単位ベクトルｕに垂直な単位ベクトルｖを、ｖ＝（Ｘｖ，Ｙｖ）とし、グラデーション領域５１の開始点（Ｘｓ，Ｙｓ）から現在の座標（ｘ，ｙ）に向かうベクトルｐを、ｐ＝（Ｘｐ，Ｙｐ）とすると、現在の座標（ｘ，ｙ）に対応するＲＧＢカラー値（Ｒ，Ｇ，Ｂ）の値は、例えば、次式（６）〜（９）により計算される。
【００４１】
【数２】
2012177988.tif 000004
【００４２】
一方、グラデーション描画部４９は、カラー値テーブル４６ａのデータをグラデーション描画処理で使用するか否かの判定結果が「使用する（ＯＫ）」の場合は、カラー値テーブル４６ａに格納されているＲＧＢカラー値を描画に使用するために、現在の座標（ｘ，ｙ）に対応するカラー値テーブル４６ａのデータを参照する（ステップＳ３４７）。現在の座標（ｘ，ｙ）に対応するカラー値テーブルのインデックスｉは、次式（１０）によって計算される。
【００４３】
【数３】
2012177988.tif 000005
ここで、ｉｎｔ（）は、引数の小数部分を除いた整数値を返す関数である。
【００４４】
そして、グラデーション描画部４９は、次の点の処理に進むためにｘ座標をΔｘだけ変化させる（ステップＳ３４９）。グラデーション描画部４９は、以上のステップＳ３４６〜Ｓ３４９の処理を１ライン分の描画が完了するまで繰り返す（ステップＳ３５０）。グラデーション描画部４９は、１ライン分の描画が終了したら次のラインの処理に進むためにｙ座標をΔｙだけ変化させる（ステップＳ３５１）。グラデーション描画部４９は、以上のステップＳ３４５〜Ｓ３５１の処理を全てのラインの描画が完了するまで繰り返す（ステップＳ３５２）。
【００４５】
図８は、テーブル判定部４７におけるテーブル判定処理（図７のステップＳ３４１）を示すフローチャートである。図８に示されるように、まず、テーブル判定部４７は、テーブルのインデックスを表す変数ｉを初期化（ｉ＝０）する（ステップＳ３４１１）。テーブル判定部４７は、カラー値テーブル４６ａのデータを、グラデーション描画部４９によるグラデーション描面に使用するか否かの判定を行う。テーブル判定部４７は、カラー値テーブルにおける隣り合う列のＲＧＢ各色のカラー値の差を算出し、隣り合う列の各ピクセルの差が２０以上の場合にはカラー値が滑らかに変化するグラデーションにならないと判断し、差が２０未満の場合にはカラー値が滑らかに変化するグラデーションになると判断する。テーブル判定部４７は、現在のインデックスｉが示すＲＧＢカラー値（Ｒｉ，Ｇｉ，Ｂｉ）と、隣接するＲＧＢカラー値（Ｒｉ＋１，Ｇｉ＋１，Ｂｉ＋１）をそれぞれ比較し、
｜（Ｒｉ）−（Ｒｉ＋１）｜＜２０であるか否か、
｜（Ｇｉ）−（Ｇｉ＋１）｜＜２０であるか否か、
｜（Ｂｉ）−（Ｂｉ＋１）｜＜２０であるか否か
を判断する（ステップＳ３４１２，Ｓ３４１３，Ｓ３４１４）。テーブル判定部４７は、ステップＳ３４１２，Ｓ３４１３，Ｓ３４１４において、一つでも差が２０以上のもの（判断がＮＯのもの）があれば、濃度値が滑らかに変化するグラデーションにならないと判断（判定結果をＮＧと）して処理を終了する（ステップＳ３４１８）。
【００４６】
一方、テーブル判定部４７は、ステップＳ３４１２，Ｓ３４１３，Ｓ３４１４において、全ての差が２０未満の場合（判断がＹＥＳの場合）、インデックスｉを１増加させる（ステップＳ３４１５）。テーブル判定部４７は、以上のステップＳ３４１２〜Ｓ３４１５の処理を、カラー値テーブル４６ａにおける隣接する全ての要素を比較するまで繰り返す（ステップＳ３４１６）。テーブル判定部４７は、全ての隣接する要素の差が２０未満であれば、画素値が滑らかに変化するグラデーションであると判断（判定結果をＯＫ）して処理を終了する（ステップＳ３４１７）。図２で示したグラデーション描画命令からｔａｂｌｅＳｉｚｅ＝１０で作成したカラー値テーブル（図３）の場合、
｜Ｒ０−Ｒ１｜＝２８≧２０
であり、判定結果はＮＧとなる。
【００４７】
図９は、グラデーションデータを示すカラー値テーブル４６ａにおける濃度値の変化が滑らかではない場合の描画結果の一例を示す説明図である。カラー値テーブル４６ａを用いて描画を行うと、図９のように、カラー値テーブル４６ａのインデックスｉが変化する境界における色の濃度値の変化が大きくなり、描画結果は、滑らかなグラデーションを描画したものとならない。例えば、座標（ｘ，ｙ）＝（１５１，１６８）に対応するカラー値テーブルのインデックスｉは、上記式（１０）を用いて算出すると、以下の式（１１）のように、ｉ＝５となり、カラー値テーブル４６ａのＲ５，Ｂ５，Ｇ５の欄から、ＲＧＢカラー値（１４１，１４１，１４１）を得る。
【００４８】
【数４】
2012177988.tif 000006
【００４９】
同樣に、式（１０）を用いて、
座標（ｘ，ｙ）＝（１５２，１６８）
座標（ｘ，ｙ）＝（１５１，１６９）
座標（ｘ，ｙ）＝（１５２，１６９）
のそれぞれについて、カラー値テーブル４６ａのインデックスｉを算出すると、いずれもｉ＝６となり、ＲＧＢカラー値は、（１７０，１７０，１７０）となる。
【００５０】
図１０は、カラー値算出部４８の計算結果を用いた描画結果の一例を示す説明図である。この場合には、図９の場合と異なり、滑らかなグラデーション描画が実現できる。例えば、座標（ｘ，ｙ）＝（１５１，１６８）におけるＲＧＢカラー値を、上記式（６）〜（９）を用いて算出すると、以下の式（１２）〜（１５）の計算により、ＲＧＢカラー値（１５１，１５１，１５１）を得る。
【数５】
2012177988.tif 000007
【００５１】
同様に、式（１２）〜（１５）を用いて、
座標（ｘ，ｙ）＝（１５２，１６８）
座標（ｘ，ｙ）＝（１５１，１６９）
座標（ｘ，ｙ）＝（１５２，１６９）
のそれぞれについて、ＲＧＢカラー値を算出すると、それぞれ（１５３，１５３，１５３）、（１５３，１５３，１５３）、（１５４，１５４，１５４）となる。
【００５２】
図９に符号７０で示すように、カラー値テーブル４６ａを使用した場合には、４個のピクセル（１５１，１６８）、（１５２，１６８）、（１５１，１６９）、（１５２，１６９）中の３個のピクセル（１５２，１６８）、（１５１，１６９）、（１５２，１６９）のＲＧＢカラー値が同じカラー値になっている。これに対し、図１０に符号７１で示すように、カラー値算出部４８による計算結果では、４個のピクセル（１５１，１６８）、（１５２，１６８）、（１５１，１６９）、（１５２，１６９）中の２個のピクセル（１５２，１６８）、（１５１，１６９）のみが同じ値で、隣接するピクセルの各ＲＧＢカラー値の差は３未満である。したがって、図１０に示されるカラー値算出部４８による計算結果を用いた場合には、図９に示すカラー値テーブル４６ａを使用した場合に比べ、グラデーションの滑らかさが向上する。
【００５３】
カラー値テーブル４６ａを使用することによって、カラー値算出部４８の計算結果と同程度の滑らかさを実現するためには、カラー値テーブル４６ａの隣接する行のカラー値の差が３未満である必要があり、ｔａｂｌｅＳｉｚｅが以下の式（１６）〜（１８）を満たす必要があるが、
【数６】
2012177988.tif 000008
これを実現するためのカラー値テーブルのテーブルサイズｔａｂｌｅＳｉｚｅは、１２９となり、図３に示すカラー値テーブル４６を記憶するメモリの１２．９倍の容量のメモリが必要になる。ただし、一般的に、式（６）〜（９）の処理時間は、インデックスｉを求めるための式（１０）の処理時間よりも長いので、カラー値算出部４８によるグラデーション描画時には、ＰＣの処理性能は幾分低下することになる。
【００５４】
《１−３》第１の実施形態の効果
以上に説明したように、第１の実施形態に係るデータ生成装置又はこの装置によって実行されるデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う画像データを効率的に他の形式のデータに変換することができる。また、グラデーション描画命令が複雑であっても、必要なメモリが一定である。
【００５５】
《２》第２の実施形態
《２−１》第２の実施形態の構成
図１１は、第２の実施形態に係るデータ生成装置としてのプリンタドライバ部４ａを含むシステムの構成を概略的に示すブロック図である。図１１において、図１に示される構成と同一又は対応する構成には、同じ符合を付す。第２の実施形態に係るホストＰＣ１ａにおいては、テーブル判定部４７ａが直接カラー値テーブル４６ａにアクセスするのではなく、テーブル作成部４５ａでのテーブル作成結果を用いる構成に変更されているが、その他の構成は同一である。第２の実施形態は、テーブル作成部４５ａにおけるテーブル作成及びテーブル判定部４７ａにおけるテーブル判定の点において、第１の実施形態と異なり、その他の動作においては第１の実施形態と同一である。
【００５６】
《２−２》第２の実施形態の動作
図１２は、プリンタドライバ部４ａのスプールファイル受信部４０が受信したスプールファイルをラスタライズデータに変換してプリンタ５に送信する処理を示すフローチャートである。図１２において、図４（第１の実施形態）におけるステップと同一又は対応するステップには、同じ符合を付す。図１２に示されるプリンタドライバ部４ａの処理は、編集処理のステップＳ３ａの内容の点において、図４に示されるプリンタドライバ部４の処理と相違する。
【００５７】
図１３は、図１２の編集処理の詳細を示すフローチャートである。図１３において、図５（第１の実施形態）におけるステップと同一又は対応するステップには、同じ符合を付す。図１３に示されるプリンタドライバ部４ａの編集処理は、カラー値テーブル４６ａを判定及び作成するステップＳ３３ａの内容、並びに、グラデーションを描画するステップＳ３４ａの内容の点において、図５に示されるプリンタドライバ部４の編集処理と相違する。
【００５８】
図１４は、図１３のカラー値テーブルを判定及び作成するステップＳ３３ａの内容を示すフローチャートである。第２の実施形態においては、カラー値テーブル４６ａを作成する前に、グラデーション領域５１の開始点のＲＧＢカラー値とグラデーション領域５１の終了点のＲＧＢカラー値の各成分の差の絶対値を（ｔａｂｌｅＳｉｚｅ−１）で割った値
【数７】
2012177988.tif 000009
のそれぞれが、予め定められた閾値ＴＨ（例えば、第２の実施形態においては、ＴＨ＝２）未満であるか比較をする（ステップＳ３３１ａ〜Ｓ３３３ａ）。言い換えれば、カラー値テーブル４６ａを使用することによって、カラー値算出部４８の計算結果と同程度の滑らかさを実現するためには、カラー値テーブル４６ａの隣接する行のカラー値の差が３未満である必要があり、ｔａｂｌｅＳｉｚｅが上記式（１６）〜（１８）を満たす必要がある。
【００５９】
テーブル作成部４５ａは、ＲＧＢカラー値の各成分の差の絶対値を（ｔａｂｌｅＳｉｚｅ−１）で割った値が閾値ＴＨ以上の場合、すなわち、ステップＳ３３１ａ〜Ｓ３３３ａのいずれかの判定結果がＮＯである場合には、カラー値テーブル４６ａを作成しないことを決定し（テーブル作成しない（ＮＧ））、処理を終了する（ステップＳ３４１ａ）。
【００６０】
一方、テーブル作成部４５ａは、値が閾値ＴＨ未満の場合、すなわち、ステップＳ３３１ａ〜Ｓ３３３ａの全ての判定結果がＹＥＳである場合には、第１の実施形態の場合と同じ手順で、カラー値テーブル４６ａを作成し（ステップＳ３３４ａ〜Ｓ３３９ａ）、テーブルを作成することを決定し（テーブル作成する（ＯＫ））、処理を終了する（ステップＳ３４０ａ）。
【００６１】
《２−３》第２の実施形態の効果
以上に説明したように、第２の実施形態に係るデータ生成装置又はこの装置により実行することができるデータ生成方法によれば、大容量のメモリを必要とせずに、グラデーション描画命令を伴う画像データを効率的に他の形式のデータに変換することができる。また、グラデーション描画命令が複雑であっても、必要なメモリが一定である。また、第２の実施形態によれば、テーブル作成部４５においてテーブル作成前に、カラー値テーブル４６ａ作成の要否を判定しており、カラー値テーブル４６ａを使用しない場合には、カラー値テーブル４６ａ作成に掛かる処理時間を削減できるという効果が得られる。
【００６２】
《３》第３の実施形態
図１５は、第１及び第２の実施形態に係るデータ生成装置の一部をコンピュータプログラムで実現する場合のホストＰＣ１又は１ａの構成を概略的に示す構成図である。図１５に示されるホストＰＣは、ＣＰＵを含むプロセッサ１０１、入出力インタフェース（Ｉ／Ｆ）１０２、記録媒体読取部１０３、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１０４、不揮発性メモリ１０５、ハードディスクドライブ（ＨＤＤ）１０６、及びバス１０７を備えている。記録媒体読取部１０３によって読み取られる記録媒体としては、磁気ディスク、光ディスク、又はフラッシュメモリ等がある、第１及び第２の実施形態に係るデータ生成方法をホストＰＣ１又は１ａに実行可能にするプログラムが、入出力インタフェース（Ｉ／Ｆ）１０２を経由してダウンロードされ、又は、記録媒体１１０から記録媒体読取部１０３によって読み込まれ、例えば、ＨＤＤ１０６にインストールされる。プロセッサ１０１は、不揮発性メモリ１０５又はＨＤＤ１０６からコンピュータプログラムをロードし、実行することによって、第１又は第２の実施形態に係るデータ生成方法を実行することができる。
【符号の説明】
【００６３】
１，１ａ  ホストＰＣ、  ２  アプリケーション部、  ３  ＯＳ部、  ４，４ａ  プリンタドライバ部、  ５  プリンタ、  ４０  スプールファイル受信部、  ４１  構文解析部、  ４２  編集部、  ４３  ラスタライズ部、  ４４  ラスタライズデータ送信部、  ４５，４５ａ  テーブル作成部（グラデーションデータ作成部）、  ４６  記憶部、  ４６ａ  カラー値テーブル、  ４７，４７ａ  テーブル判定部（データ判定部）、  ４８  カラー値算出部（データ算出部）、  ４９  グラデーション描画部、  １１０  記録媒体。
【図１】
2012177988.tif 000010
【図２】
2012177988.tif 000011
【図３】
2012177988.tif 000012
【図４】
2012177988.tif 000013
【図５】
2012177988.tif 000014
【図６】
2012177988.tif 000015
【図７】
2012177988.tif 000016
【図８】
2012177988.tif 000017
【図９】
2012177988.tif 000018
【図１０】
2012177988.tif 000019
【図１１】
2012177988.tif 000020
【図１２】
2012177988.tif 000021
【図１３】
2012177988.tif 000022
【図１４】
2012177988.tif 000023
【図１５】
2012177988.tif 000024