画像処理装置及び画像処理方法
【課題】 複数の画像から変化に富んだ1つの画像を生成することができる画像処理装置及び画像処理方法等を提供する。
【解決手段】 複数の画像を自動レイアウトする画像処理装置には、前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、が設けられている。
【解決手段】 複数の画像を自動レイアウトする画像処理装置には、前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、が設けられている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一枚の用紙への複数の画像の印刷に好適な画像処理装置及び画像処理方法等に関する。
【背景技術】
【0002】
従来、画像処理装置により、一枚の用紙に複数の画像が印刷されることがある。但し、このような印刷では、多くの場合、各画像が互いに等しいサイズに調整された上で、予め定められた位置に配置されている。つまり、均等割付により各画像の大きさ及び位置が定められている。この場合、当該一枚の用紙に印刷された複数の画像を一つの印刷物として観察すると、当該印刷物は変化に乏しいと言われることがある。
【0003】
また、複数の画像の配置の位置を中心が黄金比の整数倍で画像が重ならないように配置する技術が特許文献1に記載され、複数種類のテンプレートを重ね合わせることによって複数の画像が不規則に配置されたように見せる技術が特許文献2に記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−79817号公報
【特許文献2】特開2008−289075号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、画像間に多くの空白部が生じやすく、用紙に多くの無駄な部分が生成されてしまう。また、特許文献2に記載の技術では、テンプレートのサイズに合わない画像は、強制的にその一部が削除されてしまう。
【0006】
本発明は、複数の画像から変化に富んだ1つの画像を生成することができる画像処理装置及び画像処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、複数の画像を自動レイアウトする画像処理装置であって、複数の画像を1又は2以上毎の複数のブロックに分割し、ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、複数のブロックからなる矩形であって、複数の画像のコマすべてが配置される矩形を生成し、複数の画像のコマの配置を決定する決定手段と、決定手段により決定された複数の画像のコマの配置に基づいて、複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、特定の画像が、大きいコマに配置されるように、決定手段を制御する制御手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、無駄な余白を含むことなく複数の画像を配置した1つの画像を生成することができる。
【図面の簡単な説明】
【0009】
【図1】印刷装置により出力された画像の例を示す図である。
【図2】印刷装置の内部構成の概要を示す図である。
【図3】印刷方法の概要を示すフローチャートである。
【図4】第1の実施形態の概要を示すフローチャートである。
【図5】コマの基準サイズの具体例を示す図である。
【図6】コマ群のサイズ及び位置を調整する方法を示す図である。
【図7】2個のコマを縦方向に並べてコマ群を生成する方法を示す図である。
【図8】N個のコマからコマ群を生成する方法を示すフローチャートである。
【図9】N個のコマのグループへの分割方法の例を示す図である。
【図10】ブロック番号kの矩形の作成方法の例を示す図である。
【図11】総コマ数Nが11の場合のコマ群の生成方法を示す図である。
【図12】第2の実施形態の概要を示すフローチャートである。
【図13】十字チェックの内容を示す図である。
【図14】ステップS1202の処理の詳細を示すフローチャートである。
【図15】第3の実施形態の概要を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。先ず、各実施形態に共通の事項について説明する。図1は、実施形態に係る印刷装置(画像処理装置)により出力された画像の例を示す図である。この例では、用紙201の内部に、例えばユーザにより指定された矩形の用紙レイアウト領域(印刷可能領域)202が設定されている。また、例えばユーザにより指定された複数の画像(ここでは、11個の画像)が隙間なく不規則(ランダム)に配置され、これらの画像群203の外縁も矩形となっている。なお、各画像の倍率は、ユーザにより指定された時のものから適宜調整されている。即ち、各画像のサイズが、ユーザにより指定された時のものから適宜調整されているのに対し、各画像のアスペクト比は、縮尺又は拡大に伴う計算誤差を除き、ユーザにより指定された時のものと一致している。そして、画像群203の外縁を構成する2組の平行な2辺のうちの1組が、用紙レイアウト領域202を構成する2組の平行な2辺のうちの1組に重なっている。
【0011】
本発明の実施形態では、複数の画像から、図1に示すようなレイアウトの画像群203を一枚の用紙に生成する。
【0012】
次に、各実施形態に係る印刷装置の内部構成の概要について説明する。図2は、印刷装置の内部構成の概要を示す図である。
【0013】
この印刷装置100では、CPU101、内蔵記憶装置102、メモリ103、表示制御部104、操作部105、画像入力部106、画像処理部107、及び印刷部108が内部バス111を介して互いに接続されている。従って、CPU101、内蔵記憶装置102、メモリ103、表示制御部104、操作部105、画像入力部106、画像処理部107、及び印刷部108は、内部バス111を介して互いにデータのやりとりを行うことができる。
【0014】
内蔵記憶装置102には、画像データ等のデータ、及びCPU101が動作するための各種プログラム等が格納される。メモリ103としては、例えばRAMが用いられる。操作部105は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、CPU101に供給する。操作部105としては、例えば、ユーザ操作を受け付ける入力デバイスとして、キーボード等の文字情報入力デバイス、マウス及びタッチパネル等のポインティングデバイス、操作ボタン等が用いられる。タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。CPU101は、例えば、ユーザ操作に応じて操作部105により生成された制御信号を受け取り、この制御信号に基づいて内蔵記憶装置102に格納されているプログラムを読み出し、このプログラムに従い、印刷装置100の各部を制御する。この際に、メモリ103がCPU101のワークメモリとして適宜用いられる。ユーザは、このようにして、操作部105に対する操作に応じた動作を印刷装置100に行わせることができる。
【0015】
表示制御部104は、ディスプレイ110に対して画像を表示させるための表示信号を出力する。例えば、表示制御部104に対して、CPU101がプログラムに従い生成した表示制御信号が供給される。表示制御部104は、この表示制御信号に基づき表示信号を生成してディスプレイ110に対して出力する。例えば、表示制御部104は、CPU101が生成する表示制御信号に基づき、GUI(Graphical User Interface)を構成するGUI画面をディスプレイ110に対して表示させる。なお、操作部105としてタッチパネルが用いられている場合、操作部105とディスプレイ110とを一体的に構成することができる。例えば、タッチパネルを光の透過率がディスプレイ110の表示を妨げないように構成し、ディスプレイ110の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標と、ディスプレイ110上の表示座標とを対応付ける。これにより、あたかもユーザがディスプレイ110上に表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。
【0016】
画像入力部106としては、例えば外部記憶媒体122との間でデータの授受を行うドライブ装置、通信インターフェイス等が用いられる。ドライブ装置は、例えば、CD、DVD、メモリカード等の外部記憶媒体122が装着可能に構成されており、CPU101の制御に基づき、装着された外部記憶媒体122からのデータの読み出し、及び外部記憶媒体122に対するデータの書き込みを行う。通信インターフェイスは、CPU101の制御に基づき、LAN若しくはインターネット等のネットワーク120に対する通信、又は携帯電話若しくはデジタルカメラ等の外部通信機器121に対する通信を行う。
【0017】
画像処理部107は内蔵記憶装置102及び画像入力部106より取得した画像データに対し、所定の画像補間、拡大又は縮小等のリサイズ処理、色変換処理、印刷部108が処理できる形式に変換する画像変換処理等を行う。
【0018】
印刷部108は画像処理部107によって処理可能な形式に変換された画像データを用紙に印刷する。
【0019】
なお、操作部105が、印刷装置100との間で通信可能なコンピュータ等に設けられていてもよい。また、画像データが当該コンピュータに格納されていてもよい。
【0020】
上述のように構成された印刷装置100を用いた印刷は、例えば図3に示すフローチャートに沿って行うことができる。図3は、印刷装置100を用いた印刷方法の概要を示すフローチャートである。
【0021】
先ず、ステップS1001において、ユーザが用紙サイズを選択する。この選択は、例えば操作部105の操作、又は用紙の印刷装置100への装着等によって行われる。次いで、ステップS1002において、ユーザが用紙レイアウトを選択する。ここでは、本発明の実施形態の実行のためには、印刷装置100にレイアウトを委ねる用紙レイアウトを選択する。CPU101は、この選択に基づいて印刷可能領域(用紙レイアウト領域)を設定する。ユーザは、例えば、「自動レイアウト」という名称の用紙レイアウト、又はこれに準ずる名称の用紙レイアウトを選択すればよい。その後、ユーザは、ステップS1003において、内蔵記憶装置102又は画像入力部106に保存されている画像の中から、印刷を所望する複数(N個:Nは自然数)の画像を選択する。この選択は、例えば操作部105の操作によって行われる。このとき、ユーザが、画像毎に印刷を所望する範囲を指定するトリミング設定を併せて行ってもよく、また、印刷の上方向を指定する回転設定等を行ってもよい。続いて、ステップS1004において、ユーザは操作部105の操作によって印刷装置100に印刷の実行を指示する。
【0022】
次いで、ステップS1005において、印刷装置100が印刷処理を開始する。その後、ステップS1006において、CPU101は、ユーザによって選択された複数の画像に対するコマ配置の計算を行う。ここで、コマ配置とは、各画像の用紙内での位置及びサイズを意味する。このコマ配置の内容の詳細については後述する。ステップS1006で算出されるコマ配置に関するデータは遂次、メモリ103に記憶されていく。続いて、ステップS1007において、CPU101は、ユーザによって選択された複数の画像を内蔵記憶装置102から読み出し、これらとステップS1006で算出し、メモリ103に記憶されているコマ配置に関するデータを画像処理部107に受け渡し、画像処理部107に印刷データを生成させる。そして、ステップS1008において、CPU101は、ステップS1007で生成された印刷データの用紙への印刷を印刷部108に実行させる。
【0023】
(第1の実施形態)
次に、第1の実施形態におけるステップS1006の処理(コマ配置の計算)の概要について説明する。図4は、第1の実施形態におけるステップS1006の処理の概要を示すフローチャートである。
【0024】
ステップS1006では、先ず、ステップS2001において、CPU101は、ユーザにより選択された複数の画像を内蔵記憶装置102又は画像入力部106から検索し、画像毎にコマの基準サイズを取得する。ここで、コマの基準サイズとは、コマの幅及び高さの初期値であり、各々のコマに対応する画像の頭方向を揃えたときの幅及び高さである。
【0025】
ここで、図5を参照しながら、コマの基準サイズの具体例について説明する。図5(a)は、回転情報が0度であり、かつステップS1003においてユーザによるトリミング設定がなされていな場合の例を示している。図5(b)は、回転情報が90度であり、かつステップS1003においてユーザによるトリミング設定がなされていない場合の例を示している。図5(c)は、回転情報が0度であり、かつステップS1003においてユーザによるトリミング設定がなされている場合の例を示している。なお、回転情報としては、例えば画像に付随している回転情報、又はステップS1003においてユーザにより指定された回転情報のうちで最新のものが用いられる。
【0026】
ステップS2001の後、CPU101は、ステップS2002において、コマの順序を不規則に入れ替える。つまり、コマの順序をシャッフルする。これにより、ユーザは同じ設定で同じ画像を選択して印刷しても毎回違った印刷物を得ることができる。
【0027】
次いで、CPU101は、ステップS2003において、ユーザにより選択された複数(N個)の画像に対し、これらのコマを適宜縦横同率で変倍して、N個のコマからなり外縁が矩形のコマ群を生成する。このとき、隣り合うコマの間に隙間が生じないようにコマ群を生成する。この処理の内容の詳細については後述する。
【0028】
その後、CPU101は、ステップS2004において、ステップS1002において選択された用紙レイアウトを参照して、コマ群及びこれを構成するN個のコマのサイズ及び位置を調整する。図6は、コマ群のサイズ及び位置を調整する方法を示す図である。ここでは、印刷可能領域(用紙レイアウト領域302)の左上の頂点を原点とし、右方向をx方向、下方向をy方向とする。また、サイズ及び位置の調整前では、コマ群の左上の頂点が原点に位置しているとする。
【0029】
図6(a)に示すように、「“コマ群301の幅”÷“コマ群301の高さ”≦“用紙レイアウト領域302の幅”÷“用紙レイアウト領域302の高さ”」が成り立つ場合、CPU101は、先ず、コマ群301の幅及び高さを「“用紙レイアウト領域302の高さ”÷“コマ群301の高さ”」倍(リサイズ)する。この結果、コマ群301の高さが用紙レイアウト領域302の高さと一致する。次いで、CPU101は、コマ群301をx方向に「(“用紙レイアウト領域302の幅”−“リサイズ後のコマ群301の幅”)÷2」移動させる。この結果、コマ群301が用紙レイアウト領域302の中心に配置される。
【0030】
一方、図6(b)に示すように、「“コマ群301の幅”÷“コマ群301の高さ”>“用紙レイアウト領域302の幅”÷“用紙レイアウト領域302の高さ”」成り立つ場合、CPU101は、先ず、コマ群301の幅及び高さを「“用紙レイアウト領域302の幅”÷“コマ群301の幅”」倍(リサイズ)する。この結果、コマ群301の幅が用紙レイアウト領域302の幅と一致する。次いで、CPU101は、コマ群301をy方向に「(“用紙レイアウト領域302の高さ”−“リサイズ後のコマ群301の高さ”)÷2」移動させる。この結果、コマ群301が用紙レイアウト領域302の中心に配置される。つまり、コマ群301が、用紙レイアウト領域302に収まり、かつ用紙レイアウト領域302を構成する2組の平行な2辺のうちの1組に、コマ群301を構成する2組の平行な2辺のうちの1組が重ならせるようにコマ群301のサイズ及び位置が調整される。
【0031】
図6には、コマ群のサイズ及び位置を調整する方法を示しているが、CPU101は、このコマ群の調整に付随して、これを構成するN個の画像にも同様のサイズ及び位置の調整を行う。
【0032】
このような処理の結果、画像生成手段としてのCPU101により用紙レイアウト領域(印刷可能領域)302内の左右の余白部分又は上下の余白部分以外に隙間が生じることなく、ユーザにより選択されたN個の画像が1つの矩形内に配置されることになる。また、完全に隙間を発生させないことも可能であるが、画像の区切りを明確にするため、決まった幅の線や余白を付加してもよい。どちらにしても、無駄な余白領域を発生させることなく、N個の画像を配置した1つの画像を生成することができる。
【0033】
次に、ステップS2003の処理(コマ群の生成)について説明する。この説明では、先ず、2個のコマからコマ群を生成する方法について説明し、その後に、3個以上のコマからコマ群を生成する方法について説明する。
【0034】
図7(a)は、2個のコマを縦方向に並べてコマ群を生成する方法を示す図であり、図7(b)は、2個のコマを横方向に並べてコマ群を生成する方法を示す図である。
【0035】
2個のコマを縦方向に並べてコマ群を生成する場合、図7(a)に示すように、CPU101は、先ず、2個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、CPU101は、追加矩形の幅及び高さを「“基準矩形の幅”÷“追加矩形の幅”」倍(リサイズ)する。この結果、基準矩形の幅が、リサイズ後の追加矩形の幅と一致する。その後、CPU101は、追加矩形の座標を設定する。この際に、追加矩形の座標を(基準矩形のX座標,基準矩形のY座標+基準矩形の高さ)と設定すると、基準矩形の下に追加矩形が配置される。一方、追加矩形の座標を(基準矩形のX座標,基準矩形のY座標−リサイズ後の追加矩形の高さ)と設定すると、基準矩形の上に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅と一致し、高さは基準矩形の高さ及びリサイズ後の追加矩形の高さの和と一致する。2個のコマを横方向に並べてコマ群を生成する場合も、図7(b)に示すように、CPU101は、先ず、2個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、CPU101は、追加矩形の幅及び高さを「“基準矩形の高さ”÷“追加矩形の高さ”」倍(リサイズ)する。この結果、基準矩形の高さが、リサイズ後の追加矩形の高さと一致する。その後、CPU101は、追加矩形の座標を設定する。この際に、追加矩形の座標を(基準矩形のX座標+基準矩形の幅,基準矩形のY座標)と設定すると、基準矩形の右に追加矩形が配置される。一方、追加矩形の座標を(基準矩形のX座標−リサイズした追加矩形の幅,基準矩形のY座標)と設定すると、基準矩形の左に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅及びリサイズ後の追加矩形の幅の和と一致し、高さは基準矩形の高さと一致する。
【0036】
このようにして、縮尺又は拡大に伴う計算誤差を除き、基準矩形及び追加矩形の各アスペクト比を維持したまま、これらを結合して矩形のコマ群を生成することができる。本発明において、全くアスペクト比が同じ状態であるものだけでなく、計算誤差等により多少アスペクト比が異なっていても、アスペクト比が保持されている状態のものであるとする。
【0037】
詳細は後述するが、基準矩形及び追加矩形の双方又は一方が、前もって上述の処理を経て構成されたコマ群であってもよい。この場合も、上述の処理によって得られるコマ群は、コマ間に隙間を生じさせることなく、矩形のものとなる。
【0038】
3個以上のコマからコマ群を生成する場合には、次のような処理を行う。図8は、N個のコマからコマ群を生成する方法を示すフローチャートである。
【0039】
この処理(ステップS2003)では、先ず、ステップS3001において、CPU101は、1コマ目を最初の基準矩形として配置する。このとき、基準矩形の原点を(0,0)とし、基準矩形の幅=1コマ目の基準サイズの幅、基準矩形の高さ=1コマ目の基準サイズの高さとする。
【0040】
次いで、ステップS3002において、CPU101は、分割手段として、使用済みコマ数のカウンタ値c、及び次に配置するブロックのブロック番号kを初期化する。ここでいうブロックとは、N個のコマを1又は2以上毎の複数のグループに分割したものであり、例えば図9のような数に分けられる。図9に示す表において、例えば総コマ数(N)が11である場合は、11個のコマが、1個のコマからなるブロック、2個のコマからなるブロック、3個のコマからなるブロック、5個のコマからなるブロックの4つのブロックに分けられる。この夫々のブロック内に配置されるコマで基準矩形又は追加矩形を作成し、これらを結合していくことによって、N個のコマを含むコマ群を生成する。なお、ブロック1の値は必ず1であり、これは最初に配置をしたコマ1のことである。
【0041】
ステップS3002の後、CPU101は、ステップS3003において、使用済みコマ数のカウンタcとNとを比較する。そして、c=Nであれば、処理を終える。全てのコマの配置が終了しているからである。一方、c≠Nであれば、ステップS3004に進む。まだ配置されていないコマの配置を行うためである。
【0042】
ステップS3004では、CPU101は、次に配置するブロックのブロック番号kの値によって、次のブロックの縦横の結合方向を決定する処理を切り換える。ブロック番号kが1の場合は、ステップS3005に進む。また、ブロック番号kが最後のものである場合は、ステップS3006に進む。また、ブロック番号kがその他の値である場合は、ステップS3007に進む。
【0043】
ステップS3005では、CPU101は、前回の処理(レイアウト計算)を行った際に縦結合を行っていた場合には、横結合を行うと決定し、前回の処理(レイアウト計算)を行った際に横結合を行っていた場合には、縦結合を行うと決定する。
【0044】
ステップS3006では、CPU101は、基準矩形のアスペクト比(高さ÷幅)と用紙レイアウト領域のアスペクト比とを比較する。そして、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比よりも大きい場合は、縦結合を行うと決定し、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比以下の場合は、横結合を行うと決定する。
【0045】
ステップS3007では、CPU101は、前のブロック結合が縦結合であれば、横結合を行うと決定し、前のブロック結合が横結合であれば、縦結合を行うと決定する。
このようにして、CPU101は、縦横の結合方向を決定する。
【0046】
ステップS3005〜S3007の後、CPU101は、ステップS3008において、結合方向をランダムに決定する。即ち、縦結合の場合は、上又は下の結合方向をランダムに決定し、横結合の場合は、右又は下の結合方向をランダムに決定する。この決定は、例えば乱数を用いて行うことができる。
【0047】
次いで、CPU101は、ステップS3009において、ブロック番号kで使用するコマ数nを取得する。このコマ数nの値は、例えば図9に示す表から取得してもよく、計算によって求めてもよい。
【0048】
その後、CPU101は、ステップS3010において、矩形生成手段として、n個のコマのすべてを結合して、追加矩形となる矩形を作成する。ブロック番号kの矩形の作成は、例えば図10のように定義できる。即ち、2個のコマによる矩形のそれぞれのコマの配置の計算は、図10(a)に示すように、図7に示す例に基づいて行うことができる。また、3個のコマによる矩形のそれぞれのコマの配置の計算は、図10(b)に示すように、図7(a)又は図7(b)の計算を2コマで行った後に2コマで作られた矩形に対して1コマを結合することによって計算できる。同様に、4コマの配置の計算は、図10(c)に示すように、(3コマ+1コマ)又は(2コマ+2コマ)で計算できる。更に、5コマの配置の計算は、図10(d)に示すように、(3コマ+2コマ)で計算でき、6コマの配置計算は、図10(e)に示すように、(3コマ+3コマ)で計算できる。このようにして、全てのコマを使って矩形を作成することができる。つまり、ブロック毎に矩形が生成される。
【0049】
なお、複数のパターンが存在するコマ数の場合、CPU101は、当該複数の配置パターンのうちから一つの配置パターンをランダムに選択する。この選択は、例えば乱数を用いて行うことができる。
【0050】
ステップS3010の後、CPU101は、ステップS3011において、作成した矩形を追加矩形として基準矩形に結合する。この結合は、図7に示す方法で行われる。
【0051】
次いで、ステップS3012において、CPU101は、ステップS3011の結合で得られた矩形を新たな基準矩形とし、使用済みコマ数c及び次に結合するブロック番号kを更新し、ステップS3003の判定に戻る。
【0052】
以上の処理を全てのコマに対して行うことにより、CPU101は、決定手段として、基本ブロックの矩形に他のブロックの矩形を追加しながら、N個のコマが隙間なく結合された大きな矩形と同一形状のコマ群を生成させる。
【0053】
ここで、具体的に、総コマ数Nが11の場合を例示して、図8に示すフローチャートに沿ったコマ群の生成方法について更に説明する。図11は、総コマ数Nが11の場合のコマ群の生成方法を示す図である。図9に示すように、総コマ数が11の場合、これらは、1コマ、2コマ、3コマ、5コマの4つのブロックに分けられる。
【0054】
先ず、CPU101は、ステップAにおいて、座標(0,0)、幅=コマ1の基準幅、高さ=コマ1の基準高さ、としてコマ1の配置を行い、それを基準矩形とする。
【0055】
次いで、CPU101は、ステップBにおいて、ブロック2の結合方向の決定を行う。ブロック2の縦横結合方向は前回のレイアウト計算時の縦横結合方向と逆であり、前回が横結合だったと仮定すると、今回は縦結合となる。また、ここでは、上結合又は下結合はランダムの結果により下結合になったとする。
【0056】
その後、CPU101は、ステップCにおいて、ブロック2の矩形の作成を行う。ブロック2の結合方向は縦結合であるので、図10(a)に示すように、横に二つならぶ配置となる。ブロック2の矩形は、コマ2を基準矩形、コマ3を追加矩形として、図7(b)の計算を行うことにより得られる。この結果、ブロック2の矩形の幅及び高さ、並びにコマ2及びコマ3の各配置が算出される。
【0057】
続いて、CPU101は、ステップDにおいて、ブロック2を追加矩形とし、コマ1からなる基準矩形に対して下結合を行う(ステップS3011)。このとき、図7(a)に示す計算を行う。この結果、コマ1、コマ2、及びコマ3からなる矩形が作成され、これが新たな基準矩形として用いられる。
【0058】
次いで、CPU101は、ステップEにおいて、ブロック3の結合方向の決定を行う。ブロック2の結合方向が縦方向であったため、ブロック3の結合方向は横方向となる。また、ここでは、左又は右の結合方向はランダムにより右になったとする。
【0059】
その後、CPU101は、ステップFにおいて、ブロック3のコマ4、コマ5、及びコマ6の3つのコマから矩形を作成する。ここでは、3コマでの結合パターンとして、図10(b)に示す3コマの結合パターンの中からパターン3−2がランダムによって選択されたとする。パターン3−2では、先ず、コマ4を基準矩形、コマ5を追加矩形として下結合させる。そして、この下結合により得られた矩形を基準矩形、コマ6を追加矩形として更に下結合させる。このようにして、ブロック3の矩形が作成される。
【0060】
続いて、CPU101は、ステップGにおいて、ステップDにおいて作成した基準矩形に対しステップFで作成したブロック3の矩形を追加矩形として右結合させ、この結果得られた矩形を新たな基準矩形とする。
【0061】
次いで、CPU101は、ステップHにおいて、次のブロックが最後のブロックであるため、ステップGで作成した矩形のアスペクト比(高さ÷幅)と用紙レイアウト領域のアスペクト比(高さ÷幅)とを比較して縦横結合方向を決定する。図11では、点線で用紙レイアウト領域を示しているが、この用紙レイアウト領域のアスペクト比が基準矩形のアスペクト比よりも大きいため、最後のブロック4は横結合となる。ここでは、左又は右の結合方向はランダムにより左結合となったとする。
【0062】
その後、CPU101は、ステップIにおいて、コマ7、コマ8、コマ9、コマ10、及びコマ11の5つのコマから矩形を作成する。ブロック4は横結合なので、図10(e)に示すパターン5−2が選択される。パターン5−2では、先ず、コマ8を基準矩形、コマ9を追加矩形として横結合させる。そして、この横結合により得られた矩形を追加矩形、コマ7を基準矩形として縦結合させる。また、コマ10を基準矩形、コマ11を追加矩形として横結合により矩形を作成し、この横結合により得られた矩形を追加矩形としてコマ7、コマ8、及びコマ9の矩形に縦結合させる。以上により、5コマからなる矩形が完成する。
【0063】
続いて、CPU101は、ステップJにおいて、ステップGにおいて作成した矩形を基準矩形、ステップIにおいて作成した矩形を追加矩形として左結合させる。以上により、11個のコマからなる矩形のコマ群の作成が完了する。なお、これらのブロック分割やmブロックごとのコマの配置・サイズ、さらに、ブロックの結合の際のコマ配置・サイズに関する情報は遂次、メモリ103に記憶される。
ステップS2003では、このような処理が行われる。
【0064】
このような第1の実施形態によれば、ユーザにより選択された複数の画像が同一であっても、処理の度に各画像のレイアウト及び大きさが相違する。従って、複数の画像を一つの印刷物として観察した場合に、変化があり、楽しめる印刷物が得られることとなる。また、この印刷物には、上下又は左右の余白部以外に空白部が生じず、無駄な領域の発生を抑制することができる。また、ユーザの意思がない場合に、処理前の画像の一部を削除する必要がなく、ユーザが印刷しようとする画像の全体を印刷することができる。
【0065】
このように、複数の画像が、算出手段としてのCPU101等により、それぞれの画像のアスペクト比を略保持したまま、当該複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。また、算出されたレイアウトが記憶手段であるメモリ103等に記憶される。また、第2の算出手段としてのCPU101等により、記憶手段に記憶されたレイアウトの矩形と、さらなる複数の画像について、それぞれのアスペクト比を略保持したままレイアウトの矩形及び複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。そして、第2の算出手段により算出されたレイアウトが、記憶制御手段としてのCPU101等により、記憶手段に記憶させられる。また、画像処理手段としてのCPU101等により、記憶手段に記憶されているレイアウトに基づいて、複数の画像がレイアウトされる。
【0066】
(第2の実施形態)
次に、第2の実施形態における処理について説明する。第1の実施形態では、コマの配置が不規則に決定されるため、必ずしもユーザの好みと一致しないことがある。その一方で、ユーザの望む一番好ましい配置にするために、全てのケースを網羅するにはケースがあまりにも多く多大な時間がかかってしまう。そこで、第2の実施形態では、コマの配置を行った後に、その配置に対してユーザにとって望ましくないケースを一般化したいくつかのチェックを行い、その結果を数値化することによって評価を行う。図12は、第2の実施形態におけるステップS1006の処理の概要を示すフローチャートである。第2の実施形態では、前処理で選択された画像がレイアウト評価を経て、最も評価の高いレイアウトのコマ群の配置が決定される。
【0067】
先ず、CPU101は、第1の実施形態と同様にして、ステップS2001の処理を行う。
【0068】
次いで、CPU101は、ステップS1201において、レイアウト(コマ群の作成)を行った回数をカウントするため、試行回数を1とする。
その後、CPU101は、第1の実施形態と同様にして、ステップS2002〜S2004の処理を行う。
【0069】
続いて、CPU101は、ステップS1202において、ステップS2003で作成した矩形のコマ群のレイアウトに対して評価を行う。この処理の内容の詳細については後述する。
【0070】
次いで、CPU101は、ステップS1203において、ステップS1202の評価の結果がOK又はNGのいずれであるか否かの判断を行い、OKであれば、処理を終了する。一方、NGであれば、コマの配置を再決定することとしてステップS1204に進む。ステップS1204において、CPU101は、試行回数が最大試行回数まで達したかどうかを判断する。最大試行回数まで達していればステップS1205に進み、そうでなければステップS1206に進む。
【0071】
ステップS1205において、CPU101は、これ以上新しいレイアウトの作成は行わず、ステップS1202のレイアウト評価を行ったときの最も評価の高いレイアウトをバックアップから復元し、処理を終了する。一方、ステップS1206では、CPU101は、試行回数の数を増やす。
【0072】
ステップS1206の後、CPU101は、ステップS1207において、次のレイアウトの生成を行うときに、ステップS3004で最初のブロック番号での配置を今回のレイアウト生成とは逆の縦横方向になるように設定する。そして、ステップS2002に戻り、コマ順序のシャッフルを行う。
【0073】
このような処理の結果、レイアウトを生成の度に、コマ順序のシャッフル及びブロック配置の方向が入れ替えられ、コマの配置のばらつきが増加し、様々なレイアウトが生成されるようになる。
【0074】
次に、ステップS1202の処理(レイアウト評価のためのチェック)について説明する。本実施形態では、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを行い、評価する。各チェックの内容について個別に説明する。
【0075】
<十字チェック>
十字チェックとは、コマとコマとの接続している点が十字に近い状態になっている場合はエラーとするチェックである。つまり、4つの画像の角が1点に集中している場合である。例えば、図13に示すように、コマ1401の右下のポイントとコマ1403の左上のポイントとが所定の距離内に含まれている場合にエラーとする。即ち、コマ1401の右下のポイントを中心とする半径が所定の値の円1402を設定し、この円1402内にコマ1403の左上のポイントが含まれている場合にエラーとする。このような十字に近い状態が多い場合、結果的に規則的に画像が並ぶことになってしまい、全体として面白みに欠けるレイアウトになる。エラー点数は10とする。
【0076】
<画像サイズ差チェック>
画像サイズ差チェックとは、配置されるコマの最大コマ面積と最小コマ面積とを比較し、その差が20倍以上あった場合にエラーとするチェックである。つまり、最大サイズのコマと最小サイズのコマのサイズの差に基づくチェックである。画像差があまりに大きい場合、全体としてちぐはぐな印象を与えるレイアウトになる。エラー点数は、差が20倍以上40倍未満の場合に20とし、40倍以上の場合に40とする。
【0077】
<最小画像サイズチェック>
最小画像サイズチェックとは、配置される最小コマの面積が10000以下の場合にエラーとするチェックである。画像の判別がつかないほどコマが小さくなるのを避け、また、画像の縮小に関しては制限を有するハードウェアが多く、あまりにも小さい画像への変倍が難しいためである。エラー点数は40とする。
【0078】
<余白チェック>
余白チェックとは、出力用紙の中でコマ配置画像の占める領域(割合)を計算し、80%以下だった場合にはエラーとするチェックである。可能な限り出力用紙の全体に画像を印刷するためである。但し、後述するスコア計算に占有率が含まれるため、このチェック単体でのエラーはないものとする。
【0079】
図14は、ステップS1202の処理の詳細を示すフローチャートである。
ステップS1202では、先ず、CPU101は、ステップS1301〜S1304において、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを、矩形のコマ群に含まれる各コマに対して行う。
【0080】
次いで、CPU101は、ステップS1305において、ステップS1301〜S1304の各チェックでエラーが発生していないかを判断する。そして、エラー(NG)が発生していない場合には、ステップS1306でコマ群のレイアウト評価をOKとし、ステップS1202の処理を終了する。一方、エラーが発生している場合には、ステップS1307で、スコアを計算する。ここで、スコアは、「スコア=画像の占有率−各チェックのエラー点数の総和」と表される。最小のスコアは、画像の占有率が0、各チェックのエラー点数が最大となっている場合に得られ、この値は−90になる。
【0081】
ステップS1307の後、CPU101は、ステップS1308において、ステップS1307で算出したスコアとバックアップしていたスコアとを比較する。そして、ステップS1307で算出したスコアがバックアップスコアよりも高い場合には、ステップS1310に進み、そうでない場合は、何も行わずにステップS1309に進む。何も行わずにステップS1309に進むのは、バックアップしていたコマ群のレイアウトの評価が、今回作成したコマ群のレイアウトの評価よりも高いからである。
【0082】
ステップS1310では、CPU101は、今回作成したレイアウトのバックアップを作成する。具体的には、CPU101は、コマ群に含まれる各コマの配置情報をメモリ103に保存する。
【0083】
次いで、CPU101は、ステップS1311において、バックアップスコアを今回のスコアに更新する。この操作によって、チェックでNGになったケースで常に最も評価の高いコマ群のレイアウトがバックアップとして保存される。
【0084】
ステップS1308又はステップS1311の後のステップS1309では、CPU101は、レイアウト評価をNGとし、ステップS1202の処理を終了する。なお、バックアップスコアの初期値を−90にしておけば、それよりも低いスコアが得られることはないため、一度でもチェックでNGが発生した場合には、バックアップスコア及びレイアウトが生成される。
【0085】
このような第2の実施形態によれば、各チェックでエラーになった場合には、所定回数まで条件を変更してコマの配置を行い、最もスコアの高いレイアウトが採用されるため、よりユーザの好みに近いレイアウトで印刷することができる。
【0086】
また、繰り返し回数に上限を設定しているため(ステップS1204)、全てのパターンを網羅した場合と比べて、ユーザを待たせる時間を減らすことができる。
【0087】
なお、上述の各チェックは、選択画像数及び印刷用紙のサイズに応じて無効にしたり、エラー点数を変更したりしてもよい。例えば、十字チェックは画像枚数が増えるとそれほど目立たなくなるため、選択画像が8枚よりも多い場合には無効にしてもよい。また、用紙が大きくなると、画像サイズ差が少し大きくなっても問題がないため、2L以上の印刷レイアウトでは、エラー点数を10ずつ減らしてもよい。このような設定を行えば、各チェックに対してより細かく精度の高い制御を行うことが可能になる。
【0088】
(第3の実施形態)
次に、第3の実施形態における処理について説明する。第3の実施形態では、図1の主画像が大きいコマに配置されたような印刷を得ることができる。基本的な動作は第2の実施形態と同様であるため、同じ処理については説明を省略する。
【0089】
以下図15を参照して、第3の実施形態について説明する。第3の実施形態では、主画像が大きいコマに配置されるように、図12のS2003とS2004の間に、図15の処理を実行する。
【0090】
まずS1501において、S2003で生成された矩形の中で主画像に対応するコマが大きく配置されているかを判定するため、主画像が最も大きいコマに配置されているかを判定する。主画像に対応するコマが最も大きくなっていればこのままS2004に進む。そうでなければ、S1502に移行し、最も大きいコマのアスペクト比(コマに対応する画像のアスペクト比でもよい)が主画像のコマのアスペクト比(主画像のアスペクト比でもよい)と同じかどうか判定する。同じであればS1503に移行し、最も大きいコマに配置されている画像と主画像とを入れ替える。つまり、最も大きいコマに主画像を配置し、主画像が配置されていたコマに、最も大きいコマに配置されていた画像を配置する。アスペクト比が同じであるため、入れ替えても余白が発生したり画像が切れたりすることはない。S1603で同じでないと判定された場合はS2002に戻り、コマ順序をシャッフルしてから矩形生成の処理をやり直す。
【0091】
図15の処理を行うことで、主画像を最も大きいコマに配置することができる。
【0092】
また、図15では、最も大きいコマに配置されているかを判断したが、1〜3番目に大きいコマに配置されている場合は、そのままS2004に進むようにしてもよい。しかし、この場合であっても、最も大きいコマのアスペクト比と主画像のアスペクト比が同じ場合は、入れ替えを行うとよい。
【0093】
また、主画像については、ユーザが予め操作部105で選択可能なように構成してもよいし、また、画像の付加されているお気に入り情報や重要度情報から自動的に決定してもよい。
【0094】
また、本実施形態では、S2003とS2004の間に図15のような処理を行ったが、S2003の処理中に行ってもよい。例えば、それぞれのブロックを結合した後に図15のような処理を行ってもよい。ブロック結合時に行うことにより、処理をやり直す場合にはやり直しが早く決定するので、無駄な処理をしなくてよくなる。
【0095】
以上のように第3の実施形態によればユーザから指定された複数の画像を用紙レイアウトに対し上下もしくは左右の余白部分以外に隙間なく配置され更に特定の主画像が大きく配置されるようなレイアウトが作成される。
【0096】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。本発明の各処理は、ネットワーク又は各種コンピュータ読み取り可能な記憶媒体を介して取得したソフトウェア(プログラム)をパーソナルコンピュータ等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【符号の説明】
【0097】
100 画像処理装置
101 CPU
102 内蔵記憶装置
103 メモリ
104 表示制御部
105 操作部
106 画像入力部
107 画像処理部
108 印刷部
110 ディスプレイ
111 内部バス
【技術分野】
【0001】
本発明は、一枚の用紙への複数の画像の印刷に好適な画像処理装置及び画像処理方法等に関する。
【背景技術】
【0002】
従来、画像処理装置により、一枚の用紙に複数の画像が印刷されることがある。但し、このような印刷では、多くの場合、各画像が互いに等しいサイズに調整された上で、予め定められた位置に配置されている。つまり、均等割付により各画像の大きさ及び位置が定められている。この場合、当該一枚の用紙に印刷された複数の画像を一つの印刷物として観察すると、当該印刷物は変化に乏しいと言われることがある。
【0003】
また、複数の画像の配置の位置を中心が黄金比の整数倍で画像が重ならないように配置する技術が特許文献1に記載され、複数種類のテンプレートを重ね合わせることによって複数の画像が不規則に配置されたように見せる技術が特許文献2に記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−79817号公報
【特許文献2】特開2008−289075号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、画像間に多くの空白部が生じやすく、用紙に多くの無駄な部分が生成されてしまう。また、特許文献2に記載の技術では、テンプレートのサイズに合わない画像は、強制的にその一部が削除されてしまう。
【0006】
本発明は、複数の画像から変化に富んだ1つの画像を生成することができる画像処理装置及び画像処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、複数の画像を自動レイアウトする画像処理装置であって、複数の画像を1又は2以上毎の複数のブロックに分割し、ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、複数のブロックからなる矩形であって、複数の画像のコマすべてが配置される矩形を生成し、複数の画像のコマの配置を決定する決定手段と、決定手段により決定された複数の画像のコマの配置に基づいて、複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、特定の画像が、大きいコマに配置されるように、決定手段を制御する制御手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、無駄な余白を含むことなく複数の画像を配置した1つの画像を生成することができる。
【図面の簡単な説明】
【0009】
【図1】印刷装置により出力された画像の例を示す図である。
【図2】印刷装置の内部構成の概要を示す図である。
【図3】印刷方法の概要を示すフローチャートである。
【図4】第1の実施形態の概要を示すフローチャートである。
【図5】コマの基準サイズの具体例を示す図である。
【図6】コマ群のサイズ及び位置を調整する方法を示す図である。
【図7】2個のコマを縦方向に並べてコマ群を生成する方法を示す図である。
【図8】N個のコマからコマ群を生成する方法を示すフローチャートである。
【図9】N個のコマのグループへの分割方法の例を示す図である。
【図10】ブロック番号kの矩形の作成方法の例を示す図である。
【図11】総コマ数Nが11の場合のコマ群の生成方法を示す図である。
【図12】第2の実施形態の概要を示すフローチャートである。
【図13】十字チェックの内容を示す図である。
【図14】ステップS1202の処理の詳細を示すフローチャートである。
【図15】第3の実施形態の概要を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。先ず、各実施形態に共通の事項について説明する。図1は、実施形態に係る印刷装置(画像処理装置)により出力された画像の例を示す図である。この例では、用紙201の内部に、例えばユーザにより指定された矩形の用紙レイアウト領域(印刷可能領域)202が設定されている。また、例えばユーザにより指定された複数の画像(ここでは、11個の画像)が隙間なく不規則(ランダム)に配置され、これらの画像群203の外縁も矩形となっている。なお、各画像の倍率は、ユーザにより指定された時のものから適宜調整されている。即ち、各画像のサイズが、ユーザにより指定された時のものから適宜調整されているのに対し、各画像のアスペクト比は、縮尺又は拡大に伴う計算誤差を除き、ユーザにより指定された時のものと一致している。そして、画像群203の外縁を構成する2組の平行な2辺のうちの1組が、用紙レイアウト領域202を構成する2組の平行な2辺のうちの1組に重なっている。
【0011】
本発明の実施形態では、複数の画像から、図1に示すようなレイアウトの画像群203を一枚の用紙に生成する。
【0012】
次に、各実施形態に係る印刷装置の内部構成の概要について説明する。図2は、印刷装置の内部構成の概要を示す図である。
【0013】
この印刷装置100では、CPU101、内蔵記憶装置102、メモリ103、表示制御部104、操作部105、画像入力部106、画像処理部107、及び印刷部108が内部バス111を介して互いに接続されている。従って、CPU101、内蔵記憶装置102、メモリ103、表示制御部104、操作部105、画像入力部106、画像処理部107、及び印刷部108は、内部バス111を介して互いにデータのやりとりを行うことができる。
【0014】
内蔵記憶装置102には、画像データ等のデータ、及びCPU101が動作するための各種プログラム等が格納される。メモリ103としては、例えばRAMが用いられる。操作部105は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、CPU101に供給する。操作部105としては、例えば、ユーザ操作を受け付ける入力デバイスとして、キーボード等の文字情報入力デバイス、マウス及びタッチパネル等のポインティングデバイス、操作ボタン等が用いられる。タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。CPU101は、例えば、ユーザ操作に応じて操作部105により生成された制御信号を受け取り、この制御信号に基づいて内蔵記憶装置102に格納されているプログラムを読み出し、このプログラムに従い、印刷装置100の各部を制御する。この際に、メモリ103がCPU101のワークメモリとして適宜用いられる。ユーザは、このようにして、操作部105に対する操作に応じた動作を印刷装置100に行わせることができる。
【0015】
表示制御部104は、ディスプレイ110に対して画像を表示させるための表示信号を出力する。例えば、表示制御部104に対して、CPU101がプログラムに従い生成した表示制御信号が供給される。表示制御部104は、この表示制御信号に基づき表示信号を生成してディスプレイ110に対して出力する。例えば、表示制御部104は、CPU101が生成する表示制御信号に基づき、GUI(Graphical User Interface)を構成するGUI画面をディスプレイ110に対して表示させる。なお、操作部105としてタッチパネルが用いられている場合、操作部105とディスプレイ110とを一体的に構成することができる。例えば、タッチパネルを光の透過率がディスプレイ110の表示を妨げないように構成し、ディスプレイ110の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標と、ディスプレイ110上の表示座標とを対応付ける。これにより、あたかもユーザがディスプレイ110上に表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。
【0016】
画像入力部106としては、例えば外部記憶媒体122との間でデータの授受を行うドライブ装置、通信インターフェイス等が用いられる。ドライブ装置は、例えば、CD、DVD、メモリカード等の外部記憶媒体122が装着可能に構成されており、CPU101の制御に基づき、装着された外部記憶媒体122からのデータの読み出し、及び外部記憶媒体122に対するデータの書き込みを行う。通信インターフェイスは、CPU101の制御に基づき、LAN若しくはインターネット等のネットワーク120に対する通信、又は携帯電話若しくはデジタルカメラ等の外部通信機器121に対する通信を行う。
【0017】
画像処理部107は内蔵記憶装置102及び画像入力部106より取得した画像データに対し、所定の画像補間、拡大又は縮小等のリサイズ処理、色変換処理、印刷部108が処理できる形式に変換する画像変換処理等を行う。
【0018】
印刷部108は画像処理部107によって処理可能な形式に変換された画像データを用紙に印刷する。
【0019】
なお、操作部105が、印刷装置100との間で通信可能なコンピュータ等に設けられていてもよい。また、画像データが当該コンピュータに格納されていてもよい。
【0020】
上述のように構成された印刷装置100を用いた印刷は、例えば図3に示すフローチャートに沿って行うことができる。図3は、印刷装置100を用いた印刷方法の概要を示すフローチャートである。
【0021】
先ず、ステップS1001において、ユーザが用紙サイズを選択する。この選択は、例えば操作部105の操作、又は用紙の印刷装置100への装着等によって行われる。次いで、ステップS1002において、ユーザが用紙レイアウトを選択する。ここでは、本発明の実施形態の実行のためには、印刷装置100にレイアウトを委ねる用紙レイアウトを選択する。CPU101は、この選択に基づいて印刷可能領域(用紙レイアウト領域)を設定する。ユーザは、例えば、「自動レイアウト」という名称の用紙レイアウト、又はこれに準ずる名称の用紙レイアウトを選択すればよい。その後、ユーザは、ステップS1003において、内蔵記憶装置102又は画像入力部106に保存されている画像の中から、印刷を所望する複数(N個:Nは自然数)の画像を選択する。この選択は、例えば操作部105の操作によって行われる。このとき、ユーザが、画像毎に印刷を所望する範囲を指定するトリミング設定を併せて行ってもよく、また、印刷の上方向を指定する回転設定等を行ってもよい。続いて、ステップS1004において、ユーザは操作部105の操作によって印刷装置100に印刷の実行を指示する。
【0022】
次いで、ステップS1005において、印刷装置100が印刷処理を開始する。その後、ステップS1006において、CPU101は、ユーザによって選択された複数の画像に対するコマ配置の計算を行う。ここで、コマ配置とは、各画像の用紙内での位置及びサイズを意味する。このコマ配置の内容の詳細については後述する。ステップS1006で算出されるコマ配置に関するデータは遂次、メモリ103に記憶されていく。続いて、ステップS1007において、CPU101は、ユーザによって選択された複数の画像を内蔵記憶装置102から読み出し、これらとステップS1006で算出し、メモリ103に記憶されているコマ配置に関するデータを画像処理部107に受け渡し、画像処理部107に印刷データを生成させる。そして、ステップS1008において、CPU101は、ステップS1007で生成された印刷データの用紙への印刷を印刷部108に実行させる。
【0023】
(第1の実施形態)
次に、第1の実施形態におけるステップS1006の処理(コマ配置の計算)の概要について説明する。図4は、第1の実施形態におけるステップS1006の処理の概要を示すフローチャートである。
【0024】
ステップS1006では、先ず、ステップS2001において、CPU101は、ユーザにより選択された複数の画像を内蔵記憶装置102又は画像入力部106から検索し、画像毎にコマの基準サイズを取得する。ここで、コマの基準サイズとは、コマの幅及び高さの初期値であり、各々のコマに対応する画像の頭方向を揃えたときの幅及び高さである。
【0025】
ここで、図5を参照しながら、コマの基準サイズの具体例について説明する。図5(a)は、回転情報が0度であり、かつステップS1003においてユーザによるトリミング設定がなされていな場合の例を示している。図5(b)は、回転情報が90度であり、かつステップS1003においてユーザによるトリミング設定がなされていない場合の例を示している。図5(c)は、回転情報が0度であり、かつステップS1003においてユーザによるトリミング設定がなされている場合の例を示している。なお、回転情報としては、例えば画像に付随している回転情報、又はステップS1003においてユーザにより指定された回転情報のうちで最新のものが用いられる。
【0026】
ステップS2001の後、CPU101は、ステップS2002において、コマの順序を不規則に入れ替える。つまり、コマの順序をシャッフルする。これにより、ユーザは同じ設定で同じ画像を選択して印刷しても毎回違った印刷物を得ることができる。
【0027】
次いで、CPU101は、ステップS2003において、ユーザにより選択された複数(N個)の画像に対し、これらのコマを適宜縦横同率で変倍して、N個のコマからなり外縁が矩形のコマ群を生成する。このとき、隣り合うコマの間に隙間が生じないようにコマ群を生成する。この処理の内容の詳細については後述する。
【0028】
その後、CPU101は、ステップS2004において、ステップS1002において選択された用紙レイアウトを参照して、コマ群及びこれを構成するN個のコマのサイズ及び位置を調整する。図6は、コマ群のサイズ及び位置を調整する方法を示す図である。ここでは、印刷可能領域(用紙レイアウト領域302)の左上の頂点を原点とし、右方向をx方向、下方向をy方向とする。また、サイズ及び位置の調整前では、コマ群の左上の頂点が原点に位置しているとする。
【0029】
図6(a)に示すように、「“コマ群301の幅”÷“コマ群301の高さ”≦“用紙レイアウト領域302の幅”÷“用紙レイアウト領域302の高さ”」が成り立つ場合、CPU101は、先ず、コマ群301の幅及び高さを「“用紙レイアウト領域302の高さ”÷“コマ群301の高さ”」倍(リサイズ)する。この結果、コマ群301の高さが用紙レイアウト領域302の高さと一致する。次いで、CPU101は、コマ群301をx方向に「(“用紙レイアウト領域302の幅”−“リサイズ後のコマ群301の幅”)÷2」移動させる。この結果、コマ群301が用紙レイアウト領域302の中心に配置される。
【0030】
一方、図6(b)に示すように、「“コマ群301の幅”÷“コマ群301の高さ”>“用紙レイアウト領域302の幅”÷“用紙レイアウト領域302の高さ”」成り立つ場合、CPU101は、先ず、コマ群301の幅及び高さを「“用紙レイアウト領域302の幅”÷“コマ群301の幅”」倍(リサイズ)する。この結果、コマ群301の幅が用紙レイアウト領域302の幅と一致する。次いで、CPU101は、コマ群301をy方向に「(“用紙レイアウト領域302の高さ”−“リサイズ後のコマ群301の高さ”)÷2」移動させる。この結果、コマ群301が用紙レイアウト領域302の中心に配置される。つまり、コマ群301が、用紙レイアウト領域302に収まり、かつ用紙レイアウト領域302を構成する2組の平行な2辺のうちの1組に、コマ群301を構成する2組の平行な2辺のうちの1組が重ならせるようにコマ群301のサイズ及び位置が調整される。
【0031】
図6には、コマ群のサイズ及び位置を調整する方法を示しているが、CPU101は、このコマ群の調整に付随して、これを構成するN個の画像にも同様のサイズ及び位置の調整を行う。
【0032】
このような処理の結果、画像生成手段としてのCPU101により用紙レイアウト領域(印刷可能領域)302内の左右の余白部分又は上下の余白部分以外に隙間が生じることなく、ユーザにより選択されたN個の画像が1つの矩形内に配置されることになる。また、完全に隙間を発生させないことも可能であるが、画像の区切りを明確にするため、決まった幅の線や余白を付加してもよい。どちらにしても、無駄な余白領域を発生させることなく、N個の画像を配置した1つの画像を生成することができる。
【0033】
次に、ステップS2003の処理(コマ群の生成)について説明する。この説明では、先ず、2個のコマからコマ群を生成する方法について説明し、その後に、3個以上のコマからコマ群を生成する方法について説明する。
【0034】
図7(a)は、2個のコマを縦方向に並べてコマ群を生成する方法を示す図であり、図7(b)は、2個のコマを横方向に並べてコマ群を生成する方法を示す図である。
【0035】
2個のコマを縦方向に並べてコマ群を生成する場合、図7(a)に示すように、CPU101は、先ず、2個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、CPU101は、追加矩形の幅及び高さを「“基準矩形の幅”÷“追加矩形の幅”」倍(リサイズ)する。この結果、基準矩形の幅が、リサイズ後の追加矩形の幅と一致する。その後、CPU101は、追加矩形の座標を設定する。この際に、追加矩形の座標を(基準矩形のX座標,基準矩形のY座標+基準矩形の高さ)と設定すると、基準矩形の下に追加矩形が配置される。一方、追加矩形の座標を(基準矩形のX座標,基準矩形のY座標−リサイズ後の追加矩形の高さ)と設定すると、基準矩形の上に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅と一致し、高さは基準矩形の高さ及びリサイズ後の追加矩形の高さの和と一致する。2個のコマを横方向に並べてコマ群を生成する場合も、図7(b)に示すように、CPU101は、先ず、2個のコマのどちらか一方の外形と同一形状の基準矩形、及びもう一方の外形と同一形状の追加矩形を設定する。次いで、CPU101は、追加矩形の幅及び高さを「“基準矩形の高さ”÷“追加矩形の高さ”」倍(リサイズ)する。この結果、基準矩形の高さが、リサイズ後の追加矩形の高さと一致する。その後、CPU101は、追加矩形の座標を設定する。この際に、追加矩形の座標を(基準矩形のX座標+基準矩形の幅,基準矩形のY座標)と設定すると、基準矩形の右に追加矩形が配置される。一方、追加矩形の座標を(基準矩形のX座標−リサイズした追加矩形の幅,基準矩形のY座標)と設定すると、基準矩形の左に追加矩形が配置される。以上のような追加矩形のリサイズ及び座標の設定により、外縁の形状が矩形のコマ群が生成される。また、このコマ群の幅は基準矩形の幅及びリサイズ後の追加矩形の幅の和と一致し、高さは基準矩形の高さと一致する。
【0036】
このようにして、縮尺又は拡大に伴う計算誤差を除き、基準矩形及び追加矩形の各アスペクト比を維持したまま、これらを結合して矩形のコマ群を生成することができる。本発明において、全くアスペクト比が同じ状態であるものだけでなく、計算誤差等により多少アスペクト比が異なっていても、アスペクト比が保持されている状態のものであるとする。
【0037】
詳細は後述するが、基準矩形及び追加矩形の双方又は一方が、前もって上述の処理を経て構成されたコマ群であってもよい。この場合も、上述の処理によって得られるコマ群は、コマ間に隙間を生じさせることなく、矩形のものとなる。
【0038】
3個以上のコマからコマ群を生成する場合には、次のような処理を行う。図8は、N個のコマからコマ群を生成する方法を示すフローチャートである。
【0039】
この処理(ステップS2003)では、先ず、ステップS3001において、CPU101は、1コマ目を最初の基準矩形として配置する。このとき、基準矩形の原点を(0,0)とし、基準矩形の幅=1コマ目の基準サイズの幅、基準矩形の高さ=1コマ目の基準サイズの高さとする。
【0040】
次いで、ステップS3002において、CPU101は、分割手段として、使用済みコマ数のカウンタ値c、及び次に配置するブロックのブロック番号kを初期化する。ここでいうブロックとは、N個のコマを1又は2以上毎の複数のグループに分割したものであり、例えば図9のような数に分けられる。図9に示す表において、例えば総コマ数(N)が11である場合は、11個のコマが、1個のコマからなるブロック、2個のコマからなるブロック、3個のコマからなるブロック、5個のコマからなるブロックの4つのブロックに分けられる。この夫々のブロック内に配置されるコマで基準矩形又は追加矩形を作成し、これらを結合していくことによって、N個のコマを含むコマ群を生成する。なお、ブロック1の値は必ず1であり、これは最初に配置をしたコマ1のことである。
【0041】
ステップS3002の後、CPU101は、ステップS3003において、使用済みコマ数のカウンタcとNとを比較する。そして、c=Nであれば、処理を終える。全てのコマの配置が終了しているからである。一方、c≠Nであれば、ステップS3004に進む。まだ配置されていないコマの配置を行うためである。
【0042】
ステップS3004では、CPU101は、次に配置するブロックのブロック番号kの値によって、次のブロックの縦横の結合方向を決定する処理を切り換える。ブロック番号kが1の場合は、ステップS3005に進む。また、ブロック番号kが最後のものである場合は、ステップS3006に進む。また、ブロック番号kがその他の値である場合は、ステップS3007に進む。
【0043】
ステップS3005では、CPU101は、前回の処理(レイアウト計算)を行った際に縦結合を行っていた場合には、横結合を行うと決定し、前回の処理(レイアウト計算)を行った際に横結合を行っていた場合には、縦結合を行うと決定する。
【0044】
ステップS3006では、CPU101は、基準矩形のアスペクト比(高さ÷幅)と用紙レイアウト領域のアスペクト比とを比較する。そして、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比よりも大きい場合は、縦結合を行うと決定し、基準矩形のアスペクト比が用紙レイアウト領域のアスペクト比以下の場合は、横結合を行うと決定する。
【0045】
ステップS3007では、CPU101は、前のブロック結合が縦結合であれば、横結合を行うと決定し、前のブロック結合が横結合であれば、縦結合を行うと決定する。
このようにして、CPU101は、縦横の結合方向を決定する。
【0046】
ステップS3005〜S3007の後、CPU101は、ステップS3008において、結合方向をランダムに決定する。即ち、縦結合の場合は、上又は下の結合方向をランダムに決定し、横結合の場合は、右又は下の結合方向をランダムに決定する。この決定は、例えば乱数を用いて行うことができる。
【0047】
次いで、CPU101は、ステップS3009において、ブロック番号kで使用するコマ数nを取得する。このコマ数nの値は、例えば図9に示す表から取得してもよく、計算によって求めてもよい。
【0048】
その後、CPU101は、ステップS3010において、矩形生成手段として、n個のコマのすべてを結合して、追加矩形となる矩形を作成する。ブロック番号kの矩形の作成は、例えば図10のように定義できる。即ち、2個のコマによる矩形のそれぞれのコマの配置の計算は、図10(a)に示すように、図7に示す例に基づいて行うことができる。また、3個のコマによる矩形のそれぞれのコマの配置の計算は、図10(b)に示すように、図7(a)又は図7(b)の計算を2コマで行った後に2コマで作られた矩形に対して1コマを結合することによって計算できる。同様に、4コマの配置の計算は、図10(c)に示すように、(3コマ+1コマ)又は(2コマ+2コマ)で計算できる。更に、5コマの配置の計算は、図10(d)に示すように、(3コマ+2コマ)で計算でき、6コマの配置計算は、図10(e)に示すように、(3コマ+3コマ)で計算できる。このようにして、全てのコマを使って矩形を作成することができる。つまり、ブロック毎に矩形が生成される。
【0049】
なお、複数のパターンが存在するコマ数の場合、CPU101は、当該複数の配置パターンのうちから一つの配置パターンをランダムに選択する。この選択は、例えば乱数を用いて行うことができる。
【0050】
ステップS3010の後、CPU101は、ステップS3011において、作成した矩形を追加矩形として基準矩形に結合する。この結合は、図7に示す方法で行われる。
【0051】
次いで、ステップS3012において、CPU101は、ステップS3011の結合で得られた矩形を新たな基準矩形とし、使用済みコマ数c及び次に結合するブロック番号kを更新し、ステップS3003の判定に戻る。
【0052】
以上の処理を全てのコマに対して行うことにより、CPU101は、決定手段として、基本ブロックの矩形に他のブロックの矩形を追加しながら、N個のコマが隙間なく結合された大きな矩形と同一形状のコマ群を生成させる。
【0053】
ここで、具体的に、総コマ数Nが11の場合を例示して、図8に示すフローチャートに沿ったコマ群の生成方法について更に説明する。図11は、総コマ数Nが11の場合のコマ群の生成方法を示す図である。図9に示すように、総コマ数が11の場合、これらは、1コマ、2コマ、3コマ、5コマの4つのブロックに分けられる。
【0054】
先ず、CPU101は、ステップAにおいて、座標(0,0)、幅=コマ1の基準幅、高さ=コマ1の基準高さ、としてコマ1の配置を行い、それを基準矩形とする。
【0055】
次いで、CPU101は、ステップBにおいて、ブロック2の結合方向の決定を行う。ブロック2の縦横結合方向は前回のレイアウト計算時の縦横結合方向と逆であり、前回が横結合だったと仮定すると、今回は縦結合となる。また、ここでは、上結合又は下結合はランダムの結果により下結合になったとする。
【0056】
その後、CPU101は、ステップCにおいて、ブロック2の矩形の作成を行う。ブロック2の結合方向は縦結合であるので、図10(a)に示すように、横に二つならぶ配置となる。ブロック2の矩形は、コマ2を基準矩形、コマ3を追加矩形として、図7(b)の計算を行うことにより得られる。この結果、ブロック2の矩形の幅及び高さ、並びにコマ2及びコマ3の各配置が算出される。
【0057】
続いて、CPU101は、ステップDにおいて、ブロック2を追加矩形とし、コマ1からなる基準矩形に対して下結合を行う(ステップS3011)。このとき、図7(a)に示す計算を行う。この結果、コマ1、コマ2、及びコマ3からなる矩形が作成され、これが新たな基準矩形として用いられる。
【0058】
次いで、CPU101は、ステップEにおいて、ブロック3の結合方向の決定を行う。ブロック2の結合方向が縦方向であったため、ブロック3の結合方向は横方向となる。また、ここでは、左又は右の結合方向はランダムにより右になったとする。
【0059】
その後、CPU101は、ステップFにおいて、ブロック3のコマ4、コマ5、及びコマ6の3つのコマから矩形を作成する。ここでは、3コマでの結合パターンとして、図10(b)に示す3コマの結合パターンの中からパターン3−2がランダムによって選択されたとする。パターン3−2では、先ず、コマ4を基準矩形、コマ5を追加矩形として下結合させる。そして、この下結合により得られた矩形を基準矩形、コマ6を追加矩形として更に下結合させる。このようにして、ブロック3の矩形が作成される。
【0060】
続いて、CPU101は、ステップGにおいて、ステップDにおいて作成した基準矩形に対しステップFで作成したブロック3の矩形を追加矩形として右結合させ、この結果得られた矩形を新たな基準矩形とする。
【0061】
次いで、CPU101は、ステップHにおいて、次のブロックが最後のブロックであるため、ステップGで作成した矩形のアスペクト比(高さ÷幅)と用紙レイアウト領域のアスペクト比(高さ÷幅)とを比較して縦横結合方向を決定する。図11では、点線で用紙レイアウト領域を示しているが、この用紙レイアウト領域のアスペクト比が基準矩形のアスペクト比よりも大きいため、最後のブロック4は横結合となる。ここでは、左又は右の結合方向はランダムにより左結合となったとする。
【0062】
その後、CPU101は、ステップIにおいて、コマ7、コマ8、コマ9、コマ10、及びコマ11の5つのコマから矩形を作成する。ブロック4は横結合なので、図10(e)に示すパターン5−2が選択される。パターン5−2では、先ず、コマ8を基準矩形、コマ9を追加矩形として横結合させる。そして、この横結合により得られた矩形を追加矩形、コマ7を基準矩形として縦結合させる。また、コマ10を基準矩形、コマ11を追加矩形として横結合により矩形を作成し、この横結合により得られた矩形を追加矩形としてコマ7、コマ8、及びコマ9の矩形に縦結合させる。以上により、5コマからなる矩形が完成する。
【0063】
続いて、CPU101は、ステップJにおいて、ステップGにおいて作成した矩形を基準矩形、ステップIにおいて作成した矩形を追加矩形として左結合させる。以上により、11個のコマからなる矩形のコマ群の作成が完了する。なお、これらのブロック分割やmブロックごとのコマの配置・サイズ、さらに、ブロックの結合の際のコマ配置・サイズに関する情報は遂次、メモリ103に記憶される。
ステップS2003では、このような処理が行われる。
【0064】
このような第1の実施形態によれば、ユーザにより選択された複数の画像が同一であっても、処理の度に各画像のレイアウト及び大きさが相違する。従って、複数の画像を一つの印刷物として観察した場合に、変化があり、楽しめる印刷物が得られることとなる。また、この印刷物には、上下又は左右の余白部以外に空白部が生じず、無駄な領域の発生を抑制することができる。また、ユーザの意思がない場合に、処理前の画像の一部を削除する必要がなく、ユーザが印刷しようとする画像の全体を印刷することができる。
【0065】
このように、複数の画像が、算出手段としてのCPU101等により、それぞれの画像のアスペクト比を略保持したまま、当該複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。また、算出されたレイアウトが記憶手段であるメモリ103等に記憶される。また、第2の算出手段としてのCPU101等により、記憶手段に記憶されたレイアウトの矩形と、さらなる複数の画像について、それぞれのアスペクト比を略保持したままレイアウトの矩形及び複数の画像を隣接させて矩形となるように配置した場合のレイアウトが算出される。そして、第2の算出手段により算出されたレイアウトが、記憶制御手段としてのCPU101等により、記憶手段に記憶させられる。また、画像処理手段としてのCPU101等により、記憶手段に記憶されているレイアウトに基づいて、複数の画像がレイアウトされる。
【0066】
(第2の実施形態)
次に、第2の実施形態における処理について説明する。第1の実施形態では、コマの配置が不規則に決定されるため、必ずしもユーザの好みと一致しないことがある。その一方で、ユーザの望む一番好ましい配置にするために、全てのケースを網羅するにはケースがあまりにも多く多大な時間がかかってしまう。そこで、第2の実施形態では、コマの配置を行った後に、その配置に対してユーザにとって望ましくないケースを一般化したいくつかのチェックを行い、その結果を数値化することによって評価を行う。図12は、第2の実施形態におけるステップS1006の処理の概要を示すフローチャートである。第2の実施形態では、前処理で選択された画像がレイアウト評価を経て、最も評価の高いレイアウトのコマ群の配置が決定される。
【0067】
先ず、CPU101は、第1の実施形態と同様にして、ステップS2001の処理を行う。
【0068】
次いで、CPU101は、ステップS1201において、レイアウト(コマ群の作成)を行った回数をカウントするため、試行回数を1とする。
その後、CPU101は、第1の実施形態と同様にして、ステップS2002〜S2004の処理を行う。
【0069】
続いて、CPU101は、ステップS1202において、ステップS2003で作成した矩形のコマ群のレイアウトに対して評価を行う。この処理の内容の詳細については後述する。
【0070】
次いで、CPU101は、ステップS1203において、ステップS1202の評価の結果がOK又はNGのいずれであるか否かの判断を行い、OKであれば、処理を終了する。一方、NGであれば、コマの配置を再決定することとしてステップS1204に進む。ステップS1204において、CPU101は、試行回数が最大試行回数まで達したかどうかを判断する。最大試行回数まで達していればステップS1205に進み、そうでなければステップS1206に進む。
【0071】
ステップS1205において、CPU101は、これ以上新しいレイアウトの作成は行わず、ステップS1202のレイアウト評価を行ったときの最も評価の高いレイアウトをバックアップから復元し、処理を終了する。一方、ステップS1206では、CPU101は、試行回数の数を増やす。
【0072】
ステップS1206の後、CPU101は、ステップS1207において、次のレイアウトの生成を行うときに、ステップS3004で最初のブロック番号での配置を今回のレイアウト生成とは逆の縦横方向になるように設定する。そして、ステップS2002に戻り、コマ順序のシャッフルを行う。
【0073】
このような処理の結果、レイアウトを生成の度に、コマ順序のシャッフル及びブロック配置の方向が入れ替えられ、コマの配置のばらつきが増加し、様々なレイアウトが生成されるようになる。
【0074】
次に、ステップS1202の処理(レイアウト評価のためのチェック)について説明する。本実施形態では、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを行い、評価する。各チェックの内容について個別に説明する。
【0075】
<十字チェック>
十字チェックとは、コマとコマとの接続している点が十字に近い状態になっている場合はエラーとするチェックである。つまり、4つの画像の角が1点に集中している場合である。例えば、図13に示すように、コマ1401の右下のポイントとコマ1403の左上のポイントとが所定の距離内に含まれている場合にエラーとする。即ち、コマ1401の右下のポイントを中心とする半径が所定の値の円1402を設定し、この円1402内にコマ1403の左上のポイントが含まれている場合にエラーとする。このような十字に近い状態が多い場合、結果的に規則的に画像が並ぶことになってしまい、全体として面白みに欠けるレイアウトになる。エラー点数は10とする。
【0076】
<画像サイズ差チェック>
画像サイズ差チェックとは、配置されるコマの最大コマ面積と最小コマ面積とを比較し、その差が20倍以上あった場合にエラーとするチェックである。つまり、最大サイズのコマと最小サイズのコマのサイズの差に基づくチェックである。画像差があまりに大きい場合、全体としてちぐはぐな印象を与えるレイアウトになる。エラー点数は、差が20倍以上40倍未満の場合に20とし、40倍以上の場合に40とする。
【0077】
<最小画像サイズチェック>
最小画像サイズチェックとは、配置される最小コマの面積が10000以下の場合にエラーとするチェックである。画像の判別がつかないほどコマが小さくなるのを避け、また、画像の縮小に関しては制限を有するハードウェアが多く、あまりにも小さい画像への変倍が難しいためである。エラー点数は40とする。
【0078】
<余白チェック>
余白チェックとは、出力用紙の中でコマ配置画像の占める領域(割合)を計算し、80%以下だった場合にはエラーとするチェックである。可能な限り出力用紙の全体に画像を印刷するためである。但し、後述するスコア計算に占有率が含まれるため、このチェック単体でのエラーはないものとする。
【0079】
図14は、ステップS1202の処理の詳細を示すフローチャートである。
ステップS1202では、先ず、CPU101は、ステップS1301〜S1304において、十字チェック、画像サイズ差チェック、最小画像チェック、及び余白チェックを、矩形のコマ群に含まれる各コマに対して行う。
【0080】
次いで、CPU101は、ステップS1305において、ステップS1301〜S1304の各チェックでエラーが発生していないかを判断する。そして、エラー(NG)が発生していない場合には、ステップS1306でコマ群のレイアウト評価をOKとし、ステップS1202の処理を終了する。一方、エラーが発生している場合には、ステップS1307で、スコアを計算する。ここで、スコアは、「スコア=画像の占有率−各チェックのエラー点数の総和」と表される。最小のスコアは、画像の占有率が0、各チェックのエラー点数が最大となっている場合に得られ、この値は−90になる。
【0081】
ステップS1307の後、CPU101は、ステップS1308において、ステップS1307で算出したスコアとバックアップしていたスコアとを比較する。そして、ステップS1307で算出したスコアがバックアップスコアよりも高い場合には、ステップS1310に進み、そうでない場合は、何も行わずにステップS1309に進む。何も行わずにステップS1309に進むのは、バックアップしていたコマ群のレイアウトの評価が、今回作成したコマ群のレイアウトの評価よりも高いからである。
【0082】
ステップS1310では、CPU101は、今回作成したレイアウトのバックアップを作成する。具体的には、CPU101は、コマ群に含まれる各コマの配置情報をメモリ103に保存する。
【0083】
次いで、CPU101は、ステップS1311において、バックアップスコアを今回のスコアに更新する。この操作によって、チェックでNGになったケースで常に最も評価の高いコマ群のレイアウトがバックアップとして保存される。
【0084】
ステップS1308又はステップS1311の後のステップS1309では、CPU101は、レイアウト評価をNGとし、ステップS1202の処理を終了する。なお、バックアップスコアの初期値を−90にしておけば、それよりも低いスコアが得られることはないため、一度でもチェックでNGが発生した場合には、バックアップスコア及びレイアウトが生成される。
【0085】
このような第2の実施形態によれば、各チェックでエラーになった場合には、所定回数まで条件を変更してコマの配置を行い、最もスコアの高いレイアウトが採用されるため、よりユーザの好みに近いレイアウトで印刷することができる。
【0086】
また、繰り返し回数に上限を設定しているため(ステップS1204)、全てのパターンを網羅した場合と比べて、ユーザを待たせる時間を減らすことができる。
【0087】
なお、上述の各チェックは、選択画像数及び印刷用紙のサイズに応じて無効にしたり、エラー点数を変更したりしてもよい。例えば、十字チェックは画像枚数が増えるとそれほど目立たなくなるため、選択画像が8枚よりも多い場合には無効にしてもよい。また、用紙が大きくなると、画像サイズ差が少し大きくなっても問題がないため、2L以上の印刷レイアウトでは、エラー点数を10ずつ減らしてもよい。このような設定を行えば、各チェックに対してより細かく精度の高い制御を行うことが可能になる。
【0088】
(第3の実施形態)
次に、第3の実施形態における処理について説明する。第3の実施形態では、図1の主画像が大きいコマに配置されたような印刷を得ることができる。基本的な動作は第2の実施形態と同様であるため、同じ処理については説明を省略する。
【0089】
以下図15を参照して、第3の実施形態について説明する。第3の実施形態では、主画像が大きいコマに配置されるように、図12のS2003とS2004の間に、図15の処理を実行する。
【0090】
まずS1501において、S2003で生成された矩形の中で主画像に対応するコマが大きく配置されているかを判定するため、主画像が最も大きいコマに配置されているかを判定する。主画像に対応するコマが最も大きくなっていればこのままS2004に進む。そうでなければ、S1502に移行し、最も大きいコマのアスペクト比(コマに対応する画像のアスペクト比でもよい)が主画像のコマのアスペクト比(主画像のアスペクト比でもよい)と同じかどうか判定する。同じであればS1503に移行し、最も大きいコマに配置されている画像と主画像とを入れ替える。つまり、最も大きいコマに主画像を配置し、主画像が配置されていたコマに、最も大きいコマに配置されていた画像を配置する。アスペクト比が同じであるため、入れ替えても余白が発生したり画像が切れたりすることはない。S1603で同じでないと判定された場合はS2002に戻り、コマ順序をシャッフルしてから矩形生成の処理をやり直す。
【0091】
図15の処理を行うことで、主画像を最も大きいコマに配置することができる。
【0092】
また、図15では、最も大きいコマに配置されているかを判断したが、1〜3番目に大きいコマに配置されている場合は、そのままS2004に進むようにしてもよい。しかし、この場合であっても、最も大きいコマのアスペクト比と主画像のアスペクト比が同じ場合は、入れ替えを行うとよい。
【0093】
また、主画像については、ユーザが予め操作部105で選択可能なように構成してもよいし、また、画像の付加されているお気に入り情報や重要度情報から自動的に決定してもよい。
【0094】
また、本実施形態では、S2003とS2004の間に図15のような処理を行ったが、S2003の処理中に行ってもよい。例えば、それぞれのブロックを結合した後に図15のような処理を行ってもよい。ブロック結合時に行うことにより、処理をやり直す場合にはやり直しが早く決定するので、無駄な処理をしなくてよくなる。
【0095】
以上のように第3の実施形態によればユーザから指定された複数の画像を用紙レイアウトに対し上下もしくは左右の余白部分以外に隙間なく配置され更に特定の主画像が大きく配置されるようなレイアウトが作成される。
【0096】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。本発明の各処理は、ネットワーク又は各種コンピュータ読み取り可能な記憶媒体を介して取得したソフトウェア(プログラム)をパーソナルコンピュータ等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【符号の説明】
【0097】
100 画像処理装置
101 CPU
102 内蔵記憶装置
103 メモリ
104 表示制御部
105 操作部
106 画像入力部
107 画像処理部
108 印刷部
110 ディスプレイ
111 内部バス
【特許請求の範囲】
【請求項1】
複数の画像を自動レイアウトする画像処理装置であって、
前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、
前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、
前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、
特定の画像が、大きいコマに配置されるように、前記決定手段を制御する制御手段とを有することを特徴とする画像処理装置。
【請求項2】
前記制御手段は、前記決定手段により決定された前記複数の画像のコマの配置において、前記特定の画像が大きいコマに配置されていないときに、最も大きいコマに対応するアスペクト比と前記特定の画像に対応するアスペクト比が同じである場合は、最も大きいコマに主画像が配置されるように、画像の配置を入れ替えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、最も大きいコマに対応するアスペクト比と前記特定の画像に対応するアスペクト比が同じでない場合は、前記矩形生成手段および前記決定手段により、再び前記複数の画像のコマの配置を決定させることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
ユーザに選択された複数の画像を画像処理装置により自動レイアウトするための画像処理方法であって、
前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成工程と、
前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定工程と、
前記決定工程決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成工程とを有し、
前記決定は、特定の画像が大きいコマに配置されるように、前記複数の画像のコマの配置を決定することを特徴とする画像処理方法。
【請求項5】
複数の画像を、それぞれの画像のアスペクト比を略保持したまま、当該複数の画像を隣接させて矩形となるように配置した場合のレイアウトを算出する算出手段と、
前記算出手段により算出されたレイアウトを記憶する記憶手段と、
前記記憶手段に記憶されたレイアウトの矩形と、さらなる複数の画像について、それぞれのアスペクト比を略保持したまま前記レイアウトの矩形及び前記複数の画像を隣接させて矩形となるように配置した場合のレイアウトを算出する第2の算出手段と、
前記第2の算出手段により算出されたレイアウトを、前記記憶手段に記憶させる記憶制御手段と、
前記記憶手段に記憶されているレイアウトに基づいて、複数の画像をレイアウトする画像処理手段と、
前記第2の算出手段により算出されたレイアウトについて、特定の画像が一番大きくなるようにレイアウトを変更する変更手段を有することを特徴とする画像処理装置。
【請求項1】
複数の画像を自動レイアウトする画像処理装置であって、
前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成手段と、
前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定手段と、
前記決定手段により決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成手段と、
特定の画像が、大きいコマに配置されるように、前記決定手段を制御する制御手段とを有することを特徴とする画像処理装置。
【請求項2】
前記制御手段は、前記決定手段により決定された前記複数の画像のコマの配置において、前記特定の画像が大きいコマに配置されていないときに、最も大きいコマに対応するアスペクト比と前記特定の画像に対応するアスペクト比が同じである場合は、最も大きいコマに主画像が配置されるように、画像の配置を入れ替えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、最も大きいコマに対応するアスペクト比と前記特定の画像に対応するアスペクト比が同じでない場合は、前記矩形生成手段および前記決定手段により、再び前記複数の画像のコマの配置を決定させることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
ユーザに選択された複数の画像を画像処理装置により自動レイアウトするための画像処理方法であって、
前記複数の画像を1又は2以上毎の複数のブロックに分割し、前記ブロック毎に、当該ブロックに含まれる画像のコマを配置するための矩形を生成する矩形生成工程と、
前記ブロック毎に生成された矩形のうち2つずつを結合して新たな矩形を生成していくことにより、前記複数のブロックからなる矩形であって、前記複数の画像のコマすべてが配置される矩形を生成し、前記複数の画像のコマの配置を決定する決定工程と、
前記決定工程決定された前記複数の画像のコマの配置に基づいて、前記複数の画像を1つの矩形内に配置した画像を生成する画像生成工程とを有し、
前記決定は、特定の画像が大きいコマに配置されるように、前記複数の画像のコマの配置を決定することを特徴とする画像処理方法。
【請求項5】
複数の画像を、それぞれの画像のアスペクト比を略保持したまま、当該複数の画像を隣接させて矩形となるように配置した場合のレイアウトを算出する算出手段と、
前記算出手段により算出されたレイアウトを記憶する記憶手段と、
前記記憶手段に記憶されたレイアウトの矩形と、さらなる複数の画像について、それぞれのアスペクト比を略保持したまま前記レイアウトの矩形及び前記複数の画像を隣接させて矩形となるように配置した場合のレイアウトを算出する第2の算出手段と、
前記第2の算出手段により算出されたレイアウトを、前記記憶手段に記憶させる記憶制御手段と、
前記記憶手段に記憶されているレイアウトに基づいて、複数の画像をレイアウトする画像処理手段と、
前記第2の算出手段により算出されたレイアウトについて、特定の画像が一番大きくなるようにレイアウトを変更する変更手段を有することを特徴とする画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−54677(P2012−54677A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−194047(P2010−194047)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]