(57)【要約】【課題】プリンタドライバ側でオブジェクトの種類に対応したカラー・マッチング処理を自動的に実行可能にすること。【解決手段】上位モジュールの実行時にリンクされ，上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，上位モジュールからプログラムモジュールに出力された第１の命令を入力し，予め設定された条件に基づいて，入力した第１の命令中の任意の引数を変更して第２の命令を生成し，生成した第２の命令をプログラムモジュールに出力し，プログラムモジュールから第２の命令に応じた処理結果を入力し，入力した処理結果に基づいて，上位モジュール用の処理結果を上位モジュールに出力する。【選択図】        図２３
2006286004.tif 000002
【特許請求の範囲】
【請求項１】
上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，
前記上位モジュールから前記プログラムモジュールに出力された第１の命令を入力し，予め設定された条件に基づいて，入力した第１の命令中の任意の引数を変更して第２の命令を生成し，生成した第２の命令を前記プログラムモジュールに出力する命令生成工程と，
前記プログラムモジュールから前記第２の命令に応じた処理結果を入力し，入力した処理結果に基づいて，上位モジュール用の処理結果を前記上位モジュールに出力する処理結果出力工程と，
を含むことを特徴とする動的にリンク可能なプログラムモジュールの機能拡張方法。
【請求項２】
上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，
前記プログラムモジュールが備えるルーチン等の命令実行情報と同一名称でかつ内容の異なる命令実行情報が少なくとも一つ用意されており，前記上位モジュールから前記命令実行情報のいずれかを指定した命令を入力すると，該当する命令実行情報に基づいて前記入力した命令に応じた処理を実行し，実行した処理結果を前記上位モジュールに出力する命令実行工程を含むことを特徴とする動的にリンク可能なプログラムモジュールの機能拡張方法。
【請求項３】
上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，
前記上位モジュールから指定可能でかつ前記プログラムモジュールが有しないルーチン等の命令実行情報が少なくとも一つ用意されており，前記上位モジュールから前記命令実行情報を指定した命令を入力すると，該当する命令実行情報に基づいて所定の処理を実行し，実行した処理結果を前記上位モジュールに出力する命令実行工程を含み，
前記命令実行工程は，前記命令実行情報に応じて前記プログラムモジュールに命令を出力し，前記プログラムモジュールに対して前記命令実行情報に基づく処理を実行させる工程を含むことを特徴とする動的にリンク可能なプログラムモジュールの機能拡張方法。
【請求項４】
請求項１〜３のいずれか一つに記載の動的にリンク可能なプログラムモジュールの機能拡張方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，動的にリンク可能なプログラムモジュールの機能拡張方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
カラー・モニタ上に表示された画像を正確にカラープリンタに出力するため，デバイス・インディペンデント・カラーを用いたカラー・マッチング方式が現在研究されている。このカラー・マッチング方式は，デバイスに独立な色信号を中間的に用いることにより，様々なデバイス間で測色的に一致した色再現を行うことを目的とするものである。一般に，デバイス独立な色信号には，ＣＩＥ  １９３１  ＸＹＺ信号やＬ＊ａ＊ｂ＊信号のような人間の視覚特性に合った信号が用いられる。
【０００３】
ところが，人間が見て好ましいと思う色再現は，一般に自然画像，文字，べた画像等，画像の種類によって異なっている。したがって，様々な画像種を含むカラー・イメージ情報を出力するためには，カラー・イメージに含まれる文書構造に従って，色処理を切り換えることができるアーキテクチャーが必要となる。
【０００４】
上記カラー・イメージに含まれる文書構造に従って色処理を切り換える技術を開示するものの一例として，特開平７−１０７３１２号公報『カラー情報処理方法および装置』がある。このカラー情報処理方法および装置は，アプリケーションが画像種毎に適したカラー・マッチングの属性情報を設定し，その属性情報に従ってデバイス・ドライバあるいはプリンタ内のカラー・マッチングの処理部が最適な色変換処理を実行するというものである。
【０００５】
【特許文献１】特開平７−１０７３１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら，上記特開平７−１０７３１２号公報『カラー情報処理方法および装置』に開示されたカラー・イメージの出力方式によれば，アプリケーション側で画像種毎にカラー・マッチングの属性情報を付加するため，アプリケーションがカラー・マッチングの属性情報を付加する機能を備えていない場合は，単一のカラー・マッチング処理しか実行することができないという問題があった。
【０００７】
また，どのように属性情報を設定するかという点もアプリケーションに依存しているため，同じカラー・イメージ情報であっても，アプリケーション毎に出力結果が異なってしまうという問題があった。
【０００８】
また，現状では，ほとんどのアプリケーションが画像種毎にカラー・マッチングの属性情報を付加する機能を有していないため，画像種毎にカラー・マッチングの方法を切り替えることは事実上不可能であるという問題があった。
【０００９】
本発明は上記に鑑みてなされたものであって，プリンタドライバ側でオブジェクトの種類に対応したカラー・マッチング処理を自動的に実行可能にすることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，前記上位モジュールから前記プログラムモジュールに出力された第１の命令を入力し，予め設定された条件に基づいて，入力した第１の命令中の任意の引数を変更して第２の命令を生成し，生成した第２の命令を前記プログラムモジュールに出力する命令生成工程と，前記プログラムモジュールから前記第２の命令に応じた処理結果を入力し，入力した処理結果に基づいて，上位モジュール用の処理結果を前記上位モジュールに出力する処理結果出力工程と，を含むことを特徴とする。
【００１１】
また、請求項２にかかる発明は、上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，前記プログラムモジュールが備えるルーチン等の命令実行情報と同一名称でかつ内容の異なる命令実行情報が少なくとも一つ用意されており，前記上位モジュールから前記命令実行情報のいずれかを指定した命令を入力すると，該当する命令実行情報に基づいて前記入力した命令に応じた処理を実行し，実行した処理結果を前記上位モジュールに出力する命令実行工程を含むことを特徴とする。
【００１２】
また、請求項３にかかる発明は、上位モジュールの実行時にリンクされ，前記上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，前記上位モジュールから指定可能でかつ前記プログラムモジュールが有しないルーチン等の命令実行情報が少なくとも一つ用意されており，前記上位モジュールから前記命令実行情報を指定した命令を入力すると，該当する命令実行情報に基づいて所定の処理を実行し，実行した処理結果を前記上位モジュールに出力する命令実行工程を含み，前記命令実行工程は，前記命令実行情報に応じて前記プログラムモジュールに命令を出力し，前記プログラムモジュールに対して前記命令実行情報に基づく処理を実行させる工程を含むことを特徴とする。
【００１３】
また、請求項４にかかる発明は、請求項１〜３のいずれか一つに記載の動的にリンク可能なプログラムモジュールの機能拡張方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１４】
請求項１にかかる発明によれば，上位モジュールの実行時にリンクされ，上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，上位モジュールからプログラムモジュールに出力された第１の命令を入力し，予め設定された条件に基づいて，入力した第１の命令中の任意の引数を変更して第２の命令を生成し，生成した第２の命令をプログラムモジュールに出力する命令生成工程と，プログラムモジュールから第２の命令に応じた処理結果を入力し，入力した処理結果に基づいて，上位モジュール用の処理結果を上位モジュールに出力する処理結果出力工程と，を含むため，プログラムモジュールが既成のものであり，そのソースプログラムが手元にない場合であっても，最も簡易な形態でプログラムモジュールの機能を拡張・変更することができる。
【００１５】
また，請求項２にかかる発明によれば，上位モジュールの実行時にリンクされ，上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，プログラムモジュールが備えるルーチン等の命令実行情報と同一名称でかつ内容の異なる命令実行情報が少なくとも一つ用意されており，上位モジュールから命令実行情報のいずれかを指定した命令を入力すると，該当する命令実行情報に基づいて入力した命令に応じた処理を実行し，実行した処理結果を上位モジュールに出力する命令実行工程を含むため，プログラムモジュールが既成のものであり，そのソースプログラムが手元にない場合であっても，プログラムモジュールの機能を拡張・変更することができる。
【００１６】
また，請求項３にかかる発明によれば，上位モジュールの実行時にリンクされ，上位モジュールから命令を入力し，入力した命令に応じた処理を実行する動的にリンク可能なプログラムモジュールの機能拡張方法において，上位モジュールから指定可能でかつプログラムモジュールが有しないルーチン等の命令実行情報が少なくとも一つ用意されており，上位モジュールから命令実行情報を指定した命令を入力すると，該当する命令実行情報に基づいて所定の処理を実行し，実行した処理結果を上位モジュールに出力する命令実行工程を含み，命令実行工程は，命令実行情報に応じてプログラムモジュールに命令を出力し，プログラムモジュールに対して命令実行情報に基づく処理を実行させる工程を含むため，プログラムモジュールが既成のものであり，そのソースプログラムが手元にない場合であっても，最も自由度の大きい形態でプログラムモジュールの機能を拡張・変更することができる。
【００１７】
また，請求項４にかかる発明によれば，請求項１〜３のいずれか一つに記載の動的にリンク可能なプログラムモジュールの機能拡張方法をコンピュータに実行させるプログラムを記録したため，これをコンピュータに実行させることにより，プログラムモジュールが既成のものであり，そのソースプログラムが手元にない場合であっても，プログラムモジュールの機能を拡張・変更することができる。
【発明を実施するための最良の形態】
【００１８】
以下，本発明に係る動的にリンク可能なプログラムモジュールの拡張方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態について，添付の図面を参照しつつ詳細に説明する。
【００１９】
〔実施の形態１〕
実施の形態１に係る色変換処理装置および方法は，アプリケーションが描画命令を使ってカラー・マッチングのＯＮおよびＯＦＦを制御するシステムにおいて，カラー・マッチングがＯＦＦの場合であっても，カラー・マッチングをＯＮにした場合と同様な描画命令に書き換えることを可能にしたものである。なお，実施の形態１においては，モニタに描画されたカラー・イメージをプリンタに出力する場合を例として説明する。
【００２０】
図１は，実施の形態１に係る色変換処理装置の概略構成を示すブロック図である。図１に示す色変換処理装置は，アプリケーション１２から描画命令を入力し，モニタおよびプリンタに対する描画処理を管理する描画モジュール１１と，描画モジュール１１から描画命令を入力し，カラー・マッチング処理を実行して，プリンタ１４に対して出力する出力データに変換するプリンタ・ドライバ１３とから構成されている。
【００２１】
図２は，図１に示すプリンタ・ドライバ１３の概略構成を示すブロック図である。プリンタ・ドライバ１３は，カラー・マッチングがＯＦＦの場合に割込処理モジュールとして起動され，描画モジュール１１から出力された描画命令を入力し，カラー・マッチング用色空間の設定を行ってカラー・マッチングがＯＮの場合と同様な描画命令に再構築する描画命令変換部２１と，描画命令変換部２１で再構築された描画命令を入力し，カラー・マッチング処理を実行して，カラー画像出力装置に対して出力する出力データに変換するプリンタ出力用データ生成部２２とを備えている。
【００２２】
描画命令変換部２１は，割込処理により，カラー・マッチング用色空間の設定を行い，カラー・マッチングがＯＦＦの場合の描画命令をカラー・マッチングがＯＮの場合の描画命令に再構築する。加えて，描画命令変換部２１は，描画されるオブジェクトの種類を判定し，判定したオブジェクトの種類に対応したカラー・マッチング方法を選択し，描画命令の再構築を行う際，選択したカラー・マッチング方法のパラメータを描画命令中に設定する。
【００２３】
プリンタ出力用データ生成部２２は，カラー・マッチングモジュール２３を備えている。カラー・マッチングモジュール２３は，デバイスの特性を記述したデバイス・プロファイル２７と，デバイス・プロファイル２７を用いてカラー・マッチング処理を実行する複数の色変換エンジン２４〜２６とを備えている。プリンタ出力用データ生成部２２は，描画命令変換部２１で描画命令中に設定されたカラー・マッチング方法のパラメータに基づいて，図３に示すように複数の色変換エンジン２４〜２６の中から例えば色変換エンジン２４を起動させ，デバイス・プロファイル２７を用いてカラー・マッチング処理を実行させる。
【００２４】
なお，上述した実施の形態１に係る色変換処理装置の構成においては，描画命令変換部２１が本発明の判定手段，種類判定手段および選択手段に，プリンタ出力用データ生成部２２が本発明の色変換手段に対応する。
【００２５】
次に，実施の形態１に係る色変換処理装置の動作を説明する。なお，以下では，説明をより明確にするため，アプリケーションが描画命令を使ってカラー・マッチングを制御する方法を説明した後，実施の形態１に係る色変換処理装置の動作説明を行うことにする。
【００２６】
（アプリケーションによるカラー・マッチングの制御）
（１）イメージの印刷プロセス，（２）オブジェクトの色指定方法，（３）カラー・マッチング処理の順でアプリケーションが描画命令を使ってカラー・マッチングを制御する方法を説明する。
【００２７】
（１）イメージ印刷プロセス
図４は，種々のオブジェクトが含まれたカラー・イメージを示す説明図である。図４に示すカラー・イメージ４１は，自然画像（ビットマップ画像）４２，フォント４３，線画４４，単色の塗りつぶしパターン４５を含んでいる。このような複合文書は，一般的な文書作成アプリケーションで容易に作成可能であり，また，高画質なプリントに対する需要も高まっている。以下，このカラー・イメージを印刷する場合を例にとり，一般的な印刷プロセスについて説明する。
【００２８】
オペレータは，アプリケーション１２に用意されたツールを用いて画面上に図４に示すカラー・イメージ４１を描いた後，印刷メニューから印刷を指示する。この際，文書作成アプリケーションは描画データを記憶しておき，印刷が指示されると記憶している描画データに従ってプリンタ・ドライバ１３にデータを送信して印刷を実行させる。
【００２９】
通常オペレーティング・システムは，図１に示す描画モジュール１１を備えており，前述したように，描画モジュール１１がモニタやプリンタに対する描画処理を管理している。
【００３０】
・モニタへの出力
例えば，図４に示すカラー・イメージ４１をモニタ上に描画する場合，オペレータによるアプリケーション１２のツールを用いた描画操作は，アプリケーション１２内で描画モジュール１１が解釈可能な描画命令に変換されて描画モジュール１１に送られる。そして，描画モジュール１１は，対象モニタ用のドライバへ描画命令を伝え，モニタのデバイス・ドライバによってモニタ上にイメージが描かれる。
【００３１】
・カラープリンタへの出力
印刷の場合も，モニタ上への描画と同様のプロセスがとられる。オペレータがアプリケーション１２を使ってモニタ上で編集したイメージをプリンタに出力する場合，アプリケーション１２から印刷ジョブを始めるという命令が描画モジュール１１に送信される。描画モジュール１１は，印刷開始のメッセージを受け取ると，モニタに描画する場合と同様の手順でプリンタ・ドライバ１３へ描画命令の送信を始める。プリンタ・ドライバ１３では，描画モジュール１１からの描画命令を解釈してプリンタが解釈可能な出力データに変換し，ローカル接続あるいはネットワーク接続されたプリンタ１４にデータを送信する。印刷が終了すると，アプリケーション１２は，描画モジュール１１に印刷終了命令を送信し，オペレータが再び編集可能な状態になる。
【００３２】
例えば，ポストスクリプト・プリンタに出力する場合，プリンタ・ドライバ１３は，ポストスクリプト・コードに描画命令を変換する役割を果たすことになる。
【００３３】
（２）オブジェクトの色指定方法
次に，種々のオブジェクトに対する主な色の指定方法について説明する。描画は，描画モジュール１１がサポートするオブジェクト単位で行われる。ここでいうオブジェクトとは，描画される個々の図形を意味し，例えばビットマップ，フォント，ライン，パターン等がある。これらのオブジェクトに対する色指定の方法は，大きく以下の３通りに分けることができる。
【００３４】
・ビットマップ・データの色指定方法
自然画等は，ビットマップ形式のデータ構造をとる。すなわち，各画素毎にＲＧＢの値を持っており，その画素値をモニタやプリンタのデバイス・ドライバへ送る。描画は，まずビットマップを書き込むメモリ領域を確保した後，そのメモリへ画素値を転送することによって行われる。
【００３５】
・フォント，ラインの色指定方法
フォントやラインは，単色で描画されることが多い。すなわち，単色のフォントでテキストを表示したり，ラインを書いたりする。また，所定の領域を単色で塗りつぶすような場合も，フォントやラインに色指定を行う場合と同様な方法で色指定を行う。フォントやラインについては，一般に，まず色を指定した後，所定のオブジェクトでの描画を開始する。例えば，赤色でタイトル文を描いた後，緑の線を引く場合，
１．ペンを赤色に設定
２．フォントの描画
３．ペンを緑色に設定
４．ラインの描画
というようにペンというオブジェクトが描画の色情報を記憶し，常にペンの色情報を使って描画を行うという方法がとられる場合が多い。
【００３６】
・特定パターンの色指定方法
特定パターンとは，所定の領域にグラデーションをつけたものや，フォントに模様をつけたりしたものである。この場合は複数の色を用いて描画が行われる。自然画等のビットマップ形式と異なるのは，ビットマップが全画素に対して色情報を持つのに対し，特定パターンの場合は，小さなビットマップ・パターンを拡大したり，変形したり，クリッピングしたりして所定の領域に色付けする点である。
【００３７】
ここで，緑から白に変化するグラデーションで２００×１０００画素の矩型領域を塗りつぶす場合を例にして，特定パターンでの描画を説明する。特定パターンでの描画の場合，まず，パターンと呼ばれるオブジェクトを作成する。パターンは，例えば６４×６４画素程度の小さなビットマップである。アプリケーション上で，予め緑から白に変化する６４×６４画素のビットマップ・パターンを生成しておき，このビットマップ・パターンを２００×１０００画素に拡大して矩型領域を塗りつぶす。この拡大や塗りつぶし等は，通常，描画モジュール３１が自動的に行うものである。このようなパターンによる描画は，塗りつぶし領域の変形が行われた場合等に便利である。
【００３８】
（３）カラー・マッチング処理
上述した３通りの色指定方法において用いられる色信号は，通常ＲＧＢ信号である。ＲＧＢ信号は，デバイスに依存した色信号であるため，そのままではカラー・マッチング処理を実現することができない。そこで，ＲＧＢで色指定された場合の処理方法を説明する。
【００３９】
カラー・マッチングが可能なオペレーティング・システムでは，ＲＧＢ信号の他にデバイス独立な色信号を扱うことができるように構成されている。そのアーキテクチャ自体は，オペレーティング・システムによって種々異なっている。例えば，アプリケーション側でカラー・マッチング専用の描画命令を使って描画を行う場合や，アプリケーション側ではなく，ドライバ側でカラー・マッチング用のコードを生成する場合等がある。前述したように，実施の形態１に係る色変換処理装置では，アプリケーション側でカラー・マッチング専用の描画命令を使って描画を行うシステムを前提としている。
【００４０】
カラー・マッチングは，図３に示すような，デバイスの特性を記述したデバイス・プロファイル２７と，デバイス・プロファイル２７を用いて色変換を実行する色変換エンジン２４とを用いて実行される。
【００４１】
デバイス・プロファイル２７には，通常ＣＩＥ  ＸＹＺやＣＩＥ  ＬＡＢ等のデバイス独立信号とモニタＲＧＢやプリンタＣＭＹＫ等のデバイス信号との物理的な関係が記述されている。例えば，モニタのＲＧＢ信号をプリンタのＣＭＹＫ信号に変換する場合には，色変換エンジン２４がモニタのプロファイルに基づいてＲＧＢ信号をＸＹＺ信号に変換した後，ＸＹＺ信号をプリンタのプロファイルに基づいてＣＭＹＫ信号に変換する。このように，中間的にデバイス独立な色信号を用いることにより，測色的に一致した色再現が可能となる。
【００４２】
ところが，モニタとプリンタとは，色再現可能な範囲が異なり，一般にモニタよりもプリンタの方が色再現範囲が狭い。そのため，モニタで再現可能な色をプリンタに出力する場合には，プリンタで再現不可能な色を再現可能な色にマッピング（ガマット・マッピング）することが必要になる。ガマット・マッピングには種々の方式があるが，一般には自然画像，グラフ，フォント等のような画像の種類に応じて異なった方式を用いることが望ましい。そのため，色変換エンジン２４は，各種ガマット・マッピングに対応した複数の色変換方式を実行できるように構成されることが多い。
【００４３】
上述したカラー・マッチングを容易に実現できるようにするため，オペレーティング・システムには通常カラー・マッチング用のモジュールが用意されている。このモジュールには，色変換エンジンやデバイス・プロファイルのアクセス制御のためのインターフェースが提供される。
【００４４】
次に，カラー・マッチングを行う場合の描画モジュール１１の動作を説明する。カラー・マッチングを行う場合には，全てカラー・マッチング用の色空間を用いてオブジェクトの色指定を行う。そのため描画モジュール１１は，まずカラー・マッチングの開始コマンドを呼び出す。すなわち，このカラー・マッチングの開始コマンドを呼び出すことにより，プリンタ・ドライバ１３において，カラー・マッチング処理を実行することができるようにする。
【００４５】
描画モジュール１１は，続いて，カラー・マッチング用色空間の設定を行う。カラー・マッチング用の色空間には，ＲＧＢ空間，ＸＹＺ空間，ＣＭＹＫ空間等，種々の色空間がある。この色空間には，ＸＹＺ信号等のデバイス独立な色信号との関係を記述するための属性情報が記述される。したがって，カラー・マッチング用色空間の設定の前に，この属性情報を設定しておく必要がある。属性情報の設定には，一般に，使用しているモニタのプロファイル情報が用いられる。例えば，ＲＧＢ色空間を設定する場合には，モニタのＲ・Ｇ・Ｂ純色のＸＹＺ三刺激値やガンマ等が設定される。
【００４６】
色空間が設定されると，続いてオブジェクトの描画が開始される。オブジェクトの色指定は，作成した色空間の種類に従う。例えば，ＸＹＺ空間が設定された場合には，ＸＹＺ値を用いてオブジェクトが描画される。
【００４７】
最後に，カラー・マッチングを終了する場合には，終了コマンドを呼び出す。この終了コマンドを呼び出すことにより，カラー・マッチングの終了を指定することができる。
【００４８】
以上の描画命令は，描画モジュール１１からプリンタ・ドライバ１３へ送られ，プリンタのコード情報に変換される。例えば，ポストスクリプト・プリンタの場合，ＲＧＢ指定された色信号は，プリンタ・ドライバ１３側でＣＩＥ  ＢａｓｅｄＣｏｌｏｒ（キャリブレートされた色信号）として解釈され，プリンタに送られる。ＣＩＥ  ＢａｓｅｄＣｏｌｏｒではＲＧＢ色空間の属性情報も一緒に送信されるため，ポストスクリプト・インタープリタにおいて，プリンタの特性に合わせてＲＧＢからＣＭＹＫへの色変換を行うことが可能となり，モニタに表示された通りの色再現が可能となる。
【００４９】
一方，カラー・マッチングＯＦＦ状態の描画命令は，ポストスクリプト・プリンタ・ドライバでデバイス信号として解釈される。デバイス信号として色信号が送られた場合はプリンタ特性が考慮されないため，モニタ出力とプリンタ出力との色は一致しない。
【００５０】
上記ではポストスクリプト・プリンタについて説明したが，インクジェット・プリンタのようなラスタ・イメージ・プリンタの場合であっても，プリンタ・ドライバが生成するコードのフォーマットが異なるのみで，基本的には同様に，描画モジュール１１から送信される描画命令に従ってカラー・マッチングを使用したり，中止したりすることになる。
【００５１】
このように，上述したアプリケーション側でカラー・マッチングを制御するシステムでは，カラー・マッチングをＯＮにしていない場合，ＲＧＢで直接描画された図形についてはカラー・マッチングが行われないことになる。その結果，カラー・マッチングをサポートしていないアプリケーションからイメージを出力する場合には，たとえプリンタ・ドライバがカラー・マッチングに対応していてもカラー・マッチングを実行することができない。
【００５２】
（実施の形態１に係る色変換処理装置の動作）
上述したカラー・マッチングのアーキテクチャでは，カラー・マッチングがＯＦＦの状態で描画されたオブジェクトは，デバイス信号としてそのままプリンタに送られてしまう。そこで，実施の形態１に係る色変換処理装置では，カラー・マッチングがＯＦＦの状態で描画されたオブジェクトも，カラー・マッチングがＯＮの状態と同じように扱うことができるようにプリンタ・ドライバ１３を拡張するものである。また，実施の形態１に係る色変換処理装置は，プリンタへの出力コードに描画命令を変換する際，描画オブジェクトの属性を考慮しながら最適なカラー・マッチング処理を実行するようにするものである。
【００５３】
以下に，実施の形態１に係るカラー画像変換装置の動作を説明する。図５は，実施の形態１に係るカラー画像変換装置の動作手順を示すフローチャートである。
【００５４】
ステップＳ５０１において，描画モジュール１１は，アプリケーション１２から受け取った描画命令をプリンタ・ドライバ１３に出力し，プリンタ・ドライバ１３は，出力された描画命令を入力する。
【００５５】
プリンタ・ドライバ１３は，入力した描画命令がカラー・マッチングＯＮであるか否かを判定する（Ｓ５０２）。カラー・マッチングがＯＮの場合は，ステップＳ５０７に進み，プリンタ出力用データ生成部２２が色変換エンジン２４〜２６の何れかを起動させ，予め指定されたカラー・マッチング方法を用いてカラー・マッチング処理を実行する（Ｓ５０８）。
【００５６】
一方，カラー・マッチングがＯＦＦの場合，ＲＧＢ色で指定された描画命令がそのまま描画モジュール１１からプリンタ・ドライバ１３に送信されたことになる。したがって，この場合はカラー・マッチング処理を実行することができない。そこで，プリンタ・ドライバ１３は，描画命令変換部２１を起動させ（Ｓ５０３），割込処理により，前述したカラー・マッチング用色空間の設定処理を実行させる。
【００５７】
描画命令変換部２１は，まず，入力した描画命令がいかなる種類のオブジェクトに対応するものかを判定する（Ｓ５０４）。
【００５８】
オブジェクトの種類を判定した後，描画命令変換部２１は，予め用意したオブジェクトの種類とカラー・マッチング方法との対応関係情報から，オブジェクトの種類に対応したカラー・マッチング方法を選択し（Ｓ５０５），カラー・マッチング用色空間を設定すると共に，描画命令中のカラー・マッチング方法のパラメータを，選択したカラー・マッチング方法に対応したパラメータに設定する（Ｓ５０６）。
【００５９】
すなわち，描画命令変換部２１は，前述したように，カラー・マッチングの開始コマンドを呼び出し，カラー・マッチング用色空間の設定を行う。色空間には，ＸＹＺ信号等のデバイス独立の色信号との関係を記述するための属性情報を記述する。そして，例えば，ビットマップ画像の描画命令を入力した場合には，描画命令中のカラー・マッチング方法のパラメータを自然画モードに設定する。また，フォントの描画命令を入力した場合には，描画命令中のカラー・マッチング方法のパラメータを単色べたモードに設定する。ただし，オブジェクトの種類に基づくカラー・マッチング方法の選択は，カラー・マッチングモジュール２３中にいかなる種類のオブジェクトに対応する色変換エンジンが用意されているのかに依存する。実施の形態１においては，自然画用色変換エンジン２４，単色べた用色変換エンジン２５およびパターン用色変換エンジン２６が用意されている。
【００６０】
描画命令変換部２１は，このようにしてＲＧＢ値で指定された描画命令をカラー・マッチングをＯＮにしたときと同じ描画命令に再構築し，再構築した描画命令をプリンタ出力用データ生成部２２に対して出力する。
【００６１】
プリンタ出力用データ生成部２２は，描画命令変換部２１で再構築した描画命令を入力して解析し，描画命令中に設定されたカラー・マッチング方法のパラメータに対応した色変換エンジンをカラー・マッチングモジュール２３から選択して起動させる（Ｓ５０７）。例えば，カラー・マッチング方法のパラメータが自然画モードに設定されている場合は，自然画用色変換エンジン２４を選択して起動させる。また，単色べたモードに設定されている場合は，単色べた用色変換エンジン２５を選択して起動させる。
【００６２】
その後，例えば自然画用色変換エンジン２４を起動させた場合，自然画用色変換エンジン２４は，図３に示すようにデバイス・プロファイル２７を参照しつつ，ビットマップ画像のＲＧＢをプリンタのＣＭＹＫに変換する（Ｓ５０８）。すなわち，自然画用色変換エンジン２４は，デバイス・プロファイル２７中のモニタのプロファイルに基づいて，ＲＧＢ信号をＸＹＺ信号等のデバイス独立の色信号に変換した後，プリンタ・プロファイルに基づいて，ＸＹＺ信号をＣＭＹＫ信号に変換する。加えて，一般にモニタよりプリンタの方が色再現範囲が狭いため，自然画に適した方法を用いてプリンタが再現不可能な色を再現可能な色にマッピングする。
【００６３】
このようにしてプリンタ出力データ生成部２２でカラー・マッチング処理が実行され，生成されたプリンタ出力データは，描画モジュール１１に対して出力される。なお，他のオブジェクトに対しても同様の処理が行われ，描画モジュール１１へ出力データが送信される。描画モジュール１１は，プリンタ・ドライバ１３からの出力データを入力し，プリンタ１４との間での描画ルーチンに入り（Ｓ５０９），カラー・マッチング処理を終了する。
【００６４】
上述した描画命令変換部２１による描画命令の再構築方法では，オブジェクト毎に最適なカラー・マッチング処理を実現することができる。その際，オブジェクト毎にどのようなカラー・マッチング方法が適しているのかということが重要となってくる。
【００６５】
本発明においては，カラー・マッチング方法の選択方法について何ら制約を設けるわけではないが，基本的には，描画オブジェクトの階調性に応じて色変換のモードを切り替えることが望ましい。
【００６６】
すなわち，ビットマップ画像のように，各画素毎に色が指定されているようなオブジェクトについては階調性が最も重視されるため，階調性を重視したような色再現を行うようにする。階調性重視の色再現方式としては，例えば図６に示すような，プリンタが再現できない色を色相と明度一定で圧縮する方法等がある。
一方，単色のフォントや線画等では，階調性は関係ないが目立つような色再現が必要となる。特に，黄色やマゼンダのべた画像は，プリンタでも単色で再現した方がざらつき感がなく，色の区別がはっきりする。そこで，単色べたのオブジェクトに対しては，彩度を重視したような色再現を行う。彩度を重視した色再現方法としては，例えば図７に示すような，最も色差の小さい色にマッピングするような方式がある。
【００６７】
また，べた画像に対してはカラー・マッチングを行わず，そのままデバイス信号とみなして以下のような色変換を行っても良い。
【００６８】
Ｃｙａｎ＝Ｒ−ｍｉｎ（ｒ，ｇ，ｂ）
Ｍａｇｅｎｔａ＝Ｇ−ｍｉｎ（ｒ，ｇ，ｂ）
Ｙｅｌｌｏｗ＝Ｂ−ｍｉｎ（ｒ，ｇ，ｂ）
Ｂｌａｃｋ＝ｍｉｎ（ｒ，ｇ，ｂ）
更に，グラデーション・パターンやデザイン・フォントのように，特定のパターンを用いて描画されるオブジェクトに対しては，彩度と階調性の両方が重視されるため，上述した２種類の色再現方法の中間的な色再現を行う。特に，グラデーション・パターン等は，べた画像と隣接する領域に描画されることが多いため，その境界ひずみが目立たないようにしなければならない。そこで，高彩度の色は単色の場合と同様な変換結果となるようにしながら，低彩度の色に対してはビットマップと同様な色再現となるようにする。このような色再現方式の調整は，補間演算により容易に行うことができる。
【００６９】
このように，実施の形態１に係る色変換処理方法および装置によれば，カラー・マッチングＯＦＦの場合のＲＧＢ値で指定された描画命令を，カラー・マッチングをＯＮにしたときと同じ描画命令に変換するため，カラー・マッチングに対応していないアプリケーションの場合であっても，プリンタ・ドライバ１３上でカラー・マッチング処理を実行可能とすることができる。また，オブジェクトの種類に応じてカラー・マッチングの方法を切り替えるため，オブジェクト毎に最適なカラー・マッチング処理を実現することができる。
【００７０】
なお，実施の形態１に係る色変換処理装置においては，カラー・マッチングＯＦＦの場合に割込処理を実行する描画命令変換部２１をプリンタ・ドライバ１３に設けることにしたが，この構成に限定するものではなく，図８に示すように，描画モジュール１１とプリンタ・ドライバ１３との間に設けることもできる。図８に示すような構成とした場合は，描画モジュール１１の制御により描画命令変換部２１を起動させてカラー・マッチング用色空間の設定を行った後，プリンタ・ドライバ１３に描画命令を送信することになる。
【００７１】
また，実施の形態１においては，モニタに描画されたカラー・イメージをプリンタに出力する場合を例として用いたが，この場合に限定するものではなく，本発明に係る色変換処理方法および装置は，カラー・マッチング処理が必要な如何なる場面にも適用可能なことはいうまでもない。
【００７２】
〔実施の形態２〕
実施の形態２に係る色変換処理方法および装置は，プリンタ・ドライバ側でカラー・マッチングのＯＮおよびＯＦＦの制御が可能であるが，カラー・イメージ中に存在する個々のオブジェクトに対するカラー・マッチング方法はアプリケーション側が制御すると共に，カラー・マッチング方法はオブジェクトの属性に指定するというシステムに適用される。すなわち，実施の形態２に係る色変換処理方法および装置は，カラー・マッチングの属性の指定のない描画オブジェクトを受け取った場合，オブジェクトの種類に応じてカラー・マッチングの属性情報を付加した後，この属性情報に従って，カラー出力装置へ送信する送信データを生成するというものである。なお，実施の形態２においても実施の形態１と同様に，モニタに描画されたカラー・イメージをプリンタに出力する場合を例として説明する。また，実施の形態２の説明において，実施の形態１に係る色変換処理装置と同一の構成については詳細な説明を省略する。
【００７３】
図９は，実施の形態２に係る色変換処理装置の構成を示すブロック図である。図９に示す色変換処理装置は，モニタおよびプリンタ（図示せず）に対する描画処理を管理する描画モジュール１１と，描画モジュール１１からイメージ・データを入力し，カラー・マッチング処理を実行して，プリンタ１４に対して出力する出力データに変換するプリンタ・ドライバ９１とから構成されている。
【００７４】
図１０は，図９に示すプリンタ・ドライバ９１の概略構成を示すブロック図である。プリンタ・ドライバ９１は，カラー・マッチングのＯＮおよびＯＦＦの制御が可能なものである。このプリンタ・ドライバ９１は，描画対象となるオブジェクトにカラー・マッチング方法の属性が指定されていない場合，割込処理によりそのオブジェクトにカラー・マッチング方法の属性情報を付加するＣＭＭ（カラー・マッチング・モジュール）属性設定部９２と，ＣＭＭ属性設定部９２で付加されたカラー・マッチング方法の属性情報に従って，オブジェクト毎にカラー・マッチング処理を実行し，カラー画像出力装置に対して出力する出力データに変換するプリンタ出力用データ生成部９３とを備えている。
【００７５】
ＣＭＭ属性設定部９２は，描画対象となるオブジェクトにカラー・マッチング方法の属性が指定されていない場合に，割込モジュールとして起動されるものである。このＣＭＭ属性設定部９２による割込処理により，描画対象となるオブジェクトの種類を判定し，判定したオブジェクトの種類に対応したカラー・マッチング方法を選択し，オブジェクトに選択したカラー・マッチング方法の属性情報を付加する。
【００７６】
プリンタ出力用データ生成部９３は，カラー・マッチングモジュール９４を備えている。カラー・マッチングモジュール９４は，デバイスの特性を記述したデバイス・プロファイル９８と，デバイス・プロファイル９８を用いてカラー・マッチング処理を実行する複数の色変換エンジン９５〜９７とを備えている。プリンタ出力用データ生成部９３は，ＣＭＭ属性設定部９２で付加されたカラー・マッチング方法の属性情報に従って，カラー・マッチングモジュール９４の色変換エンジン９５〜９７から対応する色変換エンジンを起動させ，デバイス・プロファイル９８を用いてカラー・マッチング処理を実行させる。
【００７７】
なお，上記実施の形態２に係る色変換処理装置の構成においては，ＣＭＭ属性設定部９２が本発明の判定手段，種類判定手段および属性情報付加手段に対応し，プリンタ出力用データ生成部９３が本発明の色変換手段に対応する。
【００７８】
以下に，実施の形態２に係る色変換処理装置の動作を説明する。図１１は，実施の形態２に係る色変換処理装置の動作手順を示すフローチャートである。
【００７９】
オペレーティング・システムによっては，始めからデバイス・ドライバがカラー・マッチングをＯＮにしたり，ＯＦＦにしたりできるようにしたものがある。ところが，このようなオペレーティング・システムにおいても，各オブジェクトに対する色変換モードはアプリケーション側での制御を前提としている場合がある。
【００８０】
上記オペレーティング・システムでは，カラー・マッチングに関する情報はオブジェクトの属性に記述されることが多い。そして，ドライバ側ではそのオブジェクト属性に従って，カラー・マッチングを切り換える。ところが，オブジェクトにカラー・マッチング方法の属性が指定されていない場合には，デフォルトの色変換方式を用いることになってしまう。
【００８１】
実施の形態２に係る色変換処理装置においては，まず，ステップＳ１１０１において，描画モジュール１１がアプリケーション１２から受け取ったイメージ・データをプリンタ・ドライバ９１に出力し，プリンタ・ドライバ９１は，出力されたイメージ・データを入力する。
【００８２】
プリンタ・ドライバ９１は，入力したイメージ・データ中に存在する個々のオブジェクトにカラー・マッチング方法の属性の指定があるか否かを判定する（Ｓ１１０２）。オブジェクトにカラー・マッチング方法の属性の指定がある場合には，ステップＳ１１０７に進み，プリンタ出力用データ生成部９３が色変換エンジン９５〜９７の何れかを起動させ，予め指定されたカラー・マッチング方法を用いてカラー・マッチング処理を実行する（Ｓ１１０８）。
【００８３】
オブジェクトにカラー・マッチング方法の属性の指定がない場合，プリンタ・ドライバ９１は，割込処理としてＣＭＭ属性設定部９２を起動させる（Ｓ１１０３）。
【００８４】
ＣＭＭ属性設定部９２は，描画対象のオブジェクトがいかなる種類であるかを判定する（Ｓ１１０４）。
【００８５】
オブジェクトの種類を判定した後，ＣＭＭ属性設定部９２は，予め用意したオブジェクトの種類とカラー・マッチング方法との対応関係情報から，オブジェクトの種類に対応したカラー・マッチング方法を選択し（Ｓ１１０５），オブジェクトに選択したカラー・マッチング方法の属性情報を付加する（Ｓ１１０６）。プリンタ出力用データ生成部９３は，ＣＭＭ属性設定部９２で付加されたカラー・マッチング方法の属性情報に従って，対応する色変換エンジンをカラー・マッチングモジュール９４から選択して起動させ（Ｓ１１０７），カラー・マッチング処理を実行する（Ｓ１１０８）。
【００８６】
このようにしてプリンタ出力データ生成部９３でカラー・マッチング処理が実行され，生成されたプリンタ出力データは，描画モジュール１１に対して出力される。なお，他のオブジェクトに対しても同様の処理が行われ，描画モジュール１１へ出力データが送信される。描画モジュール１１は，プリンタ・ドライバ１３からの出力データを入力し，プリンタ１４との間での描画ルーチンに入り（Ｓ１１０９），カラー・マッチング処理を終了する。
【００８７】
なお，オブジェクトの種類と色変換方式の対応関係は前述した実施の形態１の場合と同様であるため，その詳細な説明は省略する。
【００８８】
このように，実施の形態２に係る色変換処理方法および装置によれば，オブジェクトにカラー・マッチングの属性が指定されていない場合であっても，個々のオブジェクトに対し，そのオブジェクトの種類に対応したカラー・マッチング方法の属性情報を付加することにより，イメージ・データ中に存在する個々のオブジェクト毎に最適なカラー・マッチング処理を実行することができる。
【００８９】
なお，実施の形態２に係る色変換処理装置においては，個々のオブジェクトにカラー・マッチング方法の属性の指定がない場合に割込処理を実行するＣＭＭ属性設定部９２をプリンタ・ドライバ９１に設けることにしたが，この構成に限定するものではなく，図１２に示すように，描画モジュール１１とプリンタ・ドライバ９１との間にＣＭＭ属性設定部９２を設けることもできる。図１２に示すような構成とした場合は，描画モジュール１１の制御によりＣＭＭ属性設定部９２を起動させて個々のオブジェクトにカラー・マッチング方法の属性情報を付加した後，プリンタ・ドライバ９１にイメージ・データを送信することになる。
【００９０】
また，実施の形態２においては，モニタに描画されたカラー・イメージをプリンタに出力する場合を例として用いたが，この場合に限定するものではなく，本発明に係る色変換処理方法および装置は，カラー・マッチング処理が必要な如何なる場面にも適用可能なことはいうまでもない。
【００９１】
〔実施の形態３〕
実施の形態３は，新たなプリンタ・ドライバを作成するのではなく，現存するプリンタ・ドライバの機能を拡張することによって，プリンタ・ドライバ側でオブジェクトの種類に応じたカラー・マッチング処理を施すことができるようにするための方法を説明するものである。
【００９２】
今日のパーソナルコンピュータ環境にあって，プリンタ・ドライバは，動的にリンク可能なプログラムモジュール（後述するＤＬＬ等）という形態で提供される。そこで，実施の形態３では，この動的にリンク可能なプログラムモジュールの機能を拡張するための方法を提案することにより，この方法を現存するプリンタ・ドライバに適用して，オブジェクト毎に異なるカラー・マッチング方法を適用できるようにする。ただし，この方法は，プリンタ・ドライバの機能拡張のためにのみならず，他の動的にリンク可能なプログラムモジュールの機能拡張のために使用できることはいうまでもない。
【００９３】
図１３に示すように，ソフトウェアにおいては，上位モジュール１３０が下位のモジュール１３１（例えばライブラリ）をコールし，コールされた下位モジュール１３１が所定の処理を行って，その処理の結果（戻り値）を上位モジュール１３０に返すという処理が行われる。
【００９４】
そして，マルチタスク環境，即ち，複数のプログラムが同時に稼働する環境においては，各アプリケーション間（上位モジュール１３０間）で共通に使用するライブラリを重複してメモリにロードするという無駄を避けるため，ライブラリを動的にリンク可能なプログラムモジュールとして，複数のアプリケーション間で共有することが一般的である。ここで，動的にリンク可能なプログラムモジュールとは，例えばＷｉｎｄｏｗｓ（Ｒ）やＵＮＩＸ（Ｒ）においてＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）と，Ｍａｃｉｎｔｏｓｈではコンポーネントと呼ばれているものである（Ｗｉｎｄｏｗｓ（Ｒ）はマイクロソフト社の登録商標，ＵＮＩＸ（Ｒ）はＸ／ＯＰＥＮカンパニーリミテッドがライセンスしている登録商標，Ｍａｃｉｎｔｏｓｈはアップル・コンピュータ社の登録商標である）。なお，以下に説明する実施の形態３〜５においては，動的にリンク可能なプログラムモジュールをＤＬＬとして説明することにする。
【００９５】
ＤＬＬとは，他のモジュールから動的にリンクされ，コールされることが可能なルーチンの集合であり，一般にＤＬＬファイルのヘッダには，他のモジュールからコールされることが可能なルーチン名の一覧が記載されている。ここで，他のモジュールからコールされることが可能ということは，「エキスポートされている」と呼ばれる。その結果，上位モジュールは，ＤＬＬファイルのファイル名およびルーチン名（またはルーチン番号）を指定することにより，エキスポートされているルーチンをコールすることができる。
【００９６】
従来，上記ＤＬＬの機能を拡張するには，図１４に示すように，そのソースプログラムを編集し直し，コンパイルして新たなＤＬＬを作成し，古いＤＬＬと置き換える処理を行う必要があった。ところが，古いＤＬＬが他人の作成した既成のものであり，そのソースプログラムが手元にない場合（例えば，オペレーティング・システムの一部として提供されたものの場合）には，このＤＬＬを１から作るか，または拡張をあきらめるしかなかった。ただし，ＤＬＬを１から作る場合には，上位モジュールとＤＬＬとのインターフェイス，即ち，エキスポートされているルーチンの引数および戻り値の型がわかっていなければならない。
【００９７】
以下では，上位モジュールとＤＬＬとのインターフェイス，即ち，エキスポートされているルーチンの引数および戻り値の型が既知であることを前提にして，実施の形態３の動的にリンク可能なプログラムモジュールの拡張方法を説明する。
【００９８】
図１５は，実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第１の例を説明する説明図である。図１５において，１３０は上述した上位モジュールを，１５０は機能が拡張される対象であるＤＬＬを，１５１はＤＬＬ１５０の機能拡張のための拡張ＤＬＬをそれぞれ示している。
【００９９】
また，図１５においては，ＤＬＬ１５０のファイル名を他のファイル名に変更し，拡張ＤＬＬ１５１にＤＬＬ１５０の元のファイル名をつけることにしている。そして，拡張ＤＬＬ１５１は，ＤＬＬ１５０がエキスポートしているルーチンの全てをエキスポートしており，上位モジュール１３０からＤＬＬ１５０に含まれるルーチンに対して発行されるコールの全てを受け付けることができるようになっている。したがって，上位モジュール１３０がＤＬＬ１５０のファイル名を指定してコールすると，結果的に拡張ＤＬＬ１５１内の同名のルーチンがコールされることになる。そして，拡張ＤＬＬ１５１は，ＤＬＬ１５０の機能を拡張することができるように，そのコールの任意の引数を必要に応じて変更し，ＤＬＬ１５０をコールする。
【０１００】
次に，拡張ＤＬＬ１５１の動作を図１６の概略フローチャートを用いて説明する。まず，上位モジュール１３０がＤＬＬ１５０のファイル名およびルーチン名を指定してコールＡを出力すると，拡張ＤＬＬ１５１がそのコールＡを入力する（Ｓ１６０１）。
【０１０１】
そして，拡張ＤＬＬ１５１は，予め設定された条件に基づいて，入力したコールＡ中の引数の変更が必要か否かを判定する（Ｓ１６０２）。引数の変更が不要な場合はステップＳ１６０４に進み，引数を変更することなくコールＡをコールＢとしてＤＬＬ１５０に出力する。
【０１０２】
一方，引数の変更が必要な場合は，所定の手順に基づいて，コールＡ中の引数の一部を変更して新たなコールＢを生成し（Ｓ１６０３），生成したコールＢをＤＬＬ１５０に出力する（Ｓ１６０４）。変更される引数は，ＤＬＬ１５０の機能の拡張に必要なものであり，この引数は，予め拡張ＤＬＬ１５１に設定されている。
【０１０３】
その後，ＤＬＬ１５０がコールＢに基づいて所定の処理を実行し，処理の結果である戻り値Ａを拡張ＤＬＬ１５１に出力する。拡張ＤＬＬ１５１は，ＤＬＬ１５０から戻り値Ａを入力し，入力した戻り値Ａをそのまま上位モジュール１３０に出力して処理を終了する（Ｓ１６０５）。なお，この戻り値Ａは，拡張ＤＬＬ１５１が出力したコールＢに対するものであるため，上位モジュール１３０が出力したコールＡに対する戻り値とは異なったものとなる。ただし，拡張ＤＬＬ１５１は，入力した戻り値Ａを別の戻り値Ｂとして上位モジュール１３０に出力することにしても良い。また，拡張ＤＬＬ１５１から上位モジュール１３０に返す戻り値は，ＤＬＬ１５０がコールＢに対して返した戻り値Ａをそのまま戻り値Ａとして返しても良いし，前述したように別の戻り値Ｂを返しても良い。この際，戻り値Ｂが，上位モジュール１３０のコールＡに対する本来の値でも良い。また，図１６のステップＳ１６０２およびＳ１６０４において，引数の変更が不要であると判定してコールＢをＤＬＬ１５０に出力した場合の戻り値は，コールＡに対する戻り値となる。
【０１０４】
このように，拡張ＤＬＬ１５１が，上位モジュール１３０からＤＬＬ１５０へのコールＡを途中で変更した結果，上位モジュール１３０には異なる戻り値が戻されるため，上位モジュール１３０とっては結果的にＤＬＬ１５０が新たなＤＬＬに置き換えられたことと同様な処理結果を得ることができる。
【０１０５】
また，図１７は，実施の形態３の動的にリンク可能なプログラムモジュールの拡張方法の第２の例を説明する説明図である。図１７に示す拡張ＤＬＬ１７０は，ＤＬＬ１５０のルーチンＲと同一名の新たなルーチンＲ’を実装しており，上位モジュール１３０からＤＬＬ１５０に出力されたルーチンＲを指定するコールを入力すると，ルーチンＲ’に基づく処理を実行して，ＤＬＬ１５０のルーチンＲに基づく戻り値と異なる戻り値を上位モジュール１３０に出力するというものである。
【０１０６】
次に，拡張ＤＬＬ１７０の動作を図１８の概略フローチャートを用いて説明する。まず，上位モジュール１３０がＤＬＬ１５０のファイル名およびルーチンＲを指定してコールを出力すると，拡張ＤＬＬ１５１がそのコールを入力する（Ｓ１８０１）。
【０１０７】
そして，拡張ＤＬＬ１７０は，コールで指定されたルーチンＲに対応するルーチンＲ’に基づく処理を実行する（Ｓ１８０２）。なお，ルーチンＲ’中に，ＤＬＬ１５０をコールして，所定の処理を実行させる工程を含めることもできる（図１７中の波線矢印１７１参照）。
【０１０８】
その後，拡張ＤＬＬ１７０は，ルーチンＲ’に基づく処理の結果である戻り値を上位モジュール１３０に出力して処理を終了する（Ｓ１８０３）。なお，ＤＬＬ１５０に所定の処理を実行させた場合は，その戻り値を入力し（図１７中の波線矢印１７２参照），入力した戻り値を用いて上位モジュール１３０に出力する戻り値を生成する。
【０１０９】
このように，拡張ＤＬＬ１７０にＤＬＬ１５０と同一の名のルーチンを実装させることにより，より直接かつ自由にＤＬＬ１５０の機能を拡張することができる。
【０１１０】
さらに，図１９は，実施の形態３の動的にリンク可能なプログラムモジュールの拡張方法の第３の例を説明する説明図である。図１９に示す拡張ＤＬＬ１９０は，上位モジュール１３０とＤＬＬ１５０とのインターフェイス以外のインターフェイス，即ち，ＤＬＬ１５０にはないが上位モジュール１３０がコールすることが可能な新たなルーチンを実装しており，このルーチンがエキスポートされているものである。
【０１１１】
次に，拡張ＤＬＬ１９０の動作を図２０の概略フローチャートを用いて説明する。まず，拡張ＤＬＬ１９０は，上位モジュール１３０から新たに実装されたルーチン（拡張ＤＬＬ１９０独自なルーチン）を指定したコールを入力すると（Ｓ２００１），指定されたルーチンに基づく処理を実行する（Ｓ２００２）。なお，ルーチン中に，ＤＬＬ１５０をコールして，所定の処理を実行させる工程を含めることもできる（図１９中の波線矢印１９１参照）。
【０１１２】
その後，拡張ＤＬＬ１９０は，ルーチンに基づく処理の結果である戻り値を上位モジュール１３０に出力して処理を終了する（Ｓ２００３）。なお，ＤＬＬ１５０に所定の処理を実行させた場合は，その戻り値を入力し（図１９中の波線矢印１９２参照），入力した戻り値を用いて上位モジュール１３０に出力する戻り値を生成する。
【０１１３】
このように，拡張ＤＬＬ１９０にＤＬＬ１５０にはないルーチンを実装することにより，そのルーチンに基づく処理を実行できる分，ＤＬＬ１５０の機能を拡張することができる。
【０１１４】
なお，上記第１〜第３の例の説明において，「戻り値」は，当然「出力引数（コールされたＤＬＬによって書き込まれる引数）」であっても良く，また，第１〜第３の例を組み合わせた拡張ＤＬＬを構成することも可能である。また，拡張ＤＬＬには，ＤＬＬがエキスポートしている全てのルーチンがエキスポートされていると説明したが，ＤＬＬの機能中に不要なものが生じた場合等には，必要なルーチンのみを拡張ＤＬＬにエキスポートすれば良い。
【０１１５】
以下の実施の形態４および５では，上述した動的にリンク可能なプログラムモジュールの拡張方法を適用した色変換処理装置およびその方法について説明する。
【０１１６】
〔実施の形態４〕
実施の形態４では，カラー・マッチングには対応しているが，オブジェクト単位でカラー・マッチング方法の指定をすることが不可能な現存するプリンタ・ドライバの機能を拡張することを例として，実施の形態３で説明した動的にリンク可能なプログラムモジュールの拡張方法を適用した色変換処理装置およびその方法を説明する。
【０１１７】
図２１は，実施の形態４の色変換処理装置およびその方法で使用されるプリンタ・ドライバにおいて，カラー・マッチングの有無を指定するための設定画面の一例を示す説明図であり（一般的なオペレーティングシステムにおいて標準で使用されるポストスクリプトプリンタ・ドライバの設定画面に基づいている），図２２は，カラー・マッチングの方法（図２２においてはレンダリングと表記されている）を指定するための設定画面の一例を示す説明図である。図２１および図２２に示す設定画面を用いることにより，カラー・マッチングをする／しないという設定と，彩度保存やコントラスト保存等のカラー・マッチングの方法（色変換パラメータ）の設定を行うことができる。ところが，図２１および図２２を見ると，描画対象の指定欄がないことがわかる。これは，現状のプリンタ・ドライバにおいては，カラー・マッチングの指定を行う際に，描画対象毎にカラー・マッチング方法を設定（色変換パラメータの設定）することはできず，画面全体に対して１つのカラー・マッチング方法が指定できるのみであるということを表している。そこで，実施の形態４の色変換処理装置およびその方法では，カラー・マッチングには対応しているが，オブジェクト単位でのカラー・マッチングには対応していないプリンタ・ドライバの機能を拡張することにより，描画対象となる文字やビットマップ画像（オブジェクト）毎に最適なカラー・マッチング処理を行うことができるようにするものである。
【０１１８】
図２３は，実施の形態４に係る色変換処理装置のブロック構成図である。図２３において，２１０はアプリケーションを，２１１は実施の形態３で説明した上位モジュール１３０に該当する描画モジュールを，２１２は実施の形態３で説明した拡張ＤＬＬ１５１，１７０，１９０に該当する拡張プリンタ・ドライバを，２１３は実施の形態３で説明したＤＬＬ１５０に該当するプリンタ・ドライバを，２１４はモニタプロファイル２１５とプリンタプロファイル２１６とに基づいてカラー・マッチング処理を実行する色変換エンジンを，２１７はプリンタを示している。
【０１１９】
描画モジュール２１１は，アプリケーション２１０から任意のオブジェクトの描画命令（プリント命令）およびそのオブジェクトの描画色を示す描画色情報を入力し，後述する初期化処理で生成したカラー・マッチング方法に対応したパラメータ（以下「色変換パラメータ」という）を入力した描画命令に付加し，その描画命令と描画色情報とを拡張プリンタ・ドライバ２１２に出力する。なお，この描画モジュール２１１で描画命令に付加される色変換パラメータは，描画対象である各オブジェクトに共通のものである。
【０１２０】
また，拡張プリンタ・ドライバ２１２は，描画モジュール２１１とプリンタ・ドライバ２１３との間に設けられており，描画モジュール２１１によってコールされるものである。なお，実施の形態３ではＤＬＬ１５０のファイル名を拡張ＤＬＬ１５１等のファイル名とすることにして上位モジュール１３０からコールできるようにしたが，プリンタ・ドライバをコンピュータにインストールする場合には，描画モジュール２１１からコールされるＤＬＬファイル名を指定できることが通常であるため，指定するファイル名を拡張プリンタ・ドライバ２１２のファイル名とすることで，描画モジュール２１１から拡張プリンタ・ドライバ２１２をコールできるようにすることができる。
【０１２１】
この拡張プリンタ・ドライバ２１２は，描画モジュール２１１から描画命令および描画色情報を入力し，入力した描画命令に基づいて，描画命令がいかなる種類のオブジェクトの描画命令であるかを判定し，判定結果に基づいて，後述する初期化処理で生成したオブジェクトの種類に応じて用意された複数の色変換パラメータから該当する種類の色変換パラメータを選択し，描画命令に付加されている属色変換パラメータを選択した色変換パラメータに置き換えて，描画色情報と共にプリンタ・ドライバ２１３に出力する。
【０１２２】
また，プリンタ・ドライバ２１３は，上述したようにカラー・マッチングに対応したものである。すなわち，色変換パラメータが付加された描画命令を受け取ることができるものである（パラメータ用の引数を有している）。図２１および図２２で説明したように，ユーザは，このプリンタ・ドライバ２１３を用いてカラー・マッチングの有無および方法（オブジェクト単位ではない）を指定することができる。
【０１２３】
プリンタ・ドライバ２１３は，拡張プリンタ・ドライバ２１２から描画命令および描画色情報を入力すると，色変換パラメータを付加した色変換命令と描画色情報とを色変換エンジン２１４に出力する。そして，描画命令をプリンタ２１７固有の描画命令に変換すると共に，色変換エンジン２１４からカラー・マッチング処理が施された描画色情報を入力し，描画命令および描画色情報をプリンタ２１７に出力する。
【０１２４】
さらに，色変換エンジン２１４は，プリンタ・ドライバ２１３から色変換パラメータが付加された色変換命令と描画色情報とを入力し，入力デバイスの色特性情報であるモニタプロファイル２１５と出力デバイスの色特性情報であるプリンタプロファイル２１６に基づいて，描画色情報にカラー・マッチング処理を施す。なお，色変換エンジン２１４によるカラー・マッチング処理の詳細については，実施の形態１で説明した通りであるため，ここではその説明を省略する。
【０１２５】
なお，上述した実施の形態４に係る色変換処理装置の構成において，拡張プリンタ・ドライバ２１２が本発明の種類判定手段および属性情報置換手段に，プリンタ・ドライバ２１３および色変換エンジン２１４が色変換手段にそれぞれ該当する。
【０１２６】
次に，実施の形態４の色変換処理方法について，（１）ドライバ初期化時の処理，（２）拡張プリンタ・ドライバによる描画命令発行処理の順でフローチャートを参照しつつ説明する。
【０１２７】
（１）ドライバ初期化時の処理
図２４は，実施の形態４の色変換処理方法におけるドライバ初期化時の処理手順を示すフローチャートである。
【０１２８】
描画モジュール２１１は，プリンタ・ドライバ２１３に対してカラー・マッチングの有無等に関するプリンタ情報・ドライバ情報の問い合わせを行い，プリンタ情報・ドライバ情報を取得する（Ｓ２４０１）。具体的には，まず，拡張プリンタ・ドライバ２１２が描画モジュール２１１からの問い合わせを受け取り，受け取った問い合わせをそのままプリンタ・ドライバ２１３に渡す。そして，拡張プリンタ・ドライバ２１２は，プリンタ・ドライバ２１３からプリンタ情報・ドライバ情報に関する戻り値を受け取り，受け取った戻り値をそのまま描画モジュール２１１に渡す。その結果，描画モジュール２１１は，通常と同様にプリンタ・ドライバ２１３からプリンタ情報・ドライバ情報を取得することができる。
【０１２９】
そして，描画モジュール２１１は，取得したプリンタ情報・ドライバ情報に基づいて，プリンタ・ドライバ２１３がカラー・マッチングに対応しており，かつ，カラー・マッチングありの指定を受けているかを判定する（Ｓ２４０２）。プリンタ・ドライバ２１３は上述した通りカラー・マッチングに対応しており，一方，カラー・マッチングありの指定は，上述した図２１および図２２に示す設定画面で指定される。
【０１３０】
ステップＳ２４０２において，プリンタ・ドライバ２１３がカラー・マッチングに対応していないと判定した場合，またはカラー・マッチングに対応しているがカラー・マッチングありの指定がないと判定した場合には，そのまま初期化処理を終了する。
【０１３１】
一方，ステップＳ２４０２において，プリンタ・ドライバ２１３がカラー・マッチングに対応しており，かつ，カラー・マッチングありの指定があると判定した場合，描画モジュール２１１は，プリンタ・ドライバ２１３へ色変換パラメータ生成命令を発行する（Ｓ２４０３）。
【０１３２】
拡張プリンタ・ドライバ２１２は，描画モジュール２１１から色変換パラメータ生成命令を入力し，予め設定された条件に基づいて，プリンタ・ドライバ２１３に描画対象となる３種類のオブジェクト毎に色変換パラメータを生成する色変換パラメータ生成命令を発行する（Ｓ２４０４）。ここで，３種類のオブジェクトとは，ビットマップ画像，文字およびその他のグラフィック画像のことである。このように３種類のオブジェクトとしたのは，一般的なコンピュータの環境で使用される描画命令の名称が，ビットマップ画像，文字およびその他のグラフィックの場合でそれぞれ異なっていることに基づくものである。また，ここでいうビットマップ画像およびその他のグラフィック画像は，図２２に示すレンダリングの欄の「プレゼンテーションなどのグラフィックス」および「グラフィックイメージ」にそれぞれ相当する。
【０１３３】
そして，プリンタ・ドライバ２１３は，拡張プリンタ・ドライバ２１２から色変換パラメータ生成命令を入力し，入力した色変換パラメータ生成命令を色変換エンジン２１４に出力する（Ｓ２４０５）。
【０１３４】
色変換エンジン２１４は，プリンタ・ドライバ２１３から色変換パラメータ生成命令を入力すると，ビットマップ画像の色変換パラメータ，文字の色変換パラメータおよびその他のグラフィック画像の色変換パラメータをそれぞれ生成し，生成した３種類の色変換パラメータをプリンタ・ドライバ２１３に出力する（Ｓ２４０６）。
【０１３５】
プリンタ・ドライバ２１３は，色変換エンジン２１４から３種類の色変換パラメータを入力すると，入力した３種類の色変換パラメータをそのまま拡張プリンタ・ドライバ２１２に出力する（Ｓ２４０７）。
【０１３６】
続いて，拡張プリンタ・ドライバ２１２は，プリンタ・ドライバ２１３から３種類の色変換パラメータを入力し，入力した３種類の色変換パラメータを保持すると共に，そのうちの１つの色変換パラメータを描画モジュール２１１に出力する（Ｓ２４０８，Ｓ２４０９）。ここで，１つの色変換パラメータのみを描画モジュール２１１に出力する理由は，一般的なコンピュータ環境における描画モジュール２１１では，描画対象となる複数種類のオブジェクトに共通のカラー・マッチング方法の指定のみを行え，オブジェクト毎にカラー・マッチング方法の指定をすることができないからである。なお，出力する１つの色変換パラメータは，例えば，図２３に示す設定画面の設定に従って決定されるようにすることができる。
【０１３７】
そして，描画モジュール２１１は，拡張プリンタ・ドライバ２１２から１つの色変換パラメータを入力して保持し，初期化処理を終了する（Ｓ２４１０）。描画モジュール２１１は，実際に描画命令を出力する際に，保持した色変換パラメータを付加する。
【０１３８】
なお，上述した説明においては，説明の便宜上，拡張プリンタ・ドライバ２１２から色変換エンジン２１４の間における３種類の色変換パラメータの生成処理を同時に行うように説明したが，実際には，色変換パラメータ生成命令の出力と色変換パラメータの生成をオブジェクトの種類毎に行うことになる。すなわち，上述した３種類のオブジェクトについて色変換パラメータを生成する場合には，図２４に示すステップＳ２４０４〜Ｓ２４０８の処理を３回繰り返すことになる。
【０１３９】
このように，実施の形態３で説明した動的にリンク可能なプログラムモジュールの拡張方法を適用した拡張プリンタ・ドライバ２１２を設けたことにより，通常は１つの色変換パラメータ生成命令に応じて１つの色変換パラメータのみしか生成されないところを，３つの色変換パラメータを生成することができるように，プリンタ・ドライバ２１３の機能を拡張することができる。
【０１４０】
（２）拡張プリンタ・ドライバによる描画命令発行処理
続いて，拡張プリンタ・ドライバ２１２による描画命令発行処理について説明する。図２５は，実施の形態４の色変換処理方法において，拡張プリンタ・ドライバ２１２による描画命令発行手順を示すフローチャートである。
【０１４１】
描画モジュール２１１は，アプリケーション２１０から描画命令（印刷命令）と描画色情報を入力すると，描画命令に上記初期化処理で生成した色変換パラメータを付加し，色変換パラメータが付加された描画命令および描画色情報を出力する。拡張プリンタ・ドライバ２１２は，描画モジュール２１１から描画命令および描画色情報を入力すると，入力した描画命令がいかなる種類のオブジェクトの描画命令であるかを判定する（Ｓ２５０１，Ｓ２５０３，Ｓ２５０５）。
【０１４２】
ここで，拡張プリンタ・ドライバ２１２によるオブジェクトの種類の判定処理について説明する。拡張プリンタ・ドライバ２１２は，描画命令に基づいて，描画対象のオブジェクトがビットマップ画像か，グラフィック画像か，または文字であるかを判定する。このように３種類としたのは，上述したように，一般的なコンピュータ環境において用いられる描画命令の名称がビットマップ画像，グラフィック画像およびテキストで異なるため，上記３種類のオブジェクトに区別することが便利であるからである。
【０１４３】
一般に，描画モジュールからプリンタ・ドライバに対して発行される描画命令を含む一連の命令には，例えばＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）関数と呼ばれるものがあり，この関数を機能別に分類すると図２６のように分類することができる。そして，拡張プリンタ・ドライバ２１２にこれらのＤＤＩ関数をエキスポートし，かつ所望の分類，即ち，ビットマップの描画，テキストの描画およびグラフィックスの描画に相当するＤＤＩを見つけ出してオブジェクトの種類を判定させる。ここで，オブジェクトの種類を判定ためには，描画命令の名称を用いる。オブジェクトの種類の判定後には，後述するように，初期化処理で生成した３種類の色変換パラメータのうち，該当する種類のものを描画命令に付加することができるようにすれば，後段のプリンタ・ドライバ２１２および色変換エンジン２１４において，オブジェクト単位のカラー・マッチング処理が可能となる。
【０１４４】
再び図２５の説明に戻る。拡張プリンタ・ドライバ２１２は，描画モジュールから描画命令および描画色情報を入力し，入力した描画命令に基づいて，描画命令がビットマップ画像の描画命令であるか否かを判定する（Ｓ２５０１）。
【０１４５】
ステップＳ２５０１において，ビットマップ画像の描画命令であると判定した場合，拡張プリンタ・ドライバ２１２は，初期化処理で生成して保持している３種類の色変換パラメータからビットマップ画像用の色変換パラメータを選択し，描画モジュール２１１が付加した色変換パラメータを選択した色変換パラメータに置換して，ビットマップ画像用の色変換パラメータ付き描画命令を生成し，描画色情報と共にプリンタ・ドライバ２１３に出力して処理を終了する（Ｓ２５０２）。
【０１４６】
一方，ステップＳ２５０１において，ビットマップ画像の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２１２は，入力した描画命令がグラフィック画像の描画命令であるか否かを判定する（Ｓ２５０３）。
【０１４７】
ステップＳ２５０３において，グラフィック画像の描画命令であると判定した場合，拡張プリンタ・ドライバ２１２は，初期化処理で生成して保持している３種類の色変換パラメータからグラフィック画像用の色変換パラメータを選択し，描画モジュール２１１が付加した色変換パラメータを選択した色変換パラメータに置換して，グラフィック画像用の色変換パラメータ付き描画命令を生成し，描画色情報と共にプリンタ・ドライバ２１３に出力して処理を終了する（Ｓ２５０４）。
【０１４８】
また，ステップＳ２５０３において，グラフィック画像の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２１２は，入力した描画命令が文字の描画命令であるか否かを判定する（Ｓ２５０５）。
【０１４９】
ステップＳ２５０５において，文字の描画命令であると判定した場合，拡張プリンタ・ドライバ２１２は，初期化処理で生成して保持している３種類の色変換パラメータから文字用の色変換パラメータを選択し，描画モジュール２１１が付加した色変換パラメータを選択した色変換パラメータに置換して，文字用の色変換パラメータ付き描画命令を生成し，描画色情報と共にプリンタ・ドライバ２１３に出力して処理を終了する（Ｓ２５０４）。
【０１５０】
一方，ステップ２５０５において，文字の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２１２は，その引数に何ら変更を加えることなく，そのままプリンタ・ドライバ２１３に出力して処理を終了する。すなわち，拡張プリンタ・ドライバ２１２は，オブジェクトの種類の判定および色変換パラメータの置換以外には，プリンタ・ドライバ２１３と互換性を有しているのである。
【０１５１】
その後，プリンタ・ドライバ２１３は，拡張プリンタ・ドライバ２１２から描画命令および描画色情報を入力し，描画命令に付加された色変換パラメータを色変換命令に付加して色変換エンジン２１４に出力する。色変換エンジン２１４は，付加された色変換パラメータに基づいて，描画色情報にカラー・マッチング処理を施し，カラー・マッチング処理後の描画色情報をプリンタ・ドライバ２１３に出力する。プリンタ・ドライバ２１３は，描画命令をプリンタ２１７に対応した描画命令に変換すると共に，色変換エンジン２１４から描画色情報を入力し，変換した描画命令と共にプリンタ２１７に出力する。
【０１５２】
このように，実施の形態４の色変換処理装置およびその方法によれば，オブジェクトの種類に応じた色変換パラメータを描画命令に付加する拡張プリンタ・ドライバ２１２を設けたため，拡張プリンタ・ドライバ２１２を設けるのみで，カラー・マッチングに対応してはいるが，描画対象の種類を判別する機能を有しないプリンタ・ドライバの機能の拡張を図ることができ，オブジェクトの種類に応じて適切なカラー・マッチング処理を実行することができる。
【０１５３】
なお，実施の形態４では，拡張プリンタ・ドライバ２１２が保持する３種類の色変換パラメータをドライバの初期化時に生成することにしたが，これを描画命令が発行され，その描画命令がいかなる種類のオブジェクトの描画命令であるかを判定した後，判定した種類に応じて生成することもできる。
【０１５４】
また，拡張プリンタ・ドライバ２１２は，描画命令がビットマップ画像，グラフィック画像または文字のいずれの描画命令であるかを判定することにしたが，これら３種類に限らず，さらに細分化または再分類化して判定処理を行うことにしても良い。
【０１５５】
さらに，ここで実施の形態４の色変換処理方法およびその装置の第１および第２の変形例を説明する。
【０１５６】
（第１の変形例）
上記拡張プリンタ・ドライバ２１２は，描画命令がビットマップ画像，グラフィック画像，文字のいずれの描画命令かを判定し，判定結果に応じて，描画命令に付加されていた色変換パラメータをオブジェクトの種類に応じた色変換パラメータに置換することにしている。ところで，特定のオブジェクト，例えば，プレゼンテーション用のグラフィックス内の文字については，モニタ画面に近い色よりも，プレゼンテーション用として訴求力のある色が求められることがある。一般に，色変換しない場合のプリント出力は，モニタ画面よりも濃く鮮やか目に出力されることが多いことから，第１の変形例では，文字の描画命令であると判定した場合には，色変換パラメータを置換することなく，元々付加されていた色変換パラメータをクリアし，カラー・マッチング処理が施されることのないようにする。
【０１５７】
図２７は，第１の変形例の処理手順を示すフローチャートである。なお，図２７において，図２５と同一のステップについては同一のステップ番号を付し，その説明を省略する。
【０１５８】
上述した色変換パラメータをクリアする処理は，ステップＳ２７０１で実行される。その結果，拡張プリンタ・ドライバ２１２からプリンタ・ドライバ２１３へ色変換パラメータのない描画命令が出力されることになり，描画色情報にカラー・マッチング処理を施すことなくそのままプリンタ・ドライバ２１３を介してプリンタ２１７に出力される。なお，色変換パラメータをクリアする処理は，描画対象のオブジェクトの種類を判定する際に行うことができる。
【０１５９】
（第２の変形例）
次に，第２の変形例について説明する。第２の変形例においても第１の変形例と同様に，特定の場合に色変換パラメータをクリアすることについて説明する。
シアン，マゼンタ，イエロー，ブラック，レッド，グリーン，ブルー，ホワイト（ベタおよび低濃度色を含む）といった原色またはそれに準ずる色（以下，これらを「特色」という）は，カラー・マッチングの誤差が大きくなる傾向があるため，積極的に誤差を回避するという意味で，カラー・マッチングを行わない方が良い場合がある。そこで，第２の変形例では，文字の色が上記各色のいずれかである場合に，その文字の描画色情報についてはカラー・マッチング処理を施さないようにするものである。ただし，グラデーション部でカラー・マッチングを行わないことによる弊害の発生を防止するため，グラデーションがほとんど適用されない文字部に上記特色が使用されている場合に限定して，カラー・マッチングを行わないようにすることが望ましい。
【０１６０】
図２８は，第２の変形例の処理手順を示すフローチャートである。なお，図２８において，図２５と同一のステップについては同一のステップ番号を付し，その説明を省略する。
【０１６１】
拡張プリンタ・ドライバ２１２が，図２８のステップＳ２５０５において文字の描画命令であると判定した場合，さらに，描画色情報に基づいて，その文字の色が上記特色であるか否かを判定する（Ｓ２８０１）。ステップＳ２８０１において，文字が特色ではないと判定した場合は，上述したように，描画命令に付加されている色変換パラメータを文字用の色変換パラメータに置換する（Ｓ２８０２）。一方，文字が特色であると判定した場合は，描画命令に付加されている色変換パラメータをクリアする。その結果，拡張プリンタ・ドライバ２１２からプリンタ・ドライバ２１３へ色変換パラメータのない描画命令が出力されることになり，描画色情報にカラー・マッチング処理を施すことなくそのままプリンタ・ドライバ２１３を介してプリンタ２１７に出力される。
【０１６２】
〔実施の形態５〕
実施の形態５の色変換処理装置およびその方法は，実施の形態３の動的にリンク可能なプログラムモジュールの機能拡張方法を適用することにより，カラー・マッチングに対応していないプリンタ・ドライバの機能を拡張して，カラー・マッチングに対応させるというものである。
【０１６３】
プリンタ・ドライバがカラー・マッチングに対応している場合は，実施の形態４で説明したように，色変換エンジンをコールすることができるが，プリンタ・ドライバがカラー・マッチングに対応していない場合は，色変換エンジンをコールすることができず，その結果，カラー・マッチング処理を行うことができない。そこで，実施の形態５では，色変換エンジンをコールすることができる拡張プリンタ・ドライバをカラー・マッチングに対応していないプリンタ・ドライバに加えることにして，本来不可能であったカラー・マッチング処理を行うことができるようにする。
【０１６４】
図２９は，実施の形態５の色変換処理装置のブロック構成図である。図２９において，２９０はアプリケーションを，２９１は実施の形態３で説明した上位モジュール１３０に該当する描画モジュールを，２９２は実施の形態３で説明した拡張ＤＬＬ１５１，１７０，１９０に該当する拡張プリンタ・ドライバを，２９３はモニタプロファイル２９４とプリンタプロファイル２９５とに基づいてカラー・マッチング処理を実行する色変換エンジンを，２９６は実施の形態３で説明したＤＬＬ１５０に該当するプリンタ・ドライバを，２９７はプリンタを示している。
【０１６５】
描画モジュール２９１は，アプリケーション２９０から描画命令（プリント命令）および描画色情報を入力し，後述する初期化処理で生成したカラー・マッチング方法に対応したパラメータ（以下「色変換パラメータ」という）を入力した描画命令に付加し，その描画命令と描画色情報とを拡張プリンタ・ドライバ２９２に出力する。
【０１６６】
また，拡張プリンタ・ドライバ２９２は，描画モジュール２９１とプリンタ・ドライバ２９６との間に設けられており，描画モジュール２９１によってコールされる。この拡張プリンタ・ドライバ２９２は，描画モジュール２９１から描画命令および描画色情報を入力し，入力した描画命令に基づいて，描画命令がいかなる種類のオブジェクトの描画命令であるかを判定し，判定結果に基づいて，後述する初期化処理で生成したオブジェクトの種類に応じて用意された複数の色変換パラメータから該当する種類の色変換パラメータを選択し，選択した色変換パラメータを付加した色変換命令を生成して，入力した描画色情報と共に色変換エンジン２９３へ出力する。その後，色変換エンジン２９３からカラー・マッチング処理が施された描画色情報を入力し，描画命令と描画色情報とをプリンタ・ドライバ２９６に出力する。
【０１６７】
また，色変換エンジン２９３は，拡張プリンタ・ドライバ２９２から色変換パラメータが付加された色変換命令と描画色情報とを入力し，入力デバイスの色特性情報であるモニタプロファイル２９４と出力デバイスの色特性情報であるプリンタプロファイル２９５に基づいて，描画色情報にカラー・マッチング処理を施すものである。なお，色変換エンジン２９３によるカラー・マッチング処理の詳細については，実施の形態１で説明した通りであるため，ここではその説明を省略する。
【０１６８】
さらに，プリンタ・ドライバ２９６は，上述したように，カラー・マッチングに対応していないものである。このプリンタ・ドライバ２９６は，拡張プリンタ・ドライバ２９２から描画命令およびカラー・マッチング処理が施された描画色情報を入力すると，描画命令をプリンタ２９７固有の描画命令に変換し，描画色情報と共にプリンタ２９７に出力する。
【０１６９】
なお，プリンタ・ドライバ２９６は，カラー・マッチングに対応していないため，実施の形態４で説明した図２１および図２２に示すような設定画面を有していない。そこで，実施の形態５では，上記設定画面を拡張プリンタ・ドライバ２９２に持たせることにし，ユーザが拡張プリンタ・ドライバ２９２を介してカラー・マッチングの有無およびカラー・マッチングの方法を指定することができるようにしている。
【０１７０】
また，上述した実施の形態４に係る色変換処理装置の構成において，拡張プリンタ・ドライバ２９２が本発明の種類判定手段，選択手段および出力手段に，色変換エンジン２９３が色変換手段に，プリンタ・ドライバ２９６が描画命令変換手段にそれぞれ該当する。
【０１７１】
次に，実施の形態５の色変換処理方法について，（１）ドライバ初期化時の処理，（２）オブジェクトの種類の判定処理，色変換処理および描画命令発行処理の順でフローチャートを参照しつつ説明する。
【０１７２】
（１）ドライバ初期化時の処理
図３０は，実施の形態５の色変換処理方法におけるドライバ初期化時の処理手順を示すフローチャートである。
【０１７３】
描画モジュール２９１は，プリンタ・ドライバ２９６に対してプリンタ情報・ドライバ情報の問い合わせを行い，プリンタ情報・ドライバ情報を取得する（Ｓ３００１）。具体的には，まず，拡張プリンタ・ドライバ２９２が描画モジュール２９１からの問い合わせを受け取り，受け取った問い合わせをプリンタ・ドライバ２９６に渡す。そして，拡張プリンタ・ドライバ２９２は，プリンタ・ドライバ２９６からプリンタ情報・ドライバ情報に関する戻り値を受け取り，受け取った戻り値にカラー・マッチングに関する情報を付け加えた上で，戻り値を描画モジュール２９１に渡す。その結果，描画モジュール２９１からは，プリンタ・ドライバ２９６がカラー・マッチングに対応しているように見えることになる。
【０１７４】
そして，描画モジュール２９１は，取得したプリンタ情報・ドライバ情報に基づいて，プリンタ・ドライバ２９６がカラー・マッチングに対応しており，かつ，カラー・マッチングありの指定を受けているかを判定する（Ｓ３００２）。プリンタ・ドライバ２９６はカラー・マッチングに対応していないが，拡張プリンタ・ドライバがカラー・マッチングに対応している。また，カラー・マッチングありの指定は，拡張プリンタ・ドライバ２９２において，上述した図２１および図２２に示す設定画面に基づきユーザが行う。
【０１７５】
ステップＳ３００２において，プリンタ・ドライバ２９６がカラー・マッチングに対応していないと判定した場合，またはカラー・マッチングに対応しているがカラー・マッチングありの指定がないと判定した場合には，そのまま初期化処理を終了する。
【０１７６】
一方，ステップＳ３００２において，プリンタ・ドライバ２９６がカラー・マッチングに対応しており，かつ，カラー・マッチングありの指定があると判定した場合，描画モジュール２９１は，色変換パラメータ生成命令を発行する（Ｓ３００３）。
【０１７７】
拡張プリンタ・ドライバ２９２は，カラー・マッチングに対応している，即ち色変換パラメータに対する引数を有し，色変換命令をエキスポートしているため，描画モジュール２９１から色変換パラメータ生成命令を入力すると，予め設定された条件に基づいて，色変換エンジン２９３に描画対象となる３種類のオブジェクト毎に色変換パラメータを生成する色変換パラメータ生成命令を発行する（Ｓ３００４）。ここで，３種類のオブジェクトとは，実施の形態４で説明したように，ビットマップ画像，文字およびその他のグラフィック画像のことである。
【０１７８】
色変換エンジン２９３は，拡張プリンタ・ドライバ２９２から３種類の色変換パラメータ生成命令を入力すると，ビットマップ画像の色変換パラメータ，文字の色変換パラメータおよびその他のグラフィックの色変換パラメータをそれぞれ生成し，生成した３種類の色変換パラメータを拡張プリンタ・ドライバ２９２に出力する（Ｓ３００５）。
【０１７９】
拡張プリンタ・ドライバ２９２は，色変換エンジン２９３から３種類の色変換パラメータを入力し，入力した３種類の色変換パラメータを保持すると共に，そのうちの１つの色変換パラメータを描画モジュール２９１に出力する（Ｓ３００６，Ｓ３００７）。
【０１８０】
そして，描画モジュール２９１は，拡張プリンタ・ドライバ２９２から１つの色変換パラメータを入力して保持し，初期化処理を終了する（Ｓ３００８）。描画モジュール２９１は，実際に描画命令を出力する際に，保持している色変換パラメータを付加する。
【０１８１】
なお，上述した説明においては，説明の便宜上，拡張プリンタ・ドライバ２９２から色変換エンジン２９３の間における３種類の色変換パラメータの生成処理を同時に行うように説明したが，実際には，色変換パラメータ生成命令の出力と色変換パラメータの生成とをオブジェクトの種類毎に行うことになる。すなわち，図３０に示すステップＳ３００４〜Ｓ３００６の処理を３回繰り返すことになる。
【０１８２】
（２）オブジェクトの種類の判定処理，色変換処理および描画命令発行処理
続いて，オブジェクトの種類の判定処理，色変換処理および描画命令発行処理について説明する。図３１は，実施の形態５の色変換処理方法において，オブジェクトの種類の判定処理，色変換処理および描画命令発行処理の手順を示すフローチャートである。
【０１８３】
描画モジュール２９１は，アプリケーション２９０から描画命令（印刷命令）と描画色情報を入力すると，描画命令に上述した初期化処理で生成した色変換パラメータを付加し，色変換パラメータが付加された描画命令および描画色情報を出力する。拡張プリンタ・ドライバ２９２は，実施の形態４で説明したように，描画命令の名称に基づいて，いかなる種類のオブジェクトの描画命令であるかを判定するすることができる機能を有している。したがって，拡張プリンタ・ドライバ２９２は，描画モジュール２９１から描画命令および描画色情報を入力すると，入力した描画命令がいかなる種類のオブジェクトの描画命令であるか否かを判定する（Ｓ３１０１，Ｓ３１０３，Ｓ３１０５）。
【０１８４】
すなわち，拡張プリンタ・ドライバ２９２は，描画モジュール２９１から描画命令および描画色情報を入力し，入力した描画命令の名称に基づいて，描画命令がビットマップ画像の描画命令であるか否かを判定する（Ｓ３１０１）。
【０１８５】
ステップＳ３１０１において，ビットマップ画像の描画命令であると判定した場合，拡張プリンタ・ドライバ２９２は，初期化処理で生成して保持している３種類の色変換パラメータからビットマップ画像用の色変換パラメータを選択し，選択した色変換パラメータを付加した色変換命令と描画色情報とを色変換エンジン２９３に出力する（Ｓ３１０２）。
【０１８６】
色変換エンジン２９３は，拡張プリンタ・ドライバ２９２から色変換命令および描画色情報を入力し，入力した色変換命令に付加されたビットマップ画像用の色変換パラメータに基づいて，描画色情報にカラー・マッチング処理を施し，カラー・マッチング処理を施した描画色情報を拡張プリンタ・ドライバ２９２に出力する（Ｓ３１０３）。
【０１８７】
そして，拡張プリンタ・ドライバ２９２は，色変換エンジンからカラー・マッチング処理後の描画色情報を入力し，描画命令と描画色情報とをプリンタ・ドライバ２９６に出力して処理を終了する（Ｓ３１０４）。なお，ここで，色変換パラメータが付加された描画命令は，カラー・マッチングに未対応のプリンタ・ドライバに出力するために新たな描画命令に再生成される。
【０１８８】
一方，ステップＳ３１０１において，ビットマップ画像の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２９２は，入力した描画命令がグラフィック画像の描画命令であるか否かを判定する（Ｓ３１０５）。
【０１８９】
ステップＳ３１０５において，グラフィック画像の描画命令であると判定した場合，拡張プリンタ・ドライバ２９２は，初期化処理で生成して保持している３種類の色変換パラメータからグラフィック画像用の色変換パラメータを選択し，選択した色変換パラメータを付加した色変換命令と描画色情報とを色変換エンジン２９３に出力する（Ｓ３１０６）。
【０１９０】
色変換エンジン２９３は，拡張プリンタ・ドライバ２９２から色変換命令および描画色情報を入力し，入力した色変換命令に付加されたグラフィック画像用の色変換パラメータに基づいて，描画色情報にカラー・マッチング処理を施し，カラー・マッチング処理を施した描画色情報を拡張プリンタ・ドライバ２９２に出力する（Ｓ３１０７）。
【０１９１】
そして，拡張プリンタ・ドライバ２９２は，色変換エンジンからカラー・マッチング処理後の描画色情報を入力し，描画命令と描画色情報とをプリンタ・ドライバ２９６に出力して処理を終了する（Ｓ３１０８）。
【０１９２】
また，ステップＳ３１０５において，グラフィック画像の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２９２は，入力した描画命令が文字の描画命令であるか否かを判定する（Ｓ３１０９）。
【０１９３】
ステップＳ３１０９において，文字の描画命令であると判定した場合，拡張プリンタ・ドライバ２９２は，初期化処理で生成して保持している３種類の色変換パラメータから文字用の色変換パラメータを選択し，選択した色変換パラメータを付加した色変換命令と描画色情報とを色変換エンジン２９３に出力する（Ｓ３１１０）。
【０１９４】
色変換エンジン２９３は，拡張プリンタ・ドライバ２９２から色変換命令および描画色情報を入力し，入力した色変換命令に付加された文字用の色変換パラメータに基づいて，描画色情報にカラー・マッチング処理を施し，カラー・マッチング処理を施した描画色情報を拡張プリンタ・ドライバ２９２に出力する（Ｓ３１１１）。
【０１９５】
そして，拡張プリンタ・ドライバ２９２は，色変換エンジンからカラー・マッチング処理後の描画色情報を入力し，描画命令と描画色情報とをプリンタ・ドライバ２９６に出力して処理を終了する（Ｓ３１１２）。
【０１９６】
さらに，ステップＳ３１０９において，文字の描画命令ではないと判定した場合，拡張プリンタ・ドライバ２９２は，その引数に何ら変更を加えることなく，そのままプリンタ・ドライバ２９６に出力して処理を終了する。
【０１９７】
その後，プリンタ・ドライバ２９６は，拡張プリンタ・ドライバ２９２から描画命令および描画色情報を入力し，入力した描画命令をプリンタ２９７固有の描画命令に変換し，描画色情報と共にプリンタ２９７に出力する。すなわち，プリンタ・ドライバ２９６は，拡張プリンタ・ドライバ２９２の存在に拘わらず，描画命令とカラー・マッチング処理後の描画色情報とを受け取って，通常の処理を実行するのみで良い。
【０１９８】
このように，実施の形態５の色変換処理方法およびその装置によれば，カラー・マッチングに対応し，かつオブジェクトの種類を判定することができる拡張プリンタ・ドライバ２９２を設けたため，カラー・マッチングに対応していないプリンタ・ドライバをカラー・マッチングに対応しているように拡張することができ，かつ，オブジェクトの種類に応じて適切なカラー・マッチング処理を実行することができる。
【０１９９】
なお，実施の形態５では，拡張プリンタ・ドライバ２９２が保持する３種類の色変換パラメータをドライバの初期化時に生成することにしたが，これを描画命令が発行され，その描画命令がいかなる種類のオブジェクトの描画命令であるかを判定した後，判定した種類に応じて生成することもできる。
【０２００】
また，拡張プリンタ・ドライバ２９２は，描画命令がビットマップ画像，グラフィック画像または文字のいずれの描画命令であるかを判定することにしたが，これら３種類に限らず，さらに細分化または再分類化して判定処理を行うことにしても良い。
【０２０１】
さらに，ここでは詳細な説明を省略するが，実施の形態４で説明した第１および第２の変形例を実施の形態５の色変換処理装置およびその方法に適用することもできる。
【０２０２】
最後に，図３２に前述した実施の形態１〜５を実現するハード構成の一例を示す。図において，１０１はＣＰＵ，１０２はＲＯＭ，１０３はＲＡＭ，１０４はハードディスク，１０５はフロッピー（Ｒ）ディスクドライブ装置，１０６は操作部，１０７はＣＤ−ＲＯＭドライブ装置，１０８は通信部，１０９はネットワーク拡張ボード，１１０はプリンタをそれぞれ示す。
【０２０３】
以上の構成において，本発明の色変換処理装置は，プログラムとして実現され，ハードディスク１０４に格納されている。そして，ＣＰＵ１０１によってＲＡＭ１０３中に読み出され，実行されることによって本発明の色変換処理装置が実現される。
【０２０４】
また，本発明の色変換処理方法，動的にリンク可能なプログラムモジュールの拡張方法およびそれを適用した色変換処理方法をそれぞれプログラム化し，これらをフロッピー（Ｒ）ディスク，ハードディスク，ＣＤ−ＲＯＭ，ＤＶＤ等のコンピュータが読取可能な記録媒体に記録することができる。そして，フロッピー（Ｒ）ディスク装置１０５やＣＤ−ＲＯＭ装置１０７等を介し，ＣＰＵ１０１がこれらの記録媒体からプログラムを読み出して実行することにより，上述した処理を行うことができる。また，ＣＰＵ１０１は，通信部１０８，ネットワーク拡張ボード１０９等を介して，上記プログラムを送信または受信することもできる。
【図面の簡単な説明】
【０２０５】
【図１】実施の形態１に係る色変換処理装置の概略構成を示すブロック図である。
【図２】図１に示すプリンタ・ドライバの概略構成を示すブロック図である。
【図３】図１に示すプリンタ出力用データ生成部の動作を説明する説明図である。
【図４】種々の図形が含まれたカラー・イメージの一例を示す説明図である。
【図５】実施の形態１に係るカラー画像変換装置の動作手順を示すフローチャートである。
【図６】オブジェクトがビットマップ画像である場合，プリンタが再現できない色を色相と明度一定でマッピングする方法を示す説明図である。
【図７】オブジェクトが単色のフォントや線画である場合，プリンタが再現できない色を最も色差の小さい色にマッピングする方法を示す説明図である。
【図８】実施の形態１に係る色変換処理装置の変形例を示すブロック図である。
【図９】実施の形態２に係る色変換処理装置の概略構成を示すブロック図である。
【図１０】図１に示すプリンタ・ドライバの概略構成を示すブロック図である。
【図１１】実施の形態２に係るカラー画像変換装置の動作手順を示すフローチャートである。
【図１２】実施の形態２に係る色変換処理装置の変形例を示すブロック図である。
【図１３】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法を説明するための説明図である。
【図１４】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法を説明するための説明図である。
【図１５】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第１の例を説明する説明図である。
【図１６】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第１の例を説明する概略フローチャートである。
【図１７】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第２の例を説明する説明図である。
【図１８】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第２の例を説明する概略フローチャートである。
【図１９】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第３の例を説明する説明図である。
【図２０】実施の形態３に係る動的にリンク可能なプログラムモジュールの拡張方法の第３の例を説明する概略フローチャートである。
【図２１】実施の形態４に係る色変換処理装置において，カラー・マッチングの有無を指定するための設定画面の一例を示す説明図である。
【図２２】実施の形態４に係る色変換処理装置において，カラー・マッチングの方法を指定するための設定画面の一例を示す説明図である。
【図２３】実施の形態４に係る色変換処理装置のブロック構成図である。
【図２４】実施の形態４に係る色変換処理方法において，ドライバ初期化時の処理手順を示すフローチャートである。
【図２５】実施の形態４に係る色変換処理方法において，拡張プリンタ・ドライバによる描画命令発行手順を示すフローチャートである。
【図２６】ＤＤＩ関数を分類することにより，その機能を説明するための説明図である。
【図２７】実施の形態４における第１の変形例の処理手順を示すフローチャートである。
【図２８】実施の形態４における第２の変形例の処理手順を示すフローチャートである。
【図２９】実施の形態５に係る色変換処理装置のブロック構成図である。
【図３０】実施の形態５に係る色変換処理方法において，ドライバ初期化時の処理手順を示すフローチャートである。
【図３１】実施の形態５に係る色変換処理方法において，オブジェクトの種類の判定処理，色変換処理および描画命令発行処理の手順を示すフローチャートである。
【図３２】本発明（実施の形態１〜５）を実現するハード構成の一例を示す説明図である。
【符号の説明】
【０２０６】
１１，２１１，２９１      描画モジュール
１２，２１０，２９０      アプリケーション
１３，９１，２１３，２９６      プリンタ・ドライバ
１４，２１７，２９７      プリンタ
２１      描画命令変換部
２２，９３      プリンタ出力用データ生成部
２３，９４      カラー・マッチングモジュール
２４〜２６，９５〜９７，２１４，２９３      色変換エンジン
２７，９８      デバイス・プロファイル
４１      カラー・イメージ
４２      自然画像（ビットマップ画像）
４３      フォント
４４      線画
４５      単色の塗りつぶしパターン
９２      ＣＭＭ属性設定部
１３０    上位モジュール
１５０    ＤＬＬ
１５１，１７０，１９０    拡張ＤＬＬ
２１２，２９２    拡張プリンタ・ドライバ
２１５，２９４    モニタプロファイル
２１６，２９５    プリンタプロファイル
【図１】
2006286004.tif 000003
【図２】
2006286004.tif 000004
【図３】
2006286004.tif 000005
【図４】
2006286004.tif 000006
【図５】
2006286004.tif 000007
【図６】
2006286004.tif 000008
【図７】
2006286004.tif 000009
【図８】
2006286004.tif 000010
【図９】
2006286004.tif 000011
【図１０】
2006286004.tif 000012
【図１１】
2006286004.tif 000013
【図１２】
2006286004.tif 000014
【図１３】
2006286004.tif 000015
【図１４】
2006286004.tif 000016
【図１５】
2006286004.tif 000017
【図１６】
2006286004.tif 000018
【図１７】
2006286004.tif 000019
【図１８】
2006286004.tif 000020
【図１９】
2006286004.tif 000021
【図２０】
2006286004.tif 000022
【図２１】
2006286004.tif 000023
【図２２】
2006286004.tif 000024
【図２３】
2006286004.tif 000025
【図２４】
2006286004.tif 000026
【図２５】
2006286004.tif 000027
【図２６】
2006286004.tif 000028
【図２７】
2006286004.tif 000029
【図２８】
2006286004.tif 000030
【図２９】
2006286004.tif 000031
【図３０】
2006286004.tif 000032
【図３１】
2006286004.tif 000033
【図３２】
2006286004.tif 000034