(57)【特許請求の範囲】
【請求項１】
複数の画像を自動レイアウトする画像処理装置であって、
前記複数の画像を２以上の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、
前記矩形生成手段により生成された矩形のうちの複数の矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、
前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を１つの矩形内に配置した画像を生成する画像生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記矩形生成手段は、ブロック内に配置される画像のコマの数に応じた所定の配置パターンに基づいて、当該ブロックに含まれる画像のコマを配置するための矩形を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記矩形生成手段は、前記ブロックに含まれる複数の画像のアスペクト比を保持するように当該複数の画像に対応するコマのサイズを決定して、前記矩形を生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記複数のブロックのうちの基本ブロックの矩形に、他のブロックの矩形を追加しながら矩形を生成していき、複数のブロックを結合する際には、それぞれの矩形のアスペクト比を保持するように、複数の矩形のサイズを調整することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記決定手段は、前記基本ブロックを含む矩形に他の矩形を追加する際に、縦方向又は横方向に前記他の矩形を結合し、前回のブロック結合の方向とは異なる方向にブロックを結合することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記決定手段は、最後のブロックを追加する場合は、前回のブロック結合の方向とは異なる方向ではなく、用紙の方向に応じた方向に前記最後のブロックを結合することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記決定手段により決定された前記複数の画像のコマの配置を評価する評価手段を有し、
前記評価手段により所定の条件を満たしていると判定された場合は、前記画像生成手段により画像を生成し、前記評価手段により所定の条件を満たしていないと判定された場合は、前記矩形生成手段及び前記決定手段により、異なる前記複数の画像のコマの配置を再決定することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記評価手段は、前記複数の画像のコマのうちの４つのコマの角が１点に集中しているかに応じて、前記複数の画像のコマの配置を評価することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記評価手段は、前記複数の画像のコマのうちの最大サイズのコマと最小サイズのコマのサイズの差に応じて、前記複数の画像のコマの配置を評価することを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１０】
前記評価手段は、前記複数の画像のコマのうちの最小サイズのコマの大きさに応じて、前記複数の画像のコマの配置を評価することを特徴とする請求項７乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記決定手段により生成される前記複数の画像のコマが配置される矩形が、予め設定された矩形の用紙レイアウト領域に収まり、かつ前記用紙レイアウト領域を構成する２組の平行な２辺のうちの１組に、前記複数の画像のコマが配置される矩形を構成する２組の平行な２辺のうちの１組が重なるように前記矩形のサイズを調整する調整手段を有し、
前記評価手段は、前記用紙レイアウト領域において前記複数の画像のコマが配置される割合に応じて、前記複数の画像のコマの配置を評価することを特徴とする請求項７乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記決定手段により生成される前記複数の画像のコマが配置される矩形が、予め設定された矩形の用紙レイアウト領域に収まり、かつ前記用紙レイアウト領域を構成する２組の平行な２辺のうちの１組に、前記複数の画像のコマが配置される矩形を構成する２組の平行な２辺のうちの１組が重なるように前記矩形のサイズを調整する調整手段を有することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１３】
前記矩形生成手段は、前記複数の画像の回転情報に基づいて画像を回転させて、前記矩形を生成することを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記矩形生成手段は、前記回転情報として、当該画像に付随している情報、又は当該画像に対してユーザにより指定された情報を用いることを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記決定手段は、前記矩形生成手段により生成された矩形のうちの２つの矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定することを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理装置。
【請求項１６】
複数の画像を自動レイアウトする画像処理方法であって、
前記複数の画像を２以上の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成ステップと、
前記矩形生成ステップで生成された矩形のうちの複数の矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定ステップと、
前記決定ステップにおいて決定した前記複数の画像のコマの配置に基づいて、前記複数の画像を１つの矩形内に配置した画像を生成する画像生成ステップと、
を有することを特徴とする画像処理方法。
【請求項１７】
複数の画像をコンピュータに自動レイアウトさせるプログラムであって、
前記コンピュータに、
前記複数の画像を２以上の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成ステップと、
前記矩形生成ステップで生成された矩形のうちの複数の矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定ステップと、
前記決定ステップにおいて決定した前記複数の画像のコマの配置に基づいて、前記複数の画像を１つの矩形内に配置した画像を生成する画像生成ステップと、
を実行させることを特徴とするプログラム。
【請求項１８】
複数の画像をコンピュータに自動レイアウトさせるプログラムを記憶した記憶媒体であって、
前記プログラムは、前記コンピュータに、
前記複数の画像を２以上の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成ステップと、
前記矩形生成ステップで生成された矩形のうちの複数の矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定ステップと、
前記決定ステップにおいて決定した前記複数の画像のコマの配置に基づいて、前記複数の画像を１つの矩形内に配置した画像を生成する画像生成ステップと、
を実行させることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一枚の用紙への複数の画像の印刷に好適な画像処理装置及び画像処理方法等に関する。
【背景技術】
【０００２】
従来、画像処理装置により、一枚の用紙に複数の画像が印刷されることがある。但し、このような印刷では、多くの場合、各画像が互いに等しいサイズに調整された上で、予め定められた位置に配置されている。つまり、均等割付により各画像の大きさ及び位置が定められている。この場合、当該一枚の用紙に印刷された複数の画像を一つの印刷物として観察すると、当該印刷物は変化に乏しいと言われることがある。
また、複数の画像の配置の位置を中心が黄金比の整数倍で画像が重ならないように配置する技術が特許文献１に記載され、複数種類のテンプレートを重ね合わせることによって複数の画像が不規則に配置されたように見せる技術が特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−７９８１７号公報
【特許文献２】特開２００８−２８９０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、画像間に多くの空白部が生じやすく、用紙に多くの無駄な部分が生成されてしまう。また、特許文献２に記載の技術では、テンプレートのサイズに合わない画像は、強制的にその一部が削除されてしまう。
【０００５】
本発明は、複数の画像から変化に富んだ１つの画像を生成することができる画像処理装置及び画像処理方法等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、複数の画像を自動レイアウトする画像処理装置であって、前記複数の画像を２以上の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、前記矩形生成手段により生成された矩形のうちの複数の矩形を結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を１つの矩形内に配置した画像を生成する画像生成手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、無駄な余白を含むことなく複数の画像を配置した１つの画像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】印刷装置により出力された画像の例を示す図である。
【図２】印刷装置の内部構成の概要を示す図である。
【図３】印刷方法の概要を示すフローチャートである。
【図４】第１の実施形態の概要を示すフローチャートである。
【図５】コマの基準サイズの具体例を示す図である。
【図６】コマ群のサイズ及び位置を調整する方法を示す図である。
【図７−１】２個のコマを縦方向に並べてコマ群を生成する方法を示す図である。
【図７−２】２個のコマを横方向に並べてコマ群を生成する方法を示す図である。
【図８】Ｎ個のコマからコマ群を生成する方法を示すフローチャートである。
【図９】Ｎ個のコマのグループへの分割方法の例を示す図である。
【図１０−１】ブロック番号ｋの矩形の作成方法の例を示す図である。
【図１０−２】ブロック番号ｋの矩形の作成方法の他の例を示す図である。
【図１１】総コマ数Ｎが１１の場合のコマ群の生成方法を示す図である。
【図１２】第２の実施形態の概要を示すフローチャートである。
【図１３】十字チェックの内容を示す図である。
【図１４】ステップＳ１２０２の処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。先ず、各実施形態に共通の事項について説明する。図１は、実施形態に係る印刷装置（画像処理装置）により出力された画像の例を示す図である。この例では、用紙２０１の内部に、例えばユーザにより指定された矩形の用紙レイアウト領域（印刷可能領域）２０２が設定されている。また、例えばユーザにより指定された複数の画像（ここでは、１１個の画像）が隙間なく不規則（ランダム）に配置され、これらの画像群２０３の外縁も矩形となっている。なお、各画像の倍率は、ユーザにより指定された時のものから適宜調整されている。即ち、各画像のサイズが、ユーザにより指定された時のものから適宜調整されているのに対し、各画像のアスペクト比は、縮尺又は拡大に伴う計算誤差を除き、ユーザにより指定された時のものと一致している。そして、画像群２０３の外縁を構成する２組の平行な２辺のうちの１組が、用紙レイアウト領域２０２を構成する２組の平行な２辺のうちの１組に重なっている。
本発明の実施形態では、複数の画像から、図１に示すようなレイアウトの画像群２０３を一枚の用紙に生成する。
【００１０】
次に、各実施形態に係る印刷装置の内部構成の概要について説明する。図２は、印刷装置の内部構成の概要を示す図である。
この印刷装置１００では、ＣＰＵ１０１、内蔵記憶装置１０２、メモリ１０３、表示制御部１０４、操作部１０５、画像入力部１０６、画像処理部１０７、及び印刷部１０８が内部バス１１１を介して互いに接続されている。従って、ＣＰＵ１０１、内蔵記憶装置１０２、メモリ１０３、表示制御部１０４、操作部１０５、画像入力部１０６、画像処理部１０７、及び印刷部１０８は、内部バス１１１を介して互いにデータのやりとりを行うことができる。
【００１１】
内蔵記憶装置１０２には、画像データ等のデータ、及びＣＰＵ１０１が動作するための各種プログラム等が格納される。メモリ１０３としては、例えばＲＡＭが用いられる。操作部１０５は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１０１に供給する。操作部１０５としては、例えば、ユーザ操作を受け付ける入力デバイスとして、キーボード等の文字情報入力デバイス、マウス及びタッチパネル等のポインティングデバイス、操作ボタン等が用いられる。タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。ＣＰＵ１０１は、例えば、ユーザ操作に応じて操作部１０５により生成された制御信号を受け取り、この制御信号に基づいて内蔵記憶装置１０２に格納されているプログラムを読み出し、このプログラムに従い、印刷装置１００の各部を制御する。この際に、メモリ１０３がＣＰＵ１０１のワークメモリとして適宜用いられる。ユーザは、このようにして、操作部１０５に対する操作に応じた動作を印刷装置１００に行わせることができる。
表示制御部１０４は、ディスプレイ１１０に対して画像を表示させるための表示信号を出力する。例えば、表示制御部１０４に対して、ＣＰＵ１０１がプログラムに従い生成した表示制御信号が供給される。表示制御部１０４は、この表示制御信号に基づき表示信号を生成してディスプレイ１１０に対して出力する。例えば、表示制御部１０４は、ＣＰＵ１０１が生成する表示制御信号に基づき、ＧＵＩ(Graphical User Interface)を構成するＧＵＩ画面をディスプレイ１１０に対して表示させる。なお、操作部１０５としてタッチパネルが用いられている場合、操作部１０５とディスプレイ１１０とを一体的に構成することができる。例えば、タッチパネルを光の透過率がディスプレイ１１０の表示を妨げないように構成し、ディスプレイ１１０の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標と、ディスプレイ１１０上の表示座標とを対応付ける。これにより、あたかもユーザがディスプレイ１１０上に表示された画面を直接的に操作可能であるかのようなＧＵＩを構成することができる。
画像入力部１０６としては、例えば外部記憶媒体１２２との間でデータの授受を行うドライブ装置、通信インターフェイス等が用いられる。ドライブ装置は、例えば、ＣＤ、ＤＶＤ、メモリカード等の外部記憶媒体１２２が装着可能に構成されており、ＣＰＵ１０１の制御に基づき、装着された外部記憶媒体１２２からのデータの読み出し、及び外部記憶媒体１２２に対するデータの書き込みを行う。通信インターフェイスは、ＣＰＵ１０１の制御に基づき、ＬＡＮ若しくはインターネット等のネットワーク１２０に対する通信、又は携帯電話若しくはデジタルカメラ等の外部通信機器１２１に対する通信を行う。
画像処理部１０７は内蔵記憶装置１０２及び画像入力部１０６より取得した画像データに対し、所定の画像補間、拡大又は縮小等のリサイズ処理、色変換処理、印刷部１０８が処理できる形式に変換する画像変換処理等を行う。
印刷部１０８は画像処理部１０７によって処理可能な形式に変換された画像データを用紙に印刷する。
なお、操作部１０５が、印刷装置１００との間で通信可能なコンピュータ等に設けられていてもよい。また、画像データが当該コンピュータに格納されていてもよい。
【００１２】
上述のように構成された印刷装置１００を用いた印刷は、例えば図３に示すフローチャートに沿って行うことができる。図３は、印刷装置１００を用いた印刷方法の概要を示すフローチャートである。
先ず、ステップＳ１００１において、ユーザが用紙サイズを選択する。この選択は、例えば操作部１０５の操作、又は用紙の印刷装置１００への装着等によって行われる。次いで、ステップＳ１００２において、ユーザが用紙レイアウトを選択する。ここでは、本発明の実施形態の実行のためには、印刷装置１００にレイアウトを委ねる用紙レイアウトを選択する。ＣＰＵ１０１は、この選択に基づいて印刷可能領域（用紙レイアウト領域）を設定する。ユーザは、例えば、「自動レイアウト」という名称の用紙レイアウト、又はこれに準ずる名称の用紙レイアウトを選択すればよい。その後、ユーザは、ステップＳ１００３において、内蔵記憶装置１０２又は画像入力部１０６に保存されている画像の中から、印刷を所望する複数（Ｎ個：Ｎは自然数）の画像を選択する。この選択は、例えば操作部１０５の操作によって行われる。このとき、ユーザが、画像毎に印刷を所望する範囲を指定するトリミング設定を併せて行ってもよく、また、印刷の上方向を指定する回転設定等を行ってもよい。続いて、ステップＳ１００４において、ユーザは操作部１０５の操作によって印刷装置１００に印刷の実行を指示する。
次いで、ステップＳ１００５において、印刷装置１００が印刷処理を開始する。その後、ステップＳ１００６において、ＣＰＵ１０１は、ユーザによって選択された複数の画像に対するコマ配置の計算を行う。ここで、コマ配置とは、各画像の用紙内での位置及びサイズを意味する。このコマ配置の内容の詳細については後述する。ステップＳ１００６で算出されるコマ配置に関するデータは遂次、メモリ１０３に記憶されていく。続いて、ステップＳ１００７において、ＣＰＵ１０１は、ユーザによって選択された複数の画像を内蔵記憶装置１０２から読み出し、これらとステップＳ１００６で算出し、メモリ１０３に記憶されているコマ配置に関するデータを画像処理部１０７に受け渡し、画像処理部１０７に印刷データを生成させる。そして、ステップＳ１００８において、ＣＰＵ１０１は、ステップＳ１００７で生成された印刷データの用紙への印刷を印刷部１０８に実行させる。
【００１３】
（第１の実施形態）
次に、第１の実施形態におけるステップＳ１００６の処理（コマ配置の計算）の概要について説明する。図４は、第１の実施形態におけるステップＳ１００６の処理の概要を示すフローチャートである。
ステップＳ１００６では、先ず、ステップＳ２００１において、ＣＰＵ１０１は、ユーザにより選択された複数の画像を内蔵記憶装置１０２又は画像入力部１０６から検索し、画像毎にコマの基準サイズを取得する。ここで、コマの基準サイズとは、コマの幅及び高さの初期値であり、各々のコマに対応する画像の頭方向を揃えたときの幅及び高さである。
ここで、図５を参照しながら、コマの基準サイズの具体例について説明する。図５（ａ）は、回転情報が０度であり、かつステップＳ１００３においてユーザによるトリミング設定がなされていな場合の例を示している。図５（ｂ）は、回転情報が９０度であり、かつステップＳ１００３においてユーザによるトリミング設定がなされていない場合の例を示している。図５（ｃ）は、回転情報が０度であり、かつステップＳ１００３においてユーザによるトリミング設定がなされている場合の例を示している。なお、回転情報としては、例えば画像に付随している回転情報、又はステップＳ１００３においてユーザにより指定された回転情報のうちで最新のものが用いられる。
ステップＳ２００１の後、ＣＰＵ１０１は、ステップＳ２００２において、コマの順序を不規則に入れ替える。つまり、コマの順序をシャッフルする。これにより、ユーザは同じ設定で同じ画像を選択して印刷しても毎回違った印刷物を得ることができる。
次いで、ＣＰＵ１０１は、ステップＳ２００３において、ユーザにより選択された複数（Ｎ個）の画像に対し、これらのコマを適宜縦横同率で変倍して、Ｎ個のコマからなり外縁が矩形のコマ群を生成する。このとき、隣り合うコマの間に隙間が生じないようにコマ群を生成する。この処理の内容の詳細については後述する。
【００１４】
その後、ＣＰＵ１０１は、ステップＳ２００４において、ステップＳ１００２において選択された用紙レイアウトを参照して、コマ群及びこれを構成するＮ個のコマのサイズ及び位置を調整する。図６は、コマ群のサイズ及び位置を調整する方法を示す図である。ここでは、印刷可能領域（用紙レイアウト領域３０２）の左上の頂点を原点とし、右方向をｘ方向、下方向をｙ方向とする。また、サイズ及び位置の調整前では、コマ群の左上の頂点が原点に位置しているとする。
図６（ａ）に示すように、「“コマ群３０１の幅”÷“コマ群３０１の高さ”≦“用紙レイアウト領域３０２の幅”÷“用紙レイアウト領域３０２の高さ”」が成り立つ場合、ＣＰＵ１０１は、先ず、コマ群３０１の幅及び高さを「“用紙レイアウト領域３０２の高さ”÷“コマ群３０１の高さ”」倍（リサイズ）する。この結果、コマ群３０１の高さが用紙レイアウト領域３０２の高さと一致する。次いで、ＣＰＵ１０１は、コマ群３０１をｘ方向に「（“用紙レイアウト領域３０２の幅”−“リサイズ後のコマ群３０１の幅”）÷２」移動させる。この結果、コマ群３０１が用紙レイアウト領域３０２の中心に配置される。
一方、図６（ｂ）に示すように、「“コマ群３０１の幅”÷“コマ群３０１の高さ”＞“用紙レイアウト領域３０２の幅”÷“用紙レイアウト領域３０２の高さ”」成り立つ場合、ＣＰＵ１０１は、先ず、コマ群３０１の幅及び高さを「“用紙レイアウト領域３０２の幅”÷“コマ群３０１の幅”」倍（リサイズ）する。この結果、コマ群３０１の幅が用紙レイアウト領域３０２の幅と一致する。次いで、ＣＰＵ１０１は、コマ群３０１をｙ方向に「（“用紙レイアウト領域３０２の高さ”−“リサイズ後のコマ群３０１の高さ”）÷２」移動させる。この結果、コマ群３０１が用紙レイアウト領域３０２の中心に配置される。つまり、コマ群３０１が、用紙レイアウト領域３０２に収まり、かつ用紙レイアウト領域３０２を構成する２組の平行な２辺のうちの１組に、コマ群３０１を構成する２組の平行な２辺のうちの１組が重ならせるようにコマ群３０１のサイズ及び位置が調整される。
図６には、コマ群のサイズ及び位置を調整する方法を示しているが、ＣＰＵ１０１は、このコマ群の調整に付随して、これを構成するＮ個の画像にも同様のサイズ及び位置の調整を行う。
このような処理の結果、画像生成手段としてのＣＰＵ１０１により用紙レイアウト領域（印刷可能領域）３０２内の左右の余白部分又は上下の余白部分以外に隙間が生じることなく、ユーザにより選択されたＮ個の画像が１つの矩形内に配置されることになる。また、完全に隙間を発生させないことも可能であるが、画像の区切りを明確にするため、決まった幅の線や余白を付加してもよい。どちらにしても、無駄な余白領域を発生させることなく、Ｎ個の画像を配置した１つの画像を生成することができる。
【００１５】
次に、ステップＳ２００３の処理（コマ群の生成）について説明する。この説明では、先ず、２個のコマからコマ群を生成する方法について説明し、その後に、３個以上のコマからコマ群を生成する方法について説明する。
図７−１は、２個のコマを縦方向に並べてコマ群を生成する方法を示す図であり、図７−２は、２個のコマを横方向に並べてコマ群を生成する方法を示す図である。
２個のコマを縦方向に並べてコマ群を生成する場合、図７−１に示すように、ＣＰＵ１０１は、先ず、２個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、ＣＰＵ１０１は、追加矩形の幅及び高さを「“基準矩形の幅”÷“追加矩形の幅”」倍（リサイズ）する。この結果、基準矩形の幅が、リサイズ後の追加矩形の幅と一致する。その後、ＣＰＵ１０１は、追加矩形の座標を設定する。この際に、追加矩形の座標を（基準矩形のＸ座標，基準矩形のＹ座標＋基準矩形の高さ）と設定すると、基準矩形の下に追加矩形が配置される。一方、追加矩形の座標を（基準矩形のＸ座標，基準矩形のＹ座標−リサイズ後の追加矩形の高さ）と設定すると、基準矩形の上に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅と一致し、高さは基準矩形の高さ及びリサイズ後の追加矩形の高さの和と一致する。
２個のコマを横方向に並べてコマ群を生成する場合も、図７−２に示すように、ＣＰＵ１０１は、先ず、２個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、ＣＰＵ１０１は、追加矩形の幅及び高さを「“基準矩形の高さ”÷“追加矩形の高さ”」倍（リサイズ）する。この結果、基準矩形の高さが、リサイズ後の追加矩形の高さと一致する。その後、ＣＰＵ１０１は、追加矩形の座標を設定する。この際に、追加矩形の座標を（基準矩形のＸ座標＋基準矩形の幅，基準矩形のＹ座標）と設定すると、基準矩形の右に追加矩形が配置される。一方、追加矩形の座標を（基準矩形のＸ座標−リサイズした追加矩形の幅，基準矩形のＹ座標）と設定すると、基準矩形の左に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅及びリサイズ後の追加矩形の幅の和と一致し、高さは基準矩形の高さと一致する。
このようにして、縮尺又は拡大に伴う計算誤差を除き、基準矩形及び追加矩形の各アスペクト比を維持したまま、これらを結合して矩形のコマ群を生成することができる。本発明において、全くアスペクト比が同じ状態であるものだけでなく、計算誤差等により多少アスペクト比が異なっていても、アスペクト比が保持されている状態のものであるとする。
詳細は後述するが、基準矩形及び追加矩形の双方又は一方が、前もって上述の処理を経て構成されたコマ群であってもよい。この場合も、上述の処理によって得られるコマ群は、コマ間に隙間を生じさせることなく、矩形のものとなる。
【００１６】
３個以上のコマからコマ群を生成する場合には、次のような処理を行う。図８は、Ｎ個のコマからコマ群を生成する方法を示すフローチャートである。
この処理（ステップＳ２００３）では、先ず、ステップＳ３００１において、ＣＰＵ１０１は、１コマ目を最初の基準矩形として配置する。このとき、基準矩形の原点を（０，０）とし、基準矩形の幅＝１コマ目の基準サイズの幅、基準矩形の高さ＝１コマ目の基準サイズの高さとする。
次いで、ステップＳ３００２において、ＣＰＵ１０１は、分割手段として、使用済みコマ数のカウンタ値ｃ、及び次に配置するブロックのブロック番号ｋを初期化する。ここでいうブロックとは、Ｎ個のコマを１又は２以上毎の複数のグループに分割したものであり、例えば図９のような数に分けられる。図９に示す表において、例えば総コマ数（Ｎ）が１１である場合は、１１個のコマが、１個のコマからなるブロック、２個のコマからなるブロック、３個のコマからなるブロック、５個のコマからなるブロックの４つのブロックに分けられる。この夫々のブロック内に配置されるコマで基準矩形又は追加矩形を作成し、これらを結合していくことによって、Ｎ個のコマを含むコマ群を生成する。なお、ブロック１の値は必ず１であり、これは最初に配置をしたコマ１のことである。
【００１７】
ステップＳ３００２の後、ＣＰＵ１０１は、ステップＳ３００３において、使用済みコマ数のカウンタｃとＮとを比較する。そして、ｃ＝Ｎであれば、処理を終える。全てのコマの配置が終了しているからである。一方、ｃ≠Ｎであれば、ステップＳ３００４に進む。まだ配置されていないコマの配置を行うためである。
ステップＳ３００４では、ＣＰＵ１０１は、次に配置するブロックのブロック番号ｋの値によって、次のブロックの縦横の結合方向を決定する処理を切り換える。ブロック番号ｋが１の場合は、ステップＳ３００５に進む。また、ブロック番号ｋが最後のものである場合は、ステップＳ３００６に進む。また、ブロック番号ｋがその他の値である場合は、ステップＳ３００７に進む。
【００１８】
ステップＳ３００５では、ＣＰＵ１０１は、前回の処理（レイアウト計算）を行った際に縦結合を行っていた場合には、横結合を行うと決定し、前回の処理（レイアウト計算）を行った際に横結合を行っていた場合には、縦結合を行うと決定する。
ステップＳ３００６では、ＣＰＵ１０１は、基準矩形のアスペクト比（高さ÷幅）と用紙レイアウト領域のアスペクト比とを比較する。そして、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比よりも大きい場合は、縦結合を行うと決定し、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比以下の場合は、横結合を行うと決定する。
ステップＳ３００７では、ＣＰＵ１０１は、前のブロック結合が縦結合であれば、横結合を行うと決定し、前のブロック結合が横結合であれば、縦結合を行うと決定する。
このようにして、ＣＰＵ１０１は、縦横の結合方向を決定する。
【００１９】
ステップＳ３００５〜Ｓ３００７の後、ＣＰＵ１０１は、ステップＳ３００８において、結合方向をランダムに決定する。即ち、縦結合の場合は、上又は下の結合方向をランダムに決定し、横結合の場合は、右又は下の結合方向をランダムに決定する。この決定は、例えば乱数を用いて行うことができる。
次いで、ＣＰＵ１０１は、ステップＳ３００９において、ブロック番号ｋで使用するコマ数ｎを取得する。このコマ数ｎの値は、例えば図９に示す表から取得してもよく、計算によって求めてもよい。
その後、ＣＰＵ１０１は、ステップＳ３０１０において、矩形生成手段として、ｎ個のコマのすべてを結合して、追加矩形となる矩形を作成する。ブロック番号ｋの矩形の作成は、例えば図１０−１又は図１０−２のように定義できる。即ち、２個のコマによる矩形のそれぞれのコマの配置の計算は、図１０−１（ａ）に示すように、図７−１又は図７−２に示す例に基づいて行うことができる。また、３個のコマによる矩形のそれぞれのコマの配置の計算は、図１０−１（ｂ）に示すように、図７−１又は図７−２の計算を２コマで行った後に２コマで作られた矩形に対して１コマを結合することによって計算できる。同様に、４コマの配置の計算は、図１０−１（ｃ）に示すように、（３コマ＋１コマ）又は（２コマ＋２コマ）で計算できる。更に、５コマの配置の計算は、図１０−２（ｄ）に示すように、（３コマ＋２コマ）で計算でき、６コマの配置計算は、図１０−２（ｅ）に示すように、（３コマ＋３コマ）で計算できる。このようにして、全てのコマを使って矩形を作成することができる。つまり、ブロック毎に矩形が生成される。
なお、複数のパターンが存在するコマ数の場合、ＣＰＵ１０１は、当該複数の配置パターンのうちから一つの配置パターンをランダムに選択する。この選択は、例えば乱数を用いて行うことができる。
【００２０】
ステップＳ３０１０の後、ＣＰＵ１０１は、ステップＳ３０１１において、作成した矩形を追加矩形として基準矩形に結合する。この結合は、図７−１又は図７−２に示す方法で行われる。
次いで、ステップＳ３０１２において、ＣＰＵ１０１は、ステップＳ３０１１の結合で得られた矩形を新たな基準矩形とし、使用済みコマ数ｃ及び次に結合するブロック番号ｋを更新し、ステップＳ３００３の判定に戻る。
以上の処理を全てのコマに対して行うことにより、ＣＰＵ１０１は、決定手段として、基本ブロックの矩形に他のブロックの矩形を追加しながら、Ｎ個のコマが隙間なく結合された大きな矩形と同一形状のコマ群を生成させる。
【００２１】
ここで、具体的に、総コマ数Ｎが１１の場合を例示して、図８に示すフローチャートに沿ったコマ群の生成方法について更に説明する。図１１は、総コマ数Ｎが１１の場合のコマ群の生成方法を示す図である。図９に示すように、総コマ数が１１の場合、これらは、１コマ、２コマ、３コマ、５コマの４つのブロックに分けられる。
先ず、ＣＰＵ１０１は、ステップＡにおいて、座標（０，０）、幅＝コマ１の基準幅、高さ＝コマ１の基準高さ、としてコマ１の配置を行い、それを基準矩形とする。
次いで、ＣＰＵ１０１は、ステップＢにおいて、ブロック２の結合方向の決定を行う。ブロック２の縦横結合方向は前回のレイアウト計算時の縦横結合方向と逆であり、前回が横結合だったと仮定すると、今回は縦結合となる。また、ここでは、上結合又は下結合はランダムの結果により下結合になったとする。
その後、ＣＰＵ１０１は、ステップＣにおいて、ブロック２の矩形の作成を行う。ブロック２の結合方向は縦結合であるので、図１０−１（ａ）に示すように、横に二つならぶ配置となる。ブロック２の矩形は、コマ２を基準矩形、コマ３を追加矩形として、図７−２の計算を行うことにより得られる。この結果、ブロック２の矩形の幅及び高さ、並びにコマ２及びコマ３の各配置が算出される。
続いて、ＣＰＵ１０１は、ステップＤにおいて、ブロック２を追加矩形とし、コマ１からなる基準矩形に対して下結合を行う（ステップＳ３０１１）。このとき、図７−１に示す計算を行う。この結果、コマ１、コマ２、及びコマ３からなる矩形が作成され、これが新たな基準矩形として用いられる。
次いで、ＣＰＵ１０１は、ステップＥにおいて、ブロック３の結合方向の決定を行う。ブロック２の結合方向が縦方向であったため、ブロック３の結合方向は横方向となる。また、ここでは、左又は右の結合方向はランダムにより右になったとする。
その後、ＣＰＵ１０１は、ステップＦにおいて、ブロック３のコマ４、コマ５、及びコマ６の３つのコマから矩形を作成する。ここでは、３コマでの結合パターンとして、図１０−１（ｂ）に示す３コマの結合パターンの中からパターン３−２がランダムによって選択されたとする。パターン３−２では、先ず、コマ４を基準矩形、コマ５を追加矩形として下結合させる。そして、この下結合により得られた矩形を基準矩形、コマ６を追加矩形として更に下結合させる。このようにして、ブロック３の矩形が作成される。
続いて、ＣＰＵ１０１は、ステップＧにおいて、ステップＤにおいて作成した基準矩形に対しステップＦで作成したブロック３の矩形を追加矩形として右結合させ、この結果得られた矩形を新たな基準矩形とする。
次いで、ＣＰＵ１０１は、ステップＨにおいて、次のブロックが最後のブロックであるため、ステップＧで作成した矩形のアスペクト比（高さ÷幅）と用紙レイアウト領域のアスペクト比（高さ÷幅）とを比較して縦横結合方向を決定する。図１１では、点線で用紙レイアウト領域を示しているが、この用紙レイアウト領域のアスペクト比が基準矩形のアスペクト比よりも大きいため、最後のブロック４は横結合となる。ここでは、左又は右の結合方向はランダムにより左結合となったとする。
その後、ＣＰＵ１０１は、ステップＩにおいて、コマ７、コマ８、コマ９、コマ１０、及びコマ１１の５つのコマから矩形を作成する。ブロック４は横結合なので、図１０−１（ｃ）に示すパターン５−２が選択される。パターン５−２では、先ず、コマ８を基準矩形、コマ９を追加矩形として横結合させる。そして、この横結合により得られた矩形を追加矩形、コマ７を基準矩形として縦結合させる。また、コマ１０を基準矩形、コマ１１を追加矩形として横結合により矩形を作成し、この横結合により得られた矩形を追加矩形としてコマ７、コマ８、及びコマ９の矩形に縦結合させる。以上により、５コマからなる矩形が完成する。
続いて、ＣＰＵ１０１は、ステップＪにおいて、ステップＧにおいて作成した矩形を基準矩形、ステップＩにおいて作成した矩形を追加矩形として左結合させる。以上により、１１個のコマからなる矩形のコマ群の作成が完了する。なお、これらのブロック分割やｍブロックごとのコマの配置・サイズ、さらに、ブロックの結合の際のコマ配置・サイズに関する情報は遂次、メモリ１０３に記憶される。
ステップＳ２００３では、このような処理が行われる。
【００２２】
このような第１の実施形態によれば、ユーザにより選択された複数の画像が同一であっても、処理の度に各画像のレイアウト及び大きさが相違する。従って、複数の画像を一つの印刷物として観察した場合に、変化があり、楽しめる印刷物が得られることとなる。また、この印刷物には、上下又は左右の余白部以外に空白部が生じず、無駄な領域の発生を抑制することができる。また、ユーザの意思がない場合に、処理前の画像の一部を削除する必要がなく、ユーザが印刷しようとする画像の全体を印刷することができる。
このように、複数の画像が、算出手段としてのＣＰＵ１０１等により、それぞれの画像のアスペクト比を略保持したまま、当該複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。また、算出されたレイアウトが記憶手段であるメモリ１０３等に記憶される。また、第２の算出手段としてのＣＰＵ１０１等により、記憶手段に記憶されたレイアウトの矩形と、さらなる複数の画像について、それぞれのアスペクト比を略保持したままレイアウトの矩形及び複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。そして、第２の算出手段により算出されたレイアウトが、記憶制御手段としてのＣＰＵ１０１等により、記憶手段に記憶させられる。また、画像処理手段としてのＣＰＵ１０１等により、記憶手段に記憶されているレイアウトに基づいて、複数の画像がレイアウトされる。
【００２３】
（第２の実施形態）
次に、第２の実施形態における処理について説明する。第１の実施形態では、コマの配置が不規則に決定されるため、必ずしもユーザの好みと一致しないことがある。その一方で、ユーザの望む一番好ましい配置にするために、全てのケースを網羅するにはケースがあまりにも多く多大な時間がかかってしまう。そこで、第２の実施形態では、コマの配置を行った後に、その配置に対してユーザにとって望ましくないケースを一般化したいくつかのチェックを行い、その結果を数値化することによって評価を行う。図１２は、第２の実施形態におけるステップＳ１００６の処理の概要を示すフローチャートである。第２の実施形態では、前処理で選択された画像がレイアウト評価を経て、最も評価の高いレイアウトのコマ群の配置が決定される。
先ず、ＣＰＵ１０１は、第１の実施形態と同様にして、ステップＳ２００１の処理を行う。
次いで、ＣＰＵ１０１は、ステップＳ１２０１において、レイアウト（コマ群の作成）を行った回数をカウントするため、試行回数を１とする。
その後、ＣＰＵ１０１は、第１の実施形態と同様にして、ステップＳ２００２〜Ｓ２００４の処理を行う。
続いて、ＣＰＵ１０１は、ステップＳ１２０２において、ステップＳ２００３で作成した矩形のコマ群のレイアウトに対して評価を行う。この処理の内容の詳細については後述する。
次いで、ＣＰＵ１０１は、ステップＳ１２０３において、ステップＳ１２０２の評価の結果がＯＫ又はＮＧのいずれであるか否かの判断を行い、ＯＫであれば、処理を終了する。一方、ＮＧであれば、コマの配置を再決定することとしてステップＳ１２０４に進む。
ステップＳ１２０４において、ＣＰＵ１０１は、試行回数が最大試行回数まで達したかどうかを判断する。最大試行回数まで達していればステップＳ１２０５に進み、そうでなければステップＳ１２０６に進む。
ステップＳ１２０５において、ＣＰＵ１０１は、これ以上新しいレイアウトの作成は行わず、ステップＳ１２０２のレイアウト評価を行ったときの最も評価の高いレイアウトをバックアップから復元し、処理を終了する。一方、ステップＳ１２０６では、ＣＰＵ１０１は、試行回数の数を増やす。
ステップＳ１２０６の後、ＣＰＵ１０１は、ステップＳ１２０７において、次のレイアウトの生成を行うときに、ステップＳ３００４で最初のブロック番号での配置を今回のレイアウト生成とは逆の縦横方向になるように設定する。そして、ステップＳ２００２に戻り、コマ順序のシャッフルを行う。
このような処理の結果、レイアウトを生成の度に、コマ順序のシャッフル及びブロック配置の方向が入れ替えられ、コマの配置のばらつきが増加し、様々なレイアウトが生成されるようになる。
【００２４】
次に、ステップＳ１２０２の処理（レイアウト評価のためのチェック）について説明する。本実施形態では、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを行い、評価する。各チェックの内容について個別に説明する。
＜十字チェック＞
十字チェックとは、コマとコマとの接続している点が十字に近い状態になっている場合はエラーとするチェックである。つまり、４つの画像の角が１点に集中している場合である。例えば、図１３に示すように、コマ１４０１の右下のポイントとコマ１４０３の左上のポイントとが所定の距離内に含まれている場合にエラーとする。即ち、コマ１４０１の右下のポイントを中心とする半径が所定の値の円１４０２を設定し、この円１４０２内にコマ１４０３の左上のポイントが含まれている場合にエラーとする。このような十字に近い状態が多い場合、結果的に規則的に画像が並ぶことになってしまい、全体として面白みに欠けるレイアウトになる。エラー点数は１０とする。
＜画像サイズ差チェック＞
画像サイズ差チェックとは、配置されるコマの最大コマ面積と最小コマ面積とを比較し、その差が２０倍以上あった場合にエラーとするチェックである。つまり、最大サイズのコマと最小サイズのコマのサイズの差に基づくチェックである。画像差があまりに大きい場合、全体としてちぐはぐな印象を与えるレイアウトになる。エラー点数は、差が２０倍以上４０倍未満の場合に２０とし、４０倍以上の場合に４０とする。
＜最小画像サイズチェック＞
最小画像サイズチェックとは、配置される最小コマの面積が１００００以下の場合にエラーとするチェックである。画像の判別がつかないほどコマが小さくなるのを避け、また、画像の縮小に関しては制限を有するハードウェアが多く、あまりにも小さい画像への変倍が難しいためである。エラー点数は４０とする。
＜余白チェック＞
余白チェックとは、出力用紙の中でコマ配置画像の占める領域（割合）を計算し、８０％以下だった場合にはエラーとするチェックである。可能な限り出力用紙の全体に画像を印刷するためである。但し、後述するスコア計算に占有率が含まれるため、このチェック単体でのエラーはないものとする。
【００２５】
図１４は、ステップＳ１２０２の処理の詳細を示すフローチャートである。
ステップＳ１２０２では、先ず、ＣＰＵ１０１は、ステップＳ１３０１〜Ｓ１３０４において、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを、矩形のコマ群に含まれる各コマに対して行う。
次いで、ＣＰＵ１０１は、ステップＳ１３０５において、ステップＳ１３０１〜Ｓ１３０４の各チェックでエラーが発生していないかを判断する。そして、エラー（ＮＧ）が発生していない場合には、ステップＳ１３０６でコマ群のレイアウト評価をＯＫとし、ステップＳ１２０２の処理を終了する。一方、エラーが発生している場合には、ステップＳ１３０７で、スコアを計算する。ここで、スコアは、「スコア＝画像の占有率−各チェックのエラー点数の総和」と表される。最小のスコアは、画像の占有率が０、各チェックのエラー点数が最大となっている場合に得られ、この値は−９０になる。
ステップＳ１３０７の後、ＣＰＵ１０１は、ステップＳ１３０８において、ステップＳ１３０７で算出したスコアとバックアップしていたスコアとを比較する。そして、ステップＳ１３０７で算出したスコアがバックアップスコアよりも高い場合には、ステップＳ１３１０に進み、そうでない場合は、何も行わずにステップＳ１３０９に進む。何も行わずにステップＳ１３０９に進むのは、バックアップしていたコマ群のレイアウトの評価が、今回作成したコマ群のレイアウトの評価よりも高いからである。
ステップＳ１３１０では、ＣＰＵ１０１は、今回作成したレイアウトのバックアップを作成する。具体的には、ＣＰＵ１０１は、コマ群に含まれる各コマの配置情報をメモリ１０３に保存する。
次いで、ＣＰＵ１０１は、ステップＳ１３１１において、バックアップスコアを今回のスコアに更新する。この操作によって、チェックでＮＧになったケースで常に最も評価の高いコマ群のレイアウトがバックアップとして保存される。
ステップＳ１３０８又はステップＳ１３１１の後のステップＳ１３０９では、ＣＰＵ１０１は、レイアウト評価をＮＧとし、ステップＳ１２０２の処理を終了する。なお、バックアップスコアの初期値を−９０にしておけば、それよりも低いスコアが得られることはないため、一度でもチェックでＮＧが発生した場合には、バックアップスコア及びレイアウトが生成される。
【００２６】
このような第２の実施形態によれば、各チェックでエラーになった場合には、所定回数まで条件を変更してコマの配置を行い、最もスコアの高いレイアウトが採用されるため、よりユーザの好みに近いレイアウトで印刷することができる。
また、繰り返し回数に上限を設定しているため（ステップＳ１２０４）、全てのパターンを網羅した場合と比べて、ユーザを待たせる時間を減らすことができる。
なお、上述の各チェックは、選択画像数及び印刷用紙のサイズに応じて無効にしたり、エラー点数を変更したりしてもよい。例えば、十字チェックは画像枚数が増えるとそれほど目立たなくなるため、選択画像が８枚よりも多い場合には無効にしてもよい。また、用紙が大きくなると、画像サイズ差が少し大きくなっても問題がないため、２Ｌ以上の印刷レイアウトでは、エラー点数を１０ずつ減らしてもよい。このような設定を行えば、各チェックに対してより細かく精度の高い制御を行うことが可能になる。
【００２７】
本発明の各工程は、ネットワーク又は各種コンピュータ読み取り可能な記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【符号の説明】
【００２８】
１００：画像処理装置  １０１：ＣＰＵ  １０２：内蔵記憶装置  １０３：メモリ  １０４：表示制御部  １０５：操作部  １０６：画像入力部  １０７：画像処理部  １０８：印刷部  １１０：ディスプレイ  １１１：内部バス
【図１】
0005615074.tif 000002
【図２】
0005615074.tif 000003
【図３】
0005615074.tif 000004
【図４】
0005615074.tif 000005
【図５】
0005615074.tif 000006
【図６】
0005615074.tif 000007
【図７−１】
0005615074.tif 000008
【図７−２】
0005615074.tif 000009
【図８】
0005615074.tif 000010
【図９】
0005615074.tif 000011
【図１０−１】
0005615074.tif 000012
【図１０−２】
0005615074.tif 000013
【図１１】
0005615074.tif 000014
【図１２】
0005615074.tif 000015
【図１３】
0005615074.tif 000016
【図１４】
0005615074.tif 000017