(57)【特許請求の範囲】
【請求項１】
印刷装置に送信する印刷データを生成するプリンタドライバの印刷設定を行うユーザインタフェース画面の表示を制御する情報処理装置の制御方法であって、
前記情報処理装置のプロセッサが、前記ユーザインタフェース画面の表示領域内に、前記印刷設定で設定されている出力用紙サイズに応じた出力領域を定め、予め決められた画像を前記出力領域のサイズに調整する調整ステップと、
前記情報処理装置のプロセッサが、前記調整ステップでサイズ調整された画像を前記表示領域内の前記出力領域に表示する表示ステップとを有し、
前記調整ステップでは、
前記出力領域の少なくとも一辺のサイズが前記画像の対応する辺よりも大きい場合、前記画像を拡大処理し、予め設定されている前記画像内の主要被写体の分布する領域の欠損部分が最小となるように前記拡大後の画像をトリミングし、また、
前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きい場合、前記画像を変倍することなく、前記主要被写体の分布する領域を欠損しないように前記画像をトリミングし、また、
前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きくない場合、前記画像を縮小処理し、前記主要被写体の分布する領域の欠損部分が最小となるように前記縮小後の画像をトリミングすることを特徴とする情報処理装置の制御方法。
【請求項２】
前記拡大処理は、前記画像が前記出力領域に外接する大きさとなるように前記画像を拡大することを特徴とする請求項１に記載の情報処理装置の制御方法。
【請求項３】
前記縮小処理では、前記主要被写体の分布する領域が前記出力領域に内接する大きさとなるように前記画像を縮小した場合の縮小後の画像の各辺のサイズが前記出力領域の対応する辺以上の場合、前記主要被写体の分布する領域が前記出力領域に内接する大きさとなるように前記画像を縮小し、また、前記主要被写体の分布する領域が前記出力領域に内接する大きさとなるように前記画像を縮小した場合の縮小後の画像の少なくとも一辺のサイズが前記出力領域の対応する辺より小さい場合、前記画像が前記出力領域に外接する大きさとなるように前記画像を縮小することを特徴とする請求項１又は２に記載の情報処理装置の制御方法。
【請求項４】
前記出力領域は、前記印刷設定で設定されている出力用紙サイズに対応する用紙を表す矩形領域であることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置の制御方法。
【請求項５】
前記出力領域は、前記印刷設定で設定されている出力用紙サイズに対応する用紙の印字可能領域を表す矩形領域であることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置の制御方法。
【請求項６】
印刷装置に送信する印刷データを生成するプリンタドライバの印刷設定を行うユーザインタフェース画面の表示を制御する情報処理装置であって、
前記ユーザインタフェース画面の表示領域内に、前記印刷設定で設定されている出力用紙サイズに応じた出力領域を定め、予め決められた画像を前記出力領域のサイズに調整する調整手段と、
前記調整手段でサイズ調整された画像を前記表示領域内の前記出力領域に表示する表示手段とを有し、
前記調整手段は、
前記出力領域の少なくとも一辺のサイズが前記画像の対応する辺よりも大きい場合、前記画像を拡大し、予め設定されている前記画像内の主要被写体の分布する領域の欠損部分が最小となるように前記拡大後の画像をトリミングし、また、
前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きい場合、前記画像を変倍することなく、前記主要被写体の分布する領域を欠損しないように前記画像をトリミングし、また、
前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きくない場合、前記画像を縮小し、前記主要被写体の分布する領域の欠損部分が最小となるように前記縮小後の画像をトリミングすることを特徴とする情報処理装置。
【請求項７】
情報処理装置のプロセッサに、請求項１乃至５のいずれか１項に記載された情報処理装置の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に送信する印刷データを生成するプリンタドライバの印刷設定を行うユーザインタフェース画面の表示を制御する情報処理装置の制御方法、情報処理装置、及び、プログラムに関する。
【背景技術】
【０００２】
プリンタドライバには、印刷設定等を行うためのユーザインタフェースが備えられている。このユーザインタフェースには、印刷設定に合わせた設定プレビューを表示してユーザによる印刷設定を補助するものがある。なお、設定プレビューとは、印刷設定で選択されている出力用紙サイズに対応する用紙を表す矩形領域を表示し、この矩形領域内に、印刷データを抽象化した画像を表示（出力）して、ユーザが印刷結果を事前に確認可能にするためのものである。この設定プレビューの表示の際、プリンタドライバは、予め用意された画像（元画像）を、印刷設定で選択されている出力用紙サイズを表す矩形領域に対応するサイズないしアスペクト比に調整して表示している。
【０００３】
画像を異なるサイズないしアスペクト比に調整する画像サイズ調整方法としては、従来より、元画像のトリミングや、拡大／縮小、あるいは拡大／縮小とトリミングを併用する方法などがある。
トリミングとは、元画像が出力先よりも大きい場合に、出力先よりも大きい部分を削除ないし不可視状態とし、元画像の縮尺を維持したまま一部を出力先に切り出す方法である。トリミングには、元画像における主要な構成要素（以下、主要被写体と記す）と出力先の中心をなるべく一致させて行う方法などもある（特許文献１）。
【０００４】
拡大／縮小とは、元画像の縦横各方向を拡大または縮小し、出力先にフィットするように変形し、変形後の画像をそのまま出力する方法である。
また、拡大縮小とトリミングを併用する方法とは、出力先の少なくとも一辺に一致し、もう一方の辺は、一致か、あるいははみ出すように元画像を拡大縮小し、拡大縮小後の画像が、出力先からはみ出す部分を削除ないし不可視状態とし、出力先に切り出す方法である（特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−０２３５４４号公報
【特許文献２】特開２００３−０４６７６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の画像サイズ調整方法では、元画像における主要被写体の欠損や無用な縮小、あるいは過度の変形により、画像全体ないし主要被写体の視認性が低下する可能性があった。
【０００７】
例えば、単純なトリミングでは、元画像上の主要被写体よりも出力先が小さい場合、主要被写体と出力先の中心を一致させたとしても、主要被写体の一部が欠損してしまう。また、拡大縮小とトリミングを併用する方法において、出力先の長辺が元画像の対応する辺よりも小さい場合は常に縮小が行われることになり、縮小しなくても主要被写体が出力先に収まるようなケースでは、無用な縮小が発生することになる。またあるいは、縦横別々に拡大縮小する調整方法の場合、アスペクト比によっては変形が過多になる。つまり、いずれの方法においても、画像の一部が欠損してしまったり、無用に縮小されたり、変形過多になってしまったりする可能性があった。
【０００８】
このような従来の画像調整方法を、プリンタドライバの設定プレビュー表示に適用すると、次のような問題が発生する。選択される出力用紙サイズによっては、設定プレビューにおいて、主要被写体の一部が欠損したり、無用に縮小されたり、変形過多になってしまう可能性があり、このような画像が印刷されてしまうのではないかといった誤解をユーザに与えてしまう恐れがあった。
【０００９】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、主要被写体の欠損や、無用な縮小や、変形過多等となることを抑え、且つ不必要な余白を発生させず、任意のサイズ又はアスペクト比に調整した画像を、プリンタドライバの設定プレビューに表示する仕組みを提供することである。
【課題を解決するための手段】
【００１０】
本発明は、印刷装置に送信する印刷データを生成するプリンタドライバの印刷設定を行うユーザインタフェース画面の表示を制御する情報処理装置の制御方法であって、前記情報処理装置のプロセッサが、前記ユーザインタフェース画面の表示領域内に、前記印刷設定で設定されている出力用紙サイズに応じた出力領域を定め、予め決められた画像を前記出力領域のサイズに調整する調整ステップと、前記情報処理装置のプロセッサが、前記調整ステップでサイズ調整された画像を前記表示領域内の前記出力領域に表示する表示ステップとを有し、前記調整ステップでは、前記出力領域の少なくとも一辺のサイズが前記画像の対応する辺よりも大きい場合、前記画像を拡大処理し、予め設定されている前記画像内の主要被写体の分布する領域の欠損部分が最小となるように前記拡大後の画像をトリミングし、また、前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きい場合、前記画像を変倍することなく、前記主要被写体の分布する領域を欠損しないように前記画像をトリミングし、また、前記出力領域の各辺のサイズが前記画像の対応する辺以下で且つ前記主要被写体の分布する領域の対応する辺より大きくない場合、前記画像を縮小処理し、前記主要被写体の分布する領域の欠損部分が最小となるように前記縮小後の画像をトリミングすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、主要被写体の欠損や、無用な縮小や、変形過多となることを抑え、且つ不必要な余白を発生させないように調整した画像を、プリンタドライバの設定プレビューに表示することを可能にする。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態を示す印刷制御装置を適用可能な印刷システムの構成を示すブロック図である。
【図２】図１に示した印刷システムのソフトウェア（主にプリンタドライバ）の構成を示すブロック図である。
【図３】ＵＩドライバ２０３によりディスプレイ１０１に表示されるプリンタドライバＵＩ（印刷設定画面）の一例を示す図である。
【図４】ＵＩドライバ２０３により実行されるプリンタドライバＵＩにおける設定プレビュー表示のための画像サイズ調整処理の一例を示すフローチャートである。
【図５】画像サイズ調整処理における画像処理を説明するための図である。
【図６】画像サイズ調整処理における画像処理を説明するための図である。
【図７】ＵＩドライバ２０３により実行される元画像設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１４】
＜実施形態１＞
パーソナルコンピュータ上で動作する印刷制御プログラム、主にプリンタドライバのユーザインタフェースにおいて、本発明を適用した例を示す。
【００１５】
図１は、本発明の一実施形態を示す情報処理装置を適用可能な印刷システムの構成を示すブロック図である。
図１において、一般的に１００がホストコンピュータ装置となる。１０１は、ディスプレイ（ＤＳＰ）等の表示装置であり、プリンタドライバが提供する印刷設定ダイアログやプリンタステータス情報等を表示する。１０２はＤＳＰＣで、表示装置用のコントローラである。
【００１６】
１０３は、キーボード（ＫＢ）などのデータ入力装置であり、１０４はキーボードコントローラ（ＫＢＣ）である。１０５はポインティングデバイス（ＰＤ）等の座標入力装置であり、１０６はポインティングデバイスコントローラ（ＰＤＣ）である。
１０７は、装置全体の制御を司るＣＰＵ（プロセッサ）である。１０８は、ブートプログラムなどを記憶しているＲＯＭである。１０９は、オペレーションシステム（ＯＳ）、各アプリケーションプログラムやプリンタドライバプログラムをロードしたり、さらにはワークエリアとしても利用されるＲＡＭである。
【００１７】
１１０は、ＯＳ、各アプリケーションプログラムとプリンタドライバプログラム、フォントデータを記憶しており、さらにはスプールファイル等を一時的に記憶するハードディスク装置（ＨＤＤ）である。１１１はハードディスクコントローラ（ＨＤＣ）である。
【００１８】
１１２は、可搬性記憶媒体の駆動装置であるフレキシブルディスク装置（ＦＤＤ）である。１１３はフレキシブルディスクコントローラ（ＦＤＣ）である。１１４はインタフェース（Ｉ／Ｆ）で、インタフェースケーブルを介してインクジェットプリンタ、昇華式プリンタ、レーザビームプリンタ等のプリンタ１１５に接続される。１１６は、各デバイスを接続するバスである。
【００１９】
ホストコンピュータ装置１００に電源が投入されると、ＣＰＵ１０７はＲＯＭ１０８に格納されているブートプログラムに従って起動し、ハードディスク装置１１０からＯＳをロードし、ユーザの操作待ち状態になる。ユーザは、ＫＢ１０３又はＰＤ１０５からアプリケーション等を介して印刷指示やプリンタドライバの印刷設定変更指示等の各種操作が可能である。そして、印刷指示やプリンタドライバの印刷設定変更指示を受けた場合、ＣＰＵ１０７は、ＨＤＤ１１０に格納されているプリンタドライバプログラムをＲＡＭ１０９にロードして実行する。また、ＣＰＵ１０７は、プリンタドライバプログラムが自動的に起動するように設定されている場合も同様に、プリンタドライバプログラムを実行する。
【００２０】
図２は、図１に示した印刷システムのソフトウェア（主にプリンタドライバ）の構成を示すブロック図であり、図１と同一のものには同一の符号を付してある。
図２において、２０１はアプリケーションプログラム（以下、アプリケーション）で、ＫＢ１０３又はＰＤ１０５から入力されるユーザ操作に応じて文書を作成する。また、アプリケーション２０１は、ユーザからの印刷指示を検知すると、上記文書を印刷するためにユーザインタフェースドライバ（以下、ＵＩドライバ）２０３にプリンタシステムの機能を問い合わせる。その後、アプリケーション２０１は、ＯＳのＧＤＩ２０２を含む印刷システムに印刷開始を通知する。なお、ＧＤＩは、Graphic Device Interfaceを示す。
【００２１】
ここでＧＤＩ２０２は、アプリケーション２０１から印刷開始の通知を受けると、ＵＩドライバ２０３にアプリケーション２０１による印刷開始の印刷イベントを通知する。続いて、アプリケーション２０１は、印刷対象の文書の印刷データをＧＤＩ２０２に供給し印刷処理を続行する。ＧＤＩ２０２を経由した印刷データはスプールファイル２０４に格納される。
【００２２】
プリントプロセッサ２０５は、スプールファイル２０４から印刷データを読み出す。プリントプロセッサ２０５により読み出された印刷データは、グラフィクスドライバ２０６を介した後、ランゲージモニタ２０７に送られる。
【００２３】
ランゲージモニタ２０７は、プリンタ１１５と双方向通信を行いながら、印刷データをプリンタ１１５へと送信する。ランゲージモニタ２０７は随時、プリンタ１１５が保持している状態の情報を受信する。また、ランゲージモニタ２０７は、プリンタ１１５から受信した情報や送信する印刷データを元に、現在のプリンタや印刷の状況をステータスモニタ（不図示）に伝え、ステータスモニタがその表示を行う。ステータスモニタは、プリンタや印刷の状況を表示するのみでなく、何らかの理由により印刷が中断されている場合は、対処選択肢をユーザに提示し、それに対するユーザからのレスポンス入力を受け取り、ランゲージモニタ２０７に伝達する。
【００２４】
なお、ＵＩドライバ２０３は、後述する図３に示すようなプリンタドライバのユーザインタフェース（以下、プリンタドライバＵＩ）としての印刷設定画面を、ディスプレイ１０１に表示して、ＫＢ１０３、ＰＤ１０５等からの印刷設定を受け付ける。即ち、ＵＩドライバ２０３は、プリンタ１１５に送信する印刷データを生成するプリンタドライバの印刷設定を行うユーザインタフェース画面の表示や印刷設定入力等を制御する。
【００２５】
なお、図２の２０１〜２０３及び２０５〜２０７はプログラムモジュールであり、印刷実行時や印刷設定変更時に、ＣＰＵ１０７が必要なプログラムをＨＤＤ１１０からＲＡＭ１０９にロードして実行することで実現される。なお、スプールファイル２０４は、一般的に印刷実行時にＨＤＤ１１０に生成される。
【００２６】
以下、図３を参照して、ＵＩドライバ２０３により表示制御されるプリンタドライバＵＩについて説明する。
図３は、ＵＩドライバ２０３によりディスプレイ１０１に表示されるプリンタドライバＵＩ（印刷設定画面）の一例を示す図である。
図３に示すように、プリンタドライバＵＩには、ユーザからの印刷設定を補助するために設定プレビュー（レイアウト確認用のビュー）の表示領域１００１が設けられている。
【００２７】
ＵＩドライバ２０３は、設定プレビューとして、表示領域１００１内に、出力用紙サイズ１００４の設定に対応するアスペクト比の矩形領域（出力用紙を表す）１００２を表示し、該矩形領域に印刷データを抽象化した画像１００３を表示する。例えば、出力用紙サイズ１００４に「Ｌ判」が設定されている場合、表示領域１００１にＬ判用紙に対応したアスペクト比の矩形領域１００２を表示し、矩形領域１００２内に、画像１００３を表示する。即ち、印刷データを抽象化した画像１００３は、設定されている用紙サイズに対応するアスペクト比の矩形領域１００２を表示領域内に定め、該矩形領域１００２を出力先（出力領域）として表示される。
【００２８】
なお、プリンタドライバＵＩで写真印刷の設定がなされている（例えば１００５で「写真印刷」が選択されている）場合、ＵＩドライバ２０３は、図３（ａ）のように、印刷データを抽象化した画像１００３として写真印刷データを抽象化した画像を表示する。
また、プリンタドライバＵＩで写真印刷以外の設定がなされている（例えば１００５で「標準印刷」が選択されている）場合、ＵＩドライバ２０３は、図３（ｂ）のように、印刷データを抽象化した画像１００３として文書印刷データを抽象化した画像を表示する。
このように表示される設定プレビューにより、ユーザは、印刷結果を視覚的に確認しながら、印刷設定することができる。
【００２９】
なお、図３（ａ）のように、設定プレビューとして、表示領域１００１の矩形領域１００２に、写真印刷データを抽象化した画像を表示する場合、ＵＩドライバ２０３は、後述する図４に示すフローチャートに示す処理を実行する。この処理にて、ＵＩドライバ２０３は、設定プレビューの元画像（写真印刷データを抽象化した画像）が出力先（出力用紙を表す矩形）に対して最適な大きさとなるよう、必要に応じて、元画像に、拡大、縮小、トリミング等の処理を施す。
【００３０】
次に、ＵＩドライバ２０３により実行されるプリンタドライバＵＩにおける設定プレビュー表示のための画像サイズ調整処理について、図４〜図６を用いて説明する。なお、設定プレビューとは、上述したように、出力用紙を表す矩形領域を表示し、この矩形領域内に、印刷データを抽象化した画像を表示して、印刷結果を事前に確認するためのものである。
【００３１】
図４は、ＵＩドライバ２０３により実行されるプリンタドライバＵＩにおける設定プレビュー表示のための画像サイズ調整処理の一例を示すフローチャートである。
ＵＩドライバ２０３は、プリンタドライバＵＩの表示領域１００１に設定プレビューを表示する際、本フローチャートの処理を開始する。
まず、ＵＩドライバ２０３は、Ｓ３０１を実行する前に、表示領域１００１のサイズ、出力用紙サイズのアスペクト比、印刷データを抽象化した画像（以下、元画像）のサイズ、元画像の主要被写体分布領域の位置及びサイズ等を取得しておく。さらに、ＵＩドライバ２０３は、表示領域１００１のサイズと出力用紙サイズのアスペクト比から矩形領域１００２（設定プレビューの出力用紙を表す矩形（以下、出力先））のサイズを算出しておく。
【００３２】
なお、出力用紙を表す矩形のアスペクト比は、１００４にて選択されている出力用紙サイズに応じて決定される。また、元画像は、予めプリンタドライバプログラム内に保持されている。さらに、元画像の主要被写体分布領域とは、元画像の印象を決定付ける要素（主要被写体）が分布する矩形領域であり、予め設定されてプリンタドライバプログラム内に保持されている。
【００３３】
Ｓ３０１では、ＵＩドライバ２０３は、出力先の少なくとも一辺のサイズが、対応する元画像の辺よりも大きいか否かを判定する。そして、出力先の少なくとも一辺のサイズが対応する元画像の辺よりも大きいと判定した場合（Ｓ３０１でＹｅｓ）、ＵＩドライバ２０３は、Ｓ３０２に処理を進める。
【００３４】
Ｓ３０２では、ＵＩドライバ２０３は、元画像を出力先に対して外接する大きさに拡大処理する。
さらに、Ｓ３０３において、ＵＩドライバ２０３は、拡大後の画像（拡大画像）を表示する際に拡大画像の出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、ＵＩドライバ２０３は、拡大画像内の主要被写体分布領域のトリミングによる欠損量（欠損部分）が最小となるように拡大画像を配置したうえで、上記余剰部分をトリミングする。即ち、主要被写体分布領域の欠損部分が最小となるように拡大画像をトリミングする。そして、ＵＩドライバ２０３は、トリミング後の画像をプリンタドライバＵＩの表示領域１００１内の矩形領域１００２に表示するように制御する。
【００３５】
一方、上記Ｓ３０１にて、出力先の両辺のサイズともに元画像の各対応する辺以下（同じか、又は、それより小さい）と判定した場合（Ｓ３０１でＮｏ）、ＵＩドライバ２０３は、Ｓ３０４に処理を進める。
【００３６】
Ｓ３０４では、ＵＩドライバ２０３は、出力先の各辺が元画像の主要被写体分布領域の各辺以上（同じか、又は、それより大きい）か否を判定する。そして、出力先の各辺が元画像の主要被写体分布領域の各辺以上と判定した場合（Ｓ３０４でＹｅｓ）、ＵＩドライバ２０３は、Ｓ３０５に処理を進める。
【００３７】
Ｓ３０５では、ＵＩドライバ２０３は、元画像の拡大／縮小は行わず（元画像を変倍することなく）、元画像を表示する際に元画像の出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、ＵＩドライバ２０３は、元画像内の主要被写体分布領域が欠損しないように配置したうえで、上記余剰部分をトリミングする。即ち、主要被写体分布領域を欠損しないように拡大画像をトリミングする。そして、ＵＩドライバ２０３は、トリミング後の画像をプリンタドライバＵＩの表示領域１００１内の矩形領域１００２に表示するように制御する。
【００３８】
一方、Ｓ３０４にて、出力先の少なくとも一辺が、それと同方向の、元画像の主要被写体分布領域の辺よりも小さいと判定した場合（Ｓ３０４でＮｏ）、ＵＩドライバ２０３は、Ｓ３０６に処理を進める。
【００３９】
Ｓ３０６では、ＵＩドライバ２０３は、元画像の主要被写体分布領域が出力先に対して内接する大きさとなるよう元画像を縮小した場合に、その縮小後の画像（縮小画像）の各辺が、出力先の各辺以上（同じか、又は、より大きい）か否を判定する。そして、縮小画像の各辺が出力先の各辺以上と判定した場合（Ｓ３０６でＹｅｓ）、ＵＩドライバ２０３は、Ｓ３０７に処理を進める。
【００４０】
Ｓ３０７では、ＵＩドライバ２０３は、主要被写体分布領域が出力先に対して内接する大きさとなるよう元画像を縮小処理する。
次に、Ｓ３０８にて、ＵＩドライバ２０３は、縮小後の画像（縮小画像）を表示する際に縮小画像の出力先の矩形からはみ出す部分（余剰部分）をトリミングする。この際、このとき、ＵＩドライバ２０３は、縮小画像内の主要被写体分布領域が出力先に対して内接するように縮小画像を配置したうえで、上記余剰部分をトリミングする。即ち、主要被写体分布領域の欠損量が最小となるように縮小画像をトリミングする。そして、ＵＩドライバ２０３は、トリミング後の画像をプリンタドライバＵＩの表示領域１００１内の矩形領域１００２に表示するように制御する。
【００４１】
一方、Ｓ３０６にて、元画像の主要被写体分布領域が出力先に対して内接する大きさとなるよう元画像を縮小した場合でも、その縮小後の画像の一辺が、それと同方向の、出力先の辺より小さいと判定した場合（Ｓ３０６でＮｏ）、ＵＩドライバ２０３は、Ｓ３０９に処理を進める。
【００４２】
Ｓ３０９では、ＵＩドライバ２０３は、元画像が出力先に対して外接する大きさとなるよう元画像を縮小処理する。
次に、Ｓ３１０にて、ＵＩドライバ２０３は、縮小後の画像（縮小画像）を表示する際に縮小画像の出力先の矩形からはみ出す部分（余剰部分）をトリミングする。この際、ＵＩドライバ２０３は、縮小画像内の主要被写体分布領域の欠損が最小となるように縮小画像を配置したうえで、上記余剰部分をトリミングする。即ち、主要被写体分布領域の欠損量が最小となるように縮小画像をトリミングする。そして、ＵＩドライバ２０３は、トリミング後の画像をプリンタドライバＵＩの表示領域１００１内の矩形領域１００２に表示するように制御する。
【００４３】
以下、具体例を用いて図４の画像サイズ調整処理をより具体的に説明する。
ここでは、ＵＩドライバ２０３により表示制御されるプリンタドライバＵＩの表示領域１００１を１００×１００ピクセル（pixel）として説明する。また、矩形領域１００２の長辺を表示領域１００１の一辺と同一サイズとなるように、矩形領域１００２を表示し、その矩形領域１００２内に画像１００３を表示するものとする。即ち、ここでは、矩形領域１００２を長辺が１００ピクセルとなるように表示し、その矩形内に画像１００３を表示するものとする。
【００４４】
図５は、画像サイズ調整処理における画像処理を説明するための図である。
図５（ａ）は、元画像の例を示す。
図５（ｂ）は、出力先へプレビュー表示例（トリミング後の画像の例）を示す。
図５（ａ）に示す例では、元画像を、２５０×２５０ピクセルの画像とする。また、元画像の中心から±２５ピクセルの範囲（５０×５０ピクセルの矩形）を主要被写体分布領域とする。
【００４５】
まず、図５（ｂ）を用いて、アスペクト比３：２の用紙が出力用紙に設定されている場合を説明する。
アスペクト比３：２の用紙が出力用紙に設定されている場合、表示領域が１００×１００ピクセルであるため、図５（ｂ）に示すように、１００×６７ピクセルの矩形を出力用紙の模式図として表示領域１００１に表示することになる。即ち、出力先は１００×６７ピクセルの矩形領域となる。
【００４６】
この場合、出力先（１００×６７）の両辺が元画像（２５０×２５０）の両辺より小さいため、ＵＩドライバ２０３は、図４のＳ３０１でＮｏと判定し、図４のＳ３０４を実行する。
【００４７】
図４のＳ３０４では、出力先（１００×６７）の両辺が元画像の主要被写体分布領域（５０×５０）の両辺より大きいため、ＵＩドライバ２０３はＹｅｓと判定し、図４のＳ３０５を実行する。
【００４８】
図４のＳ３０５では、ＵＩドライバ２０３は、元画像の拡大／縮小は行わず、元画像を表示する際に出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、元画像内の主要被写体が欠損しないように配置したうえで、余剰部分をトリミングする。このトリミング後の画像が図５（ｂ）に対応する。
【００４９】
次に、図５（ｃ）を用いて、アスペクト比３：１の用紙が出力用紙に設定されている場合を説明する。
アスペクト比３：１の用紙が出力用紙に設定されている場合、表示領域が１００×１００ピクセルであるため、図５（ｃ）に示すように、１００×３３ピクセルの矩形を出力用紙の模式図として表示領域１００１に表示することになる。即ち、出力先は１００×３３ピクセルの矩形領域となる。
【００５０】
この場合、出力先（１００×３３）の両辺が元画像（２５０×２５０）の両辺より小さいため、ＵＩドライバ２０３は、図４のＳ３０１でＮｏと判定し、図４のＳ３０４を実行する。また、図４のＳ３０４でも、出力先（１００×３３）の一辺が元画像の主要被写体分布領域（５０×５０）の対応する辺より小さいため、ＵＩドライバ２０３はＮｏと判定し、図４のＳ３０６を実行する。
【００５１】
主要被写体分布領域（５０×５０）が出力先（１００×３３）に対して内接する大きさとなるように元画像を縮小（即ち、３３／５０倍に縮小）した場合、縮小後の画像（縮小画像）は一辺１６５ピクセルの矩形となる。この縮小画像（１６５×１６５）の各辺は、出力先（１００×３３）の各辺より大きいため、ＵＩドライバ２０３は図４のＳ３０６でＹｅｓと判定し、図４のＳ３０７を実行する。
【００５２】
図４のＳ３０７では、ＵＩドライバ２０３は、元画像（２５０×２５０）を上記の「３３／５０」倍に縮小し、図４のＳ３０８を実行する。
図４のＳ３０８では、ＵＩドライバ２０３は、縮小した後の画像（縮小画像）を表示する際に出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、縮小画像内の主要被写体分布領域が出力先に対して内接するよう配置したうえで、余剰部分をトリミングする。このトリミング後の画像が図５（ｃ）に対応する。
【００５３】
次に、図５（ｄ）を用いて、アスペクト比１０：１の用紙が出力用紙に設定されている場合を説明する。
アスペクト比１０：１の用紙が出力用紙に設定されている場合、表示領域が１００×１００ピクセルであるため、図５（ｄ）に示すように、１００×１０ピクセルの矩形を出力用紙の模式図として表示領域１００１に表示することになる。即ち、出力先は１００×１０ピクセルの矩形領域となる。
【００５４】
この場合、出力先（１００×１０）の両辺が元画像（２５０×２５０）の両辺より小さいため、ＵＩドライバ２０３は、図４のＳ３０１でＮｏと判定し、図４のＳ３０４を実行する。また、図４のＳ３０４でも、出力先（１００×１０）の一辺が元画像の主要被写体分布領域（５０×５０）の対応する辺より小さいため、ＵＩドライバ２０３はＮｏと判定し、図４のＳ３０６を実行する。
【００５５】
さらに、主要被写体分布領域（５０×５０）が出力先（１００×１０）に対して内接する大きさとなるように元画像を縮小（即ち、１０／５０倍に縮小）した場合、縮小後の画像（縮小画像）は一辺５０ピクセルの矩形となる。この縮小画像（５０×５０）の一辺が出力先（１００×１０）の対応する辺より小さいため、ＵＩドライバ２０３は図４のＳ３０６でＮｏと判定し、図４のＳ３０９を実行する。
【００５６】
図４のＳ３０９では、ＵＩドライバ２０３は、元画像（２５０×２５０）が出力先（１００×１０）に対して外接する大きさとなるように元画像を縮小する。即ち、「１００／２５０」倍に縮小する。
【００５７】
次に、図４のＳ３１０では、ＵＩドライバ２０３は、縮小した後の画像（縮小画像）を表示する際に出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、縮小画像内の主要被写体分布領域の欠損量が最小となるよう配置したうえで、余剰部分をトリミングする。このトリミング後の画像が図５（ｄ）に対応する。
【００５８】
本実施形態のプリンタドライバＵＩは、ＰＤ１０５等を用いた操作により拡大／縮小可能である。プリンタドライバＵＩを拡大／縮小することにより、表示領域１００１も拡大／縮小される。
【００５９】
以下、プリンタドライバＵＩを拡大することにより、表示領域を３００×３００ピクセルに拡大したものとして説明を行う。即ち、以下の例では、矩形領域１００２を長辺が３００ピクセルとなるように表示し、その矩形内に画像１００３を表示するものとする。
【００６０】
図６は、画像サイズ調整処理における画像処理を説明するための図であり、出力先へプレビュー表示例（トリミング後の画像の例）を示す。
図６を用いて、アスペクト比３：２の用紙が出力用紙に設定されている場合を説明する。
アスペクト比３：２の用紙が出力用紙に設定されている場合、表示領域が３００×３００ピクセルであるため、図６に示すように、３００×２００ピクセルの矩形を出力用紙の模式図として表示領域１００１に表示することになる。即ち、出力先は３００×２００ピクセルの矩形領域となる。
【００６１】
この例では、出力先（３００×２００）の一辺が元画像（２５０×２５０）の対応する辺より大きいため、ＵＩドライバ２０３は図４のＳ３０１でＹｅｓと判定し、図４のＳ３０２を実行する。
【００６２】
図４のＳ３０２では、ＵＩドライバ２０３は、元画像（２５０×２５０）を、出力先（３００×２００）に対して外接する大きさに拡大する。即ち、元画像を「３００／２５０」倍に拡大する。
【００６３】
さらに、図４のＳ３０３では、ＵＩドライバ２０３は、拡大した後の画像（拡大画像）を表示する際に出力先の矩形からはみ出す部分（余剰部分）をトリミングする。このとき、拡大画像内の主要被写体分布領域が欠損しないように配置したうえで、余剰部分をトリミングする。このトリミング後の画像が図６に対応する。
【００６４】
以上に示したように、出力先の両辺ともに元画像の各対応する辺より小さい場合であっても、元画像の印象を決定付ける主要被写体の分布する領域が十分に収まる場合は、元画像を縮小することなくトリミングのみ行って表示する。これにより、元画像の視認性を不必要に低下させずに、設定プレビューとして表示する画像のサイズを調整することが可能となる。即ち、主要被写体の欠損や、無用な縮小や、変形過多等となることを抑え、且つ不必要な余白を発生させず、設定された出力用紙サイズに応じて調整した画像を、プリンタドライバの設定プレビューとして表示できる。これにより、どのような出力用紙サイズが設定されても、設定プレビューにおいて、主要被写体の一部が欠損したり、無用に縮小されたり、変形過多になってしまうことを抑えることができ、設定プレビューによりユーザに誤解を与えてしまう心配もなくなる。
【００６５】
また、上記のトリミングを行うと主要被写体分布領域が欠損してしまう場合には、主要被写体分布領域が出力先に収まる程度に元画像を縮小することで、元画像の視認性を低下させる画像の縮小を最低限に抑えることが可能となる。
【００６６】
また、上記の主要被写体分布領域を基準とした縮小では出力先に余白が発生してしまう場合には、出力先に外接するサイズへ元画像を縮小することで、出力先に余白のない、審美性を保った画像出力が保証される。
よって、ユーザは、印刷設定画面に表示される印刷データの模式画像により、リアルに印刷結果を事前確認しながら、容易に印刷設定を行うことができる。
【００６７】
＜実施形態２＞
上記実施形態１では、特定の画像（予め決められた画像）を元画像とし、該元画像の主要被写体分布領域の位置、大きさを特定する情報を、予め出力プログラムが保持しておく形態を示した。しかし、任意の画像を元画像としてユーザが設定し、該元画像に対して主要被写体分布領域の位置、大きさを特定する情報をユーザが設定する形態も考えられる。以下、この形態について、図７を用いて説明する。
【００６８】
本実施形態では、ユーザは、ＵＩドライバ２０３に対して、元画像を、画像ファイルの保存場所などで指定可能とする。
例えば、ユーザは、まず、図３に示したプリンタドライバＵＩの「ユーティリティ」タブ１００６をＰＤ１０５で指示して、プリンタドライバＵＩ上にユーティリティページ（不図示）を表示させる。さらにユーザは、ユーティリティページ上からの指示により、元画像を、画像ファイルの保存場所などで指定する。このような操作により、元画像を指定可能である。
【００６９】
図７は、ＵＩドライバ２０３により実行される元画像設定処理の一例を示すフローチャートである。
ＵＩドライバ２０３は、ユーザから元画像に設定したい画像が指定されたことを検知すると（Ｓ９０１でＹｅｓ）、該指定された画像の各辺のサイズを取得する（Ｓ９０２）。
次に、ＵＩドライバ２０３は、上記Ｓ９０１で指定された画像内の主要被写体の分布する領域（主要被写体分布領域）が指定されるまで待機する（Ｓ９０３）。この指定は座標値をＫＢ１０３から入力する方法でもよいし、ＵＩドライバ２０３が指定された元画像をディスプレイ１０１に表示し、この表示に対してＰＤ１０５のカーソルをドラッグして矩形として指定する方法でもよい。
【００７０】
ＵＩドライバ２０３は、ユーザから主要被写体分布領域が指定されたことを検出すると（Ｓ９０３でＹｅｓ）、Ｓ９０４に処理を進める。
Ｓ９０４では、ＵＩドライバ２０３は、上記Ｓ９０３で指示された主要被写体分布領域の位置及びサイズを取得する。
そして、ＵＩドライバ２０３は、上記Ｓ９０１，Ｓ９０２で指定等された画像の情報を元画像の情報としてプリンタドライバプログラム内に保持させる（ＨＤＤ１１０に記憶してもよい）。また、ＵＩドライバ２０３は、上記Ｓ９０３，Ｓ９０４で指定等された主要被写体分布領域の情報を元画像の主要被写体分布領域の情報としてプリンタドライバプログラム内に保持させる（ＨＤＤ１１０に記憶してもよい）。そして、ＵＩドライバ２０３は、図４に示した画像サイズ調整処理を実行する（Ｓ９０５）。
【００７１】
以上示したように、本実施形態によれば、任意の元画像に対しても図４の画像サイズ調整処理を適用でき、画像の視認性を低下させることなく、かつ余白を発生させずに、設定プレビューとして表示する画像のサイズを調整することが可能となる。
よって、ユーザは、印刷設定画面に表示される、ユーザ指定画像により、印刷結果を事前確認しながら、容易に印刷設定を行うことができる。
【００７２】
＜実施形態３＞
上記実施形態２では、元画像に対して、主要被写体分布領域をユーザが指定する形態を示した。しかし、主要被写体分布領域を、元画像に対する画像認識により自動的に検出する形態も考えられる。
例えば、高周波部の輝度ヒストグラムを用いたり、人物であれば肌色などの特定色の分布を解析するといった一般的な画像認識により、まず主要被写体を検出する。そして、検出した主要被写体に外接する矩形を主要被写体が分布する領域として設定し、図４に示した画像サイズ調整処理を実行する。
【００７３】
本実施形態によれば、任意の元画像に対しても図４の画像サイズ調整処理を適用でき、画像の視認性を低下させることなく、かつ余白を発生させずに、設定プレビューとして表示する画像のサイズを自動的に調整することが可能となる。
【００７４】
＜実施形態４＞
上記実施形態１〜３は、プリンタドライバＵＩ上の矩形領域１００２（用紙外形に見立てた矩形）を出力先として画像１００３を出力する形態を示した。しかし、印刷データの用紙への印刷出力を考慮し、矩形領域１００２内部に存在する印字可能領域を表す矩形を出力先として画像１００３を出力する形態も考えられる。
【００７５】
例えば、図３（ａ）の「フチなし全面印刷」１００７にチェックがなされていない場合、ＵＩドライバ２０３は、矩形領域１００２内部に存在する印字可能領域を表す矩形を出力先として画像１００３を出力する。
一方、図３（ａ）の「フチなし全面印刷」１００７にチェックがなされている場合には、ＵＩドライバ２０３は、上記実施形態１〜３に示したように、矩形領域１００２を出力先として画像１００３を出力する。
【００７６】
本形態のような応用により、元画像に対して、該画像の視認性を低下させることなく、かつ余白を発生させずに、様々な印刷設定に応じた出力先に合わせた画像サイズの調整を行うことが可能となる。
よって、ユーザは、印刷設定画面に表示される、ユーザ指定画像により、用紙上の印刷可能領域を考慮した印刷結果を事前確認しながら、容易に印刷設定を行うことができる。
【００７７】
＜実施形態５＞
上記実施形態１〜４は、表示装置（特に、プリンタドライバＵＩ上の矩形領域）を出力先として図４の画像サイズ調整処理を行う形態を示した。しかし、画像を異なるアスペクト比の用紙に印刷出力することを考慮し、実際の用紙に印刷する場合に画像データを展開するメモリ領域等を出力先として、図４の画像サイズ調整処理を行うことも可能である。
【００７８】
例えば、画像サイズを調整する機能を持つアプリケーションソフトにおいて、図４の画像サイズ調整処理を適用することができる。これにより、例えばデジタルカメラなどで撮影した元画像に対し、視認性を低下させることなく、かつ余白を発生させずにサイズ調整された印刷物を生成することが可能となる。
【００７９】
また、任意のメモリ領域を出力先として、図４の画像サイズ調整処理を行うことが可能である。これにより、例えばデジタルカメラなどで撮影した元画像を、視認性を低下させることなく、かつ余白を発生させずに、サイズ調整することが可能となる。
【００８０】
＜実施形態６＞
上記実施形態１〜５は、出力先が矩形領域である構成について説明したが、出力先はどのような形状の領域であってもよい。例えば、矩形以外の多角形であってもよいし、円形や、ドーナツ型等であってもよい。
【００８１】
＜実施形態７＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
本発明の様々な例と実施例を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００８２】
１００    ホストコンピュータ装置
１０１    ディスプレイ
１１５    プリンタ
２０３    ユーザインタフェースドライバ（ＵＩドライバ）
２０５    プリントプロセッサ
２０６    グラフィックスドライバ
【図１】
0005528081.tif 000002
【図２】
0005528081.tif 000003
【図３】
0005528081.tif 000004
【図４】
0005528081.tif 000005
【図５】
0005528081.tif 000006
【図６】
0005528081.tif 000007
【図７】
0005528081.tif 000008