(57)【特許請求の範囲】
【請求項１】
出力対象の画像のレイアウトを決定する画像処理装置であって、
所定の出力領域において出力対象の複数の画像のそれぞれのサイズが所定のサイズよりも大きくなるように当該複数の画像が複数の行と複数の列に配置されて出力されるときの、当該複数の画像のレイアウトを決定する決定手段を有し、
前記決定手段は、前記複数の行の行数と前記複数の列の列数が積算されたときの数に前記出力対象の複数の画像の数が満たない場合のレイアウトの候補としての、行数と列数の少なくとも一方が異なる第１の候補と第２の候補のうち、当該複数の画像の数と当該積算されたときの数との差分が小さくなる行数と列数に対応する候補を、当該複数の画像のレイアウトとして決定することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記第１の候補と前記第２の候補のうち、当該第１の候補と当該第２の候補のそれぞれに従って配置されたときの前記複数の画像に外接する矩形の周囲の長さが短い候補を、当該複数の画像の数と当該積算されたときの数との差分が小さくなる行数と列数に対応するレイアウトとして決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の画像のそれぞれの大きさと、前記第１の候補と前記第２の候補のそれぞれに対応する行数と列数とに応じて、前記第１の候補と前記第２の候補のそれぞれに従って当該複数の画像が配置されたときに当該複数の画像に外接する矩形の周囲の長さを取得する取得手段を有し、
前記決定手段は、前記取得手段により取得された長さを前記第１の候補と前記第２の候補で比較することにより、当該長さが短い候補を当該複数の画像のレイアウトとして決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記取得手段は、前記複数の画像のそれぞれの大きさと、前記第１の候補と前記第２の候補のそれぞれに対応する行数と列数と、さらに当該複数の画像の間で設けられる余白に応じて、前記矩形の周囲の長さを取得することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記決定手段は、前記出力対象の複数の画像のアスペクト比を維持して当該複数の画像を前記所定の出力領域に出力するときに、当該複数の画像を最も大きいサイズで配置するための複数のレイアウトの候補のうち、当該複数の画像の数と当該複数の候補のそれぞれの行数と列数が積算されたときの数との差分が最も小さくなる候補を、当該複数の画像のレイアウトとして決定することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記出力対象の複数の画像を、前記決定手段により決定されたレイアウトに従って出力する出力手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記出力手段は、前記複数の画像を印刷装置に印刷させることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記決定手段は、前記複数の画像の印刷に用いられる用紙のサイズに応じた前記所定の出力領域におけるレイアウトを決定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記出力対象の複数の画像は、動画像から抽出された複数のフレームであることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記第１の候補と前記第２の候補は、行数と列数のいずれか一方が異なることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
出力対象の画像のレイアウトを決定する画像処理方法であって、
所定の出力領域において出力対象の複数のそれぞれのサイズが所定のサイズよりも大きくなるように当該複数の画像が複数の行と複数の列に配置されて出力されるときの、当該複数の画像のレイアウトを決定し、
前記決定では、前記複数の行の行数と前記複数の列の列数が積算されたときの数に前記出力対象の複数の画像の数が満たない場合のレイアウトの候補としての、行数と列数の少なくとも一方が異なる第１の候補と第２の候補のうち、当該複数の画像の数と当該積算されたときの数との差分が小さくなる行数と列数に対応する候補を、当該複数の画像のレイアウトとして決定することを特徴とする画像処理方法。
【請求項１２】
請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力対象の画像のレイアウトを決定する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
画像を出力するときのレイアウトの１つに複数の画像を並べてレイアウトする方法がある。このレイアウトに従って並べられた複数の画像を１枚の用紙に配置するインデックスプリントや、複数の画像を画面に並べて表示させるインデックス表示が知られている。
【０００３】
このように複数の画像を並べて出力する方法として、特許文献１には、複数の画像を並べて印刷したときに用紙における余白が最小になるように、印刷を行う用紙サイズを決定することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５９４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の従来技術では、用紙のサイズを決定しているため、ユーザが所望の用紙サイズがあったとしても、その用紙サイズの用紙に適切に印刷することができない場合がある。よって、ユーザが所望の用紙サイズがあったとしても、その用紙サイズが画像の配置に適したものでなければ、画像を適切に配置することができない。
【０００６】
そこで本発明は、出力対象の複数の画像を並べて配置するときに、配置対象の領域における当該複数の画像の配置を、適切に決定することができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、所定の出力領域において出力対象の画像のレイアウトを決定する画像処理装置であって、出力対象の複数の画像のそれぞれのサイズが所定のサイズよりも大きくなるように当該複数の画像が複数の行と複数の列に配置されて出力されるときの、当該複数の画像のレイアウトを決定する決定手段を有し、前記決定手段は、前記複数の行の行数と前記複数の列の列数が積算されたときの数に前記出力対象の複数の画像の数が満たない場合のレイアウトの候補としての、行数と列数の少なくとも一方が異なる第１の候補と第２の候補のうち、当該複数の画像の数と当該積算されたときの数との差分が小さくなる行数と列数に対応する候補を、当該複数の画像のレイアウトとして決定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、出力対象の複数の画像を並べて配置するときに、配置対象の領域における当該複数の画像の配置を、適切に決定することができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置のブロック図である。
【図２】実施例１における画像のレイアウトの決定処理を示すフローチャートである。
【図３】配置対象の画像を配置するときのレイアウトの複数の候補を示す図である。
【図４】縦横の画像数と、画像サイズの関係を示す図である。
【図５】実施例２における画像のレイアウトの決定処理を示すフローチャートである。
【図６】縦横の画像数と、画像サイズの関係を示す図である。
【図７】配置対象の画像を配置するときのレイアウトの、複数の候補を示す図である。
【図８】実施例２における画像のレイアウトの決定処理を示すフローチャートである。
【図９】本実施例におけるレイアウト決定方法を説明するための図である。
【図１０】インデックスプリントの一例を示す図である。
【発明を実施するための形態】
【００１０】
（実施例１）
以下、本発明の実施の形態について詳細に説明する。
【００１１】
図１は、画像処理装置のブロック図である。画像処理装置として、ＰＣを使用すると想定して説明する。
ＣＰＵ１０１は、中央演算ユニット（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で、他の機能ブロックや装置の制御を行う。ブリッジ部１０２は、ＣＰＵ  １０１と他の機能ブロックの間でデータのやり取りを制御する機能を提供している。
【００１２】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）  １０３は読み込み専用の不揮発メモリであり、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）と呼ばれるプログラムが格納されている。ＢＩＯＳは画像処理装置が起動したときに最初に実行されるプログラムであり、２次記憶装置１０５、表示装置１０７、入力装置１０９、出力装置１１０などの周辺機器の基本入出力機能を制御するものである。
【００１３】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４は、高速の読み／書き可能な記憶領域を提供する。
【００１４】
２次記憶装置１０５は、大容量の記憶領域を提供するＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。ＢＩＯＳが実行されると、ＨＤＤに格納されているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が実行される。ＯＳはすべてのアプリケーションで利用可能な基本的な機能や、アプリケーションの管理、基本ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する。アプリケーションは、ＯＳが提供するＧＵＩを組み合わせることで、アプリケーション独自の機能を実現するＵＩを提供できる。
【００１５】
なお、上記のＯＳや、他のアプリケーションの実行プログラムや作業用に使用しているデータは、必要に応じてＲＯＭ１０３または２次記憶装置１０５に格納される。また、本実施例の処理を実行する画像処理アプリケーションは、ＲＯＭ１０３または２次記憶装置１０５に格納され、ユーザの操作で起動するアプリケーションとして提供される。以下で説明する処理は、ＣＰＵ１０１が、ＲＯＭ１０３や２次記憶装置１０５に記憶されている、ＯＳ、画像処理アプリケーション等のプログラムを、ＲＡＭ１０４をワークメモリとして実行することで実現する。
【００１６】
表示制御部１０６は、各種の画像を表示装置１０７に表示させるための制御を行う。表示される画像は、例えば、２次記憶装置１０５に記憶されている画像や、ＯＳやアプリケーションに対して行われるユーザの操作の結果を示すＧＵＩの画像である。また、表示装置１０７には液晶ディスプレイや、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイが使用できる。
【００１７】
Ｉ／Ｏ制御部１０８は、複数の入力装置１０９、出力装置１１０とのインターフェースを提供するものである。代表的なインターフェースとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＰＳ／２（Ｐｅｒｓｏｎａｌ  Ｓｙｓｔｅｍ／２）がある。
【００１８】
入力装置１０９は、キーボード、マウスといった操作デバイスであり、Ｉ／Ｏ制御部１０８は、入力装置１０９を介してユーザの指示を画像処理装置に入力する。
【００１９】
Ｉ／Ｏ制御部１０８は、各種の出力装置１１０を接続する。出力装置１１０は例えばプリンターであり、Ｉ／Ｏ制御部が印刷データを出力装置に出力することで、印刷データに対応する画像を印刷させることができる。
【００２０】
なお、画像処理装置には、デジタルカメラ、ＵＳＢメモリ、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）メモリ、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードといった記憶装置などを接続することもできる。そして、Ｉ／Ｏ制御部は、そのデジタルカメラやメモリに画像データなどのデータを転送することや、逆にデジタルカメラやメモリからデータを取得することも可能である。
【００２１】
後述するが、本実施例では、複数枚のフレームから構成される動画像から、フレームを抽出する。その動画像のデータは、上記の２次記憶装置１０５や、画像処理装置に接続されているＵＳＢメモリやＣＦメモリ、ＳＤメモリカード等から供給される。
【００２２】
以下、本実施例における、複数の画像のレイアウトを決定するレイアウト決定処理について説明する。
【００２３】
本実施例では、複数の画像を、複数行、複数列に並べて出力するときに、その行と列の数を適切に決定するためのレイアウト決定処理を説明する。なお、本実施例においては、出力対象の複数の画像として、動画像から抽出された複数のフレームを例に説明する。しかし、これに限るものではなく、例えば静止画像として撮影された複数の画像を並べて出力する場合であってもよい。
【００２４】
上記のように、複数の画像を複数行、複数列に並べて出力する方法について、図９、図１０を用いて説明する。
【００２５】
図１０は、インデックスプリントの一例を示す図である。
図１０（ａ）〜（ｃ）にレイアウトの例を示す。図１０（ａ）は、１５枚の画像を縦３×横５枚で１枚の用紙に配置して印刷した場合の印刷例であり、１０（ｂ）は１４枚の画像を縦３×横５枚に１枚の用紙に配置して印刷した場合の印刷例である。
【００２６】
１００１は用紙を示し、また１００２は用紙１００１に配置された画像であり、１００３は、用紙１００１において画像が配置されなかった領域を示す。この１００３の領域は、本来画像が配置されるべき領域である。印刷対象の画像が所定の数に満たない場合に、１００３の領域が生じる。例えば、図１０（ｂ）の場合、１５枚の画像を配置することができるが、印刷対象の画像が１４枚だった場合には、画像が配置されない１つの領域１００３が生じる。この図１０（ａ）〜（ｃ）を比較すると、図１０（ｂ）（ｃ）に示すレイアウトよりも、画像が配置されない領域がない図１０（ａ）の方がユーザにとっては好ましいといえる。
【００２７】
しかしながら、配置対象の画像の枚数によっては、上記の図１０（ａ）のように、画像が配置されない領域がないレイアウトになるとは限らない。
【００２８】
よって、図１０（ａ）のような配置にするためには、ユーザが出力対象の画像の枚数を変更しなければならない。しかし、そのように出力対象の画像の枚数を、任意に指定できない場合もある。
【００２９】
例えば、動画において被写体の連続的な動きを見るために、動画像において等間隔にフレームを抽出する場合がある。このとき、６０秒間の動画像から、最初のフレームと最後のフレームを含む２秒間隔のフレームが３１枚抽出するとする。この３１枚のフレームを、図１０（ａ）のように配置することはできない。
【００３０】
よって、この場合、図１０（ａ）のように画像を配置するためには、抽出したフレームの削除もしくは抽出対象のフレームの追加を行わなければならない。しかしフレームを削除する場合、動画像の最初、もしくは最後のフレームを削除することが適切でない場合があり、また動画における等間隔で抽出された画像を削除すると、フレーム間の時間間隔が広がってしまうことになる。一方、フレームを追加する場合も、フレーム間の時間間隔が、本来の間隔より狭くなってしまう場合がある。
【００３１】
このように画像が配置されない領域１００３ができてしまう場合がある。この場合でも、その領域が少ない方が好ましい。一例として１４枚の画像を配置したインデックスプリントを考える。図１０（ｂ）、１０（ｃ）に示す２つの配置が余白の大きさは変わらない。またどちらの最終行に画像が配置されない領域が存在する。
【００３２】
しかし、図１０（ｃ）の配置は、最終行に示す画像の配置されてない領域が多く、一方１０（ｂ）の配置は、最終行に示す画像の配置されていない領域が少ない。この配置を見比べた場合、ユーザは最終行の画像が配置されていない領域に目がいくため、画像が配置されない領域が発生してしまう場合でも、その領域を少ない１０（ｂ）の方が好ましいといえる。そのため、画像の配置されていない領域を少なくすることが望ましい。
【００３３】
なお、図１０に示した、画像の配置されない領域の数は、配置対象の画像の数や、その画像のアスペクト比、また画像が配置される配置対象の領域のサイズに依存する。なお、画像を配置して、その画像を印刷装置に印刷用紙へ印刷させる場合、配置対象の領域のサイズは、画像が印刷される用紙サイズや、その用紙のフチ部に設ける余白の大きさによって決まる。
【００３４】
本実施例においては、配置対象の領域において画像が配置されない領域に応じて画像のレイアウトを決定する。そのため、画像を印刷させる場合には、配置対象の画像の数、画像のアスペクト比に加え、画像が印刷される用紙サイズによって、画像のレイアウトが決定される。なお、上記の用紙サイズは、ユーザが指定することができるため、ユーザによる用紙サイズの指定に応じて、画像のレイアウトが決定される。さらに、後述する実施例２では、用紙における余白の大きさをユーザが指定することができるため、この場合、用紙サイズに加えて余白の大きさによっても配置対象の領域の大きさが変わる。よって、後述の実施例２では、余白の大きさに応じて、画像のレイアウトが決定される。実施例２の詳細については後述する。
【００３５】
例えば、ユーザが、インデックスプリント時に、様々なアスペクト比の用紙サイズを指定できる場合には、用紙サイズによって、上記の領域の数が異なる。また画像のアスペクト比によっても、画像が配置されない領域の数が異なってくる。例えば、動画像のフレームのアスペクト比が、４：３である場合と、ハイビジョン画角とよばれる１６：９である場合がある。さらに、ユーザが画像における任意の領域をトリミングする場合には、様々なアスペクト比を有する画像が生成されることになる。すると、配置対象の画像がどのようなアスペクト比であるかによって、画像が配置されない領域の数が異なってくる。
【００３６】
従って本実施例では、画像の数や、画像のアスペクト比、画像が配置される配置対象の領域のサイズ、出力対象の領域における画像が配置されない領域を判断する。そして、その領域が少なくなるように画像のレイアウト方法を決定する。
【００３７】
図９は、本実施例におけるレイアウト決定方法を説明するための図である。
９０１がインデックスプリントで印刷される用紙の領域である。Ａ４やＬｅｔｔｅｒやＬ版等の用紙サイズがユーザによって選択される。９０２は、配置対象の画像を配置させるための配置領域である。本実施例ではＮ枚の画像を、縦ｍ枚×横ｎ枚に配置する一般的なレイアウトプリントを想定する。このとき、画像のサイズに制限がない場合、ユーザの視認性を考慮すれば、画像サイズが最も大きくなる配置が好ましいと考える。そこで、ユーザが選択した画像の枚数Ｎ及び画像のアスペクト比に応じて、本実施例では動的に最適な縦ｍ枚×横ｎ枚を算出する。ｍ×ｎ＝Ｎが成立しない場合、９０３に示す画像が配置されない領域が発生する。本実施例では、この領域に着目し、画像の配置を決定する。
【００３８】
図９の９０４は余白である。９０１から９０２を引いた領域であり、９０４には９０３の領域も含まれる。本実施例は、９０３の領域が小さくなるように配置を決定する。９０５は配置された画像に外接する四角形である。９０３の領域の大きさを判断するための方法として、本実施例では、９０５の四角形の周囲の長さに着目することで判断する。
【００３９】
本実施例における画像のレイアウトの決定処理を、図２のフローチャートを用いて詳細に説明する。
【００４０】
なお、このフローチャートの処理に対応するプログラムがＲＯＭ１０３に格納されている。そして、ＣＰＵ１０１がＲＡＭ１０４をワークメモリとして、ＲＯＭ１０３に格納されているプログラムを実行することにより、図２に示すフローチャートの各処理を実行することができる。
【００４１】
まず、ステップＳ２０１で、ユーザが入力装置１０９を用いて入力した指示に応じて、配置対象（印刷対象）の画像を選択する。このとき、配置対象の画像の枚数を決定する。次にステップＳ２０２では、ユーザによる指示に応じて、印刷する用紙サイズを選択する。ステップＳ２０３では、画像を配置するときのレイアウトの複数の候補を生成する。ステップＳ２０４では、ステップＳ２０３で生成した複数の配置候補のうち、配置対象の画像のサイズが最大となる配置を決定する。ステップＳ２０５では、Ｓ２０４で決定した配置候補が複数ある場合、画像が配置されていない領域が少なくなる配置を決定する。ステップＳ２０６で決定した配置に従って配置された複数の画像を、印刷装置にインデックスプリントさせる。
【００４２】
この図２に示す各ステップの処理について詳細を述べていく。Ｓ２０１では、印刷対象の複数の画像を取得する。このとき、２次記憶装置１０５やＩ／Ｏに接続されているメモリに記憶されている画像から、ユーザが印刷対象の画像を選択し、その画像を上記のメモリから取得する。なお、配置対象の複数の画像は例えばデジタルカメラで撮影された複数の静止画像でもよいし、動画像から抽出した複数のフレームやデジタルカメラで連写撮影することで撮影された画像等も想定される。動画像からフレームを切り出す場合、ユーザが任意の枚数を１枚１枚切出しても良いし、動画像中からｎ枚を等間隔に切り出しても良いし、ｎ秒間隔に切出しても良い。選択と合わせてすべての画像に対してユーザが任意のアスペクト比にトリミングしてもよい。その場合通常撮影される４：３／３：２／１６：９のアスペクト比以外にも、任意のアスペクト比の画像を配置する必要がある。
【００４３】
次にＳ２０２では用紙サイズの選択を行い、選択された用紙サイズにより、配置対象の画像を配置するための配置領域のサイズが決定する。また、ユーザは、用紙サイズだけでなく、画像を配置する順番も指定することが可能である。また、画像の配置方法も指定することが可能である。例えば、左上から右下に向けて横に順番に並べていく配置方法や、右上から左下に向けて縦に順番に並べていく配置方法などが考えられる。Ａ４横を選択した場合、２９７ｍｍ×２１０ｍｍ（１１．６９×８．２７インチ）となる。画像を配置するための配置領域を用紙の全体として、３００ｄｐｉで画像を印刷すると、図９の９０２で示した配置対象の領域の大きさは、３３０２×２４００ピクセルとなる。
【００４４】
Ｓ２０３では、画像を配置するときのレイアウトの、複数の候補を生成する。このときの画像の配置方法はどのような方法でも構わない。ここでは、左上から右下にむけて横方向に順番に並べていく配置方法を例に説明する。
【００４５】
一例として、図３に、配置対象の画像を配置するときのレイアウトの、複数の候補を示す。ここでは、配置対象画像が２９枚で縦横比が１：１の画像を配置するものとする。そして、列数を１から２９まで増やしていくこととする。
【００４６】
列数が１の場合、縦２９×横１に画像を並べることになる。列数が２の場合縦１５×横２、列数が３の場合縦１０×横３、列数が４の場合縦８×横４、列数が５の場合縦６×横５、列数が６の場合縦５×横６、列数が７の場合縦５×横７、列数が８の場合縦４×横８、最後に、列数が２９の場合縦１×横２９となる。
【００４７】
このとき２９枚の画像が用紙サイズに入るように、画像サイズの調整を行う。列数が１の場合、縦２９×横１に画像を並べるためは、縦方向が用紙サイズに対して制限される。２４００ピクセルに２９枚画像をならべることになるので、画像の縦のピクセル数は２４００／２９となる。縦横比が１：１であるので、画像の横のピクセル数も同様に２４００／２９となる。
【００４８】
同様に列数が２の場合、縦１５×横２に画像を並べるため、画像のピクセル数は２４００／１５となる。列数が３の場合、縦１０×横３に画像を並べるため、画像のピクセル数は２４００／１０となる。列数が４の場合、縦８×横４に画像を並べるため、画像のピクセル数は２４００／８となる、列数が５の場合、縦６×横５に画像を並べるため、画像のピクセル数は２４００／６となる。列数が６の場合、縦５×横６に画像を並べるため、画像のピクセル数は２４００／５となる。列数が７の場合、縦５×横７に画像を並べるため、画像のピクセル数は２４００／５となる。列数が８の場合、縦方向ではなく横方向が用紙サイズに対して制限される。よって縦４×横８に画像を並べるため、画像のピクセル数は３３０２／８となる。同様に繰り返していき、最後に列が２９の場合、画像のピクセル数は、３３０２／２９となる。
【００４９】
このように、画像の縦横数のそれぞれにおいて、画像が一番大きく配置できるようなレイアウトを、配置候補として生成する。上記手順に従って配置した結果が図３である。また、図４は、縦横の画像数と、画像サイズの関係を示す図であり、上記のように配置対象の画像を配置するときの列数を動的に変更したときの、各画像のサイズを示す。
【００５０】
なお、ここでは画像を用紙に最大に収まるように拡大縮小を行ったが、拡大縮小を行わないことも考えられる。同じ縦横比が１：１の画像で画像サイズが４００×４００ピクセルの場合を考える。同様に列を増やしていき、用紙に収まらないものは除外する方法も考えられる。
【００５１】
Ｓ２０４では、列数が１から２９までのケースのうち、配置対象の画像を最も大きく配置することができるレイアウトを特定する。なお、配置対象の画像を最も大きく配置できるレイアウトが、最も余白が小さなレイアウトとなる。図４に示すように、列数が６で縦５×横６の場合、画像の縦横のピクセル数は４８０ピクセルで面積は４８０×４８０＝２３０４００となる。列数が７で縦５×横７の場合、画像の縦横のピクセル数は４８０ピクセルで面積は２３０４００となり、同じ画像サイズで最大となる。また画像の拡大縮小を行わない場合はこのステップは不要となる。
【００５２】
Ｓ２０５で、Ｓ２０３で条件を満たす配置が複数あった場合には、さらなる条件判定を行う。上述したように、画像を縦ｍ×横ｎ枚に配置した際に、画像が配置されない領域９０３が少ないほうが望ましい。列数が６で縦５×横６の場合は画像は図３（ｆ）、列数が７で縦５×横７の場合は図３（ｇ）に示している。このとき画像が配置されない領域が少ない方が望ましいため、列数が６で縦５×横６のレイアウトを選択したい。
【００５３】
そこで画像が配置されない領域９０３の数を数える。列数が６で縦５×横６の場合は領域は１つ、列数が７で縦５×横７の場合は、５つとなる。このように複数の配置候補における画像が配置されない領域の数を比較し、画像が配置されない領域９０３が最も少ない配置を決定する。
【００５４】
なお、画像が配置されない領域の別の判断方法として、横方向に順番に並べていく配置の場合、画像が配置されない領域の数が行数以上の場合は、より最適な配置があるとして候補の配置から削除できる。Ｎ枚の画像を縦ｍ×横ｎ枚配置する場合、ｍ×ｎ―Ｎ＞＝ｍが成り立つ場合候補から削除できる。
【００５５】
本実施例において、画像が配置されない領域の数を判断する方法として、配置された画像に外接する四角形９０５の、周囲の長さに基づき、上記の判断を行う。画像の大きさが同一の場合、その４角形の周囲の長さが最も小さくなるような画像配置とすることで、画像が配置されない領域９０３を最小にすることができる。
【００５６】
上記の四角形の周囲の長さを求める方法は次のとおりである。列数が６の場合、縦方向に画像が５個、横方向に画像が６個ずつ並んでおり、配置対象の画像のサイズは、４８０ピクセル×４８０ピクセルである。すると四角形の左右の２辺を考慮して、縦方向の周囲が５×２×４８０＝４８００ピクセルとなる。一方横方向の周囲は、６×２×４８０＝５７６０ピクセルである。そして、上記の計算結果を合計すると、四角形の周囲の長さは、１０５６０ピクセルとなる。一方、列数が７の場合、縦方向に画像が５個、横方向に画像が６個ずつ並んでいる。縦５×横６の場合と同様に計算すると、四角形の左右の２辺の長さの合計が、５×２×４８０＝４８００ピクセルとなる。一方、四角形の上下の２辺の長さの合計が、７×２×４８０＝６７２０ピクセルで、四角形の周囲の長さは１１５２０ピクセルとなる。
【００５７】
そして、四角形の周囲の長さが短い方の配置候補を、画像を配置するときのレイアウトとして決定する。このように、配置対象の領域の周囲の長さを比較することで、配置を決定することができる。
【００５８】
Ｓ２０６で、Ｓ２０５で決定した縦横数に応じて画像を配置しレイアウトプリントする。またユーザの指定により、Ｓ２０５で決定した配置を相似形に拡大縮小してもよい。これにより、上記のように決定されたレイアウトで配置されている複数の画像を、ユーザが望む大きさに変更して、印刷させることができる。
【００５９】
以上の実施例１によれば、配置対象の画像が最大になり、且つ画像の配置されない領域が少ないレイアウトを決定することができる。そして、その決定したレイアウトに従って画像を配置して、印刷を行わせることができる。
【００６０】
（実施例２）
実施例１では画像間に余白は持たせず画像を詰めてレイアウトする方法について説明した。実施例２では画像間に余白を持たせてレイアウトする方法について説明する。
【００６１】
本実施例における画像のレイアウトの決定処理を、図５のフローチャートを用いて詳細に説明する。
【００６２】
なお、このフローチャートの処理に対応するプログラムがＲＯＭ１０３に格納されている。そして、ＣＰＵ１０１がＲＡＭ１０４をワークメモリとして、ＲＯＭ１０３に格納されているプログラムを実行することにより、図５に示すフローチャートの各処理を実行することができる。
【００６３】
図５におけるステップＳ２０１〜Ｓ２０６の処理は、図２の場合の処理と同様であり、図２に対してＳ５０１が追加されている。
詳細を述べていく。Ｓ２０１では複数の画像を取得する。実施例１と同様である。
【００６４】
次にＳ２０２では用紙の選択を行う。選択された用紙により画像の配置サイズが決定する。実施例１では用紙サイズいっぱいに画像を配置する方法について述べたが、必ずしも用紙サイズいっぱいに配置する必要はない。そこで、用紙サイズのフチ部に余白を設ける。用紙サイズに対して配置する領域を別途指定することも可能である。ここではＡ４縦（２９７ｍｍ×２１０ｍｍ、３３０２×２４００ピクセル）に対して、画像を配置するための配置対象の領域を３０００×２１００ピクセルとして一回り小さく配置することとする。そして、配置対象の領域の外側が余白となる。また画像を配置する順番は右上から左下に向けて縦に配置していくこととする。
【００６５】
なお、上記の余白の大きさは、用紙サイズに対して予め決められていてもよいが、ユーザが指定したものであってもよい。即ち、配置対象の領域の大きさを、ユーザが指定できるものであってもよい。
【００６６】
Ｓ５０１では配置対象の画像間の余白を設定する。画像間の余白の設定は、用紙や画像に対する割合であっても良いし、ピクセル数でも構わない。ここではピクセル数とし１０ピクセルとする。この画像間の余白の大きさは、用紙サイズや、用紙のフチ部の余白に応じて決定してもよいし、ユーザが余白の大きさを指示してもよい。
【００６７】
Ｓ２０３では画像を配置するときのレイアウトの、複数の候補を生成する。ここでは、右上から左下にむけて縦に順番に並べていく配置に対する生成方法の１つを説明する。一例として、図７に、配置対象の画像を配置するときのレイアウトの、複数の候補を示す。図７の場合、配置対象の画像が１４枚で、各画像の縦横比が２：３であるとする。
【００６８】
実施例１では列数を増やしていったが、ここでは行数を１から１４まで増やしていくこととする。行数が１の場合、縦１×横１４に画像を並べることになる。行数が２の場合縦２×横７、実施例１と同様に、行数数が３の場合縦３×横５、行数の４の場合縦４×横４、行数５の場合、縦５×横３、行数６の場合縦６×横３、行数７の場合縦７×横２、・・行数１４の場合縦１４×横１となる。
【００６９】
このとき、配置対象の複数の画像が用紙サイズに入るように、画像サイズの調整を行う。行数が１の場合、縦１×横１４に画像を並べるためは、横方向が用紙サイズに対して制限される。画像間の余白が１０ピクセルであり、２１００ピクセルに１４枚画像＋１３個の余白をならべることになるので、画像の横のピクセル数は（２１００―１０×１３）／１４となる。縦横比が２：３であるので、縦のピクセル数は（２１００―１０×１３）／１４＊２／３となる。各列数の場合について、同様に計算していく。この計算で得られた縦横の画像数および画像サイズの関係を図６に示す。
【００７０】
Ｓ２０４で画像の縦横数のそれぞれにおいて、画像が一番大きく配置できるように、画像の配置の複数の候補を特定する。即ち、行数が１から１４まで変更させた場合に、画像が一番大きく配置できる配置を探す。図６に示すように、行数が５であり縦５×横３に画像を配置する場合、また列数が６であり縦６×横３に画像を配置する場合に、画像サイズが最大となる。
【００７１】
Ｓ２０５で、Ｓ２０４で条件を満たす配置が複数あった場合には、さらなる条件判定を行う。行数が５で縦５×横３の場合を図７（ａ）、行数が６で縦６×横３の場合を図７（ｂ）となる。実施例１と同様に、画像が配置されない領域の数を比較することで、行数が５で縦５×横３の場合を配置と決定する。実施例１と同様、もうひとつの判断方法として、縦方向に順番に並べていく配置の場合、画像が配置されない領域の数が行数以上の場合は、より最適な配置があるとして候補の配置から削除できる。
【００７２】
画像が配置されない領域を、複数の配置の候補において比較する方法として、実施例１と同様に、配置対象の複数の画像に外接する四角形の、周囲の長さを用いる。ただし今回は、画像間に余白を設けたため、この画像間の余白も含む四角形を考える。行数が５の場合、縦方向に画像が５個、横方向に画像が３個ずつ並んでいるため、画像間の余白も考慮して、四角形の左右の２辺の長さの合計が、（５×４６２＋４×１０）×２＝４７００ピクセルとなる。一方、四角形の上下の２辺の長さの合計が、（３×６９３＋２×１０）×２＝４１９８ピクセルで、四角形の周囲の長さは８８９８ピクセルとなる。一方、行数が６の場合、縦方向に画像が６個、横方向に画像が３個ずつ並んでいるため、四角形の左右の２辺の長さの合計が（６×４６２＋４×１０）×２＝５６２４ピクセルとなる。一方四角形の上下の２辺の長さの合計は、（３×６９３＋２×１０）×２＝４１９８ピクセルで、合計の周囲は９８２２ピクセルとなる。そして、四角形の周囲の長さが短い方が、画像が配置されない領域の数が少ないため、行数が５であるレイアウトを選択する。
【００７３】
Ｓ２０６では、Ｓ２０５で決定した縦横数に応じて画像を配置して、インデックスプリントを行わせる。
【００７４】
以上の実施例２によれば、画像の配置対象の領域の外側や、画像の間に余白がある場合であっても、配置対象の画像が最大になり、且つ画像の配置されない領域が少ないレイアウトを決定することができる。そして、その決定したレイアウトに従って画像を配置して、印刷を行わせることができる。
【００７５】
（実施例３）
実施例１、２ではユーザが指定した枚数の画像を配置するので、枚数によっては縦ｍ×横ｎ枚に配置した際に、画像が配置されない領域９０３が発生してしまう場合がある。ただ、図１０（ａ）に示したような、画像が配置されない領域がないレイアウトが望ましい場合もある。そこで本実施例ではユーザにより指定された画像に対して、配置対象の画像の追加、または削除を行うことにより、画像が配置されない領域がなくなるようにする方法について図８のフローチャートを用いて詳細に説明する。
【００７６】
なお、このフローチャートの処理に対応するプログラムがＲＯＭ１０３に格納されている。そして、ＣＰＵ１０１がＲＡＭ１０４をワークメモリとして、ＲＯＭ１０３に格納されているプログラムを実行することにより、図３に示すフローチャートの各処理を実行することができる。図８におけるステップＳ２０１〜Ｓ２０６の処理は、図２の場合の処理と同様であり、図２に対してＳ５０１〜Ｓ５０３が追加されている。
【００７７】
Ｓ５０１では、画像が配置した際に、画像が配置されない領域がないようにするために最適な枚数を計算する。Ｓ５０２で最適な配置を行うのに、画像を何枚追加または削除させればよいかをユーザに提示する。
【００７８】
Ｓ５０３において、配置対象の画像の枚数を変更することを、ユーザが指示したと判断した場合には、Ｓ２０１に戻り、ユーザの指示に基づき、配置対象の画像の枚数を増減する。一方、Ｓ５０３において、配置対象の画像の枚数を変更するためのユーザの指示がないと判断した場合は、ステップＳ２０６において、Ｓ２０５で決定した配置に従って、画像を配置し、印刷装置にインデックスプリントを実行させる。
【００７９】
上記のＳ５０１、Ｓ５０２における処理について詳細に説明する。
Ｓ５０１では、ユーザが選択したＮ枚の画像を、縦ｍ×横ｎ枚に横方向に順に配置するレイアウト方法が決定したとする。まずｍ×ｎ−Ｎを計算し画像が配置されない領域があるか判断する。横に画像を並べていく場合、画像が配置されない領域をなくすには、その領域に画像を追加するか、最終行に配置されている画像を削除するかである。
【００８０】
このときに、画像を追加するか、削除するかについては、ユーザが選択してもよいし、または、追加対象の画像の数と、削除対象の画像の数を比較することで、自動で選択するようにしてもよい。
【００８１】
画像が配置されない領域に画像を追加する場合における、追加される画像の数は、ｍ×ｎ−Ｎで計算することができる。最終行に配置されている画像を削除する場合の、削除対象の画像の数は、Ｎ−（ｍ−１）×ｎで計算できる。そして、追加対象の画像の数と、削除対象の画像の数を比較して、画像の数が少ない方の方法で、画像が配置されない領域を無くす。
【００８２】
Ｓ５０２において、ｍ×ｎ−Ｎが小さい場合、ユーザにｍ×ｎ−Ｎ枚増加させる必要があることをユーザに通知する。Ｎ−（ｍ−１）×ｎが小さい場合に、Ｎ−（ｍ−１）×ｎ枚削除させる必要があることをユーザに通知する。
【００８３】
以上の実施例３によれば、ユーザにより指定された配置対象の画像を配置したときに、画像が配置されない領域がある場合であっても、画像の追加または削除を行うことで、上記の領域をなくすことができる。
【００８４】
以上の実施例によれば、画像を配置するための配置対象の領域に、複数の画像を並べて配置するときに、画像の数や、画像のアスペクト比、画像が配置される配置対象の領域のサイズに応じて、画像が配置されない領域の数を判断する。そして、その領域が少なくなるように、画像の配置を決定することができる。
【００８５】
さらに、画像の配置を決定するときには、画像のサイズが最大になる配置方法において、上記のように、画像が配置されない領域を少なくする。よって、複数の画像が出力されたときのユーザの画像に対する視認性を確保した上で、適切なレイアウト方法を選択することができる。
【００８６】
なお、以上の実施例では、配置対象の画像を配置して、印刷装置にその画像を印刷させる例を示した。しかし、画像の出力方法はこれに限らず、配置対象の画像を配置して、表示制御部１０６により、表示装置１０７に画像を表示させる場合であってもよい。このとき、画像の配置対象の領域は、表示装置１０７の表示画面における領域となる。
【００８７】
また、以上の実施例では、配置対象の領域において、画像が配置されない領域が少ないレイアウトが好ましいものとしてレイアウトを決定していた。しかし本発明はこれに限らず、上記の画像が配置されない領域を多く設けるように、レイアウトを決定してもよい。これにより、例えばインデックスプリントを行ったときに、用紙において画像が配置されない領域を、ユーザがその用紙に記入するための領域として設けることができる。
【００８８】
このように、画像が配置されない領域を多く設けるようにレイアウトを決定するか、または上述の実施例のように、その領域が少なくなるようにレイアウトを決定するかについては、ユーザの指示に応じて選択する。
【００８９】
（他の実施形態）
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記録媒体に記憶させ、該記録媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。
【００９０】
該記録媒体は、コンピュータ読み取り可能な記録媒体である。また、前述のプログラムが記憶された記録媒体はもちろんそのプログラム自体も上述の実施形態に含まれる。かかる記録媒体としてはたとえばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ―ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。
【００９１】
また前述の記録媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、ＯＳ上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
【００９２】
また本発明は、１つのプロセッサがプログラムを実行する場合に限らず、複数のプロセッサが協働することによっても実現できるものである。
【符号の説明】
【００９３】
１０１  ＣＰＵ
１０２  ブリッジ部
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  ２次記憶装置
【図１】
0005797042.tif 000002
【図２】
0005797042.tif 000003
【図３】
0005797042.tif 000004
【図４】
0005797042.tif 000005
【図５】
0005797042.tif 000006
【図６】
0005797042.tif 000007
【図７】
0005797042.tif 000008
【図８】
0005797042.tif 000009
【図９】
0005797042.tif 000010
【図１０】
0005797042.tif 000011