(57)【特許請求の範囲】
【請求項１】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な画像データ配置装置において、
前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段と、
複数の画像データから指定される１又は複数の画像データのセットを複数セット指定可能な指定手段と、
前記指定手段により指定されたセット毎に前記画像配置領域に画像を前記第１方向に配置する制御を行う画像配置制御手段と、を有し、
前記画像配置制御手段は、画像データ数が前記配置数の倍数であるセットの画像をセット毎に画像配置領域に配置制御する第１の配置制御を先に行い、当該第１の配置制御の後に画像データ数が前記配置数の倍数でないセットの画像を当該第１の配置制御により画像が配置された画像配置領域を除く残りの画像配置領域に配置制御する第２の配置制御を行うことを特徴とする画像データ配置装置。
【請求項２】
前記前記第２の配置制御は、
前記画像データ数が前記配置数の倍数でない複数のセットの組であって画像データ数の合計が前記配置数の倍数となるセットの組の画像をセット毎に配置する制御を行うことを特徴とする請求項１記載の画像データ配置装置。
【請求項３】
前記第２の配置制御は、
画像データ数が前記配置数より大きいセットと画像データ数が前記配置数未満のセットの組であって画像データ数の合計が前記配置数の倍数となるセットの組の画像をセット毎に配置する制御と、画像データ数が前記配置数より大きいセット同士の組であって画像データ数の合計が前記配置数の倍数となるセットの組の画像をセット毎に配置する制御を行うことを特徴とする請求項１記載の画像データ配置装置。
【請求項４】
前記画像配置制御手段は、前記第１の配置処理および前記第２の配置制御で配置されなかったセットの画像をセット毎に前記第１の配置処理および前記第２の配置処理により画像が配置された画像配置領域を除く残りの画像配置領域に配置制御する第３の配置制御を更に行うことを特徴とする請求項１乃至３の何れか１項に記載の画像データ配置装置。
【請求項５】
前記第３の配置制御は、
前記第１方向の画像未配置領域の数より少ない画像データ数のセットがある場合には、該セットの画像を前記画像未配置領域に対して前記第１方向で配置する制御を行い、
前記第１方向の画像未配置領域の数より少ない画像データ数のセットが無い場合には、該未配置領域を空白領域としてメモリに記憶しておき、該空白領域の領域数より少ない画像データ数のセットがある場合、該セットの画像を前記空白領域に対して前記第２方向で配置する制御を行うことを特徴とする請求項４記載の画像データ配置装置。
【請求項６】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な画像データ配置装置における画像データ配置方法であって、
設定手段が、ユーザの指示に応じて、前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定ステップと、
指定手段が、ユーザの指示に応じて、複数の画像データから指定される１又は複数の画像データのセットを複数セット指定可能な指定ステップと、
画像配置処理手段が、前記指定ステップで指定されたセット毎に前記画像配置領域に画像を前記第１方向に配置する制御を行う画像配置制御ステップと、を有し、
前記画像配置制御ステップでは、画像データ数が前記配置数の倍数であるセットの画像をセット毎に画像配置領域に配置制御する第１の配置制御を先に行い、当該第１の配置制御の後に画像データ数が前記配置数の倍数でないセットの画像を当該第１の配置制御により画像が配置された画像配置領域を除く残りの画像配置領域に配置制御する第２の配置制御を行うことを特徴とする画像データ配置方法。
【請求項７】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な画像データ配置装置のプロセッサを、
前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段、
複数の画像データから指定される１又は複数の画像データのセットを複数セット指定可能な指定手段、
前記指定手段により指定されたセット毎に前記画像配置領域に画像を前記第１方向に配置する制御を行う画像配置制御手段として機能させるためのプログラムであり、
前記画像配置制御手段は、画像データ数が前記配置数の倍数であるセットの画像をセット毎に画像配置領域に配置制御する第１の配置制御を先に行い、当該第１の配置制御の後に画像データ数が前記配置数の倍数でないセットの画像を当該第１の配置制御により画像が配置された画像配置領域を除く残りの画像配置領域に配置制御する第２の配置制御を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な画像データ配置装置の画像データ配置制御に関する。
【背景技術】
【０００２】
従来より、碁盤状に分割された画像配置領域を備えたシートに画像を印刷し、該シートを切断して複数人数に様々な画像を配布することが行われていた。しかし、この際に、同じ人に配布したい画像がひとまとまりの位置に印刷されないため、縦方向等にシートを切断して配布することができず、シートをバラバラに切断して配布しなければならなかった。
【０００３】
例えば、Ａさんに（画像１，画像２，画像３，画像６，画像９，画像１０）、Ｂさんに（画像３，画像６，画像８）、Ｃさんに（画像１，画像２，画像５，画像６，画像８，画像９，画像１０）、Ｄさんに（画像１，画像２，画像３，画像４，画像５）という画像をそれぞれ配布したい場合、従来の技術では図２１（ｂ-１）や（ｃ-１）に示すようなレイアウトで印刷が行われる。
【０００４】
上記レイアウトで印刷が行われた場合、ユーザは（ｂ-２）や（ｃ-２）のような複雑な切断を行わなければならない。
【０００５】
特許文献１には、撮像画像を、利用者が複数人いる場合でも、それぞれが印刷したい画像や大きさを指定でき、シートの切断作業を容易にする技術が開示されている。
【特許文献１】特開２００３−６１０１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、利用者毎に、画像毎の印刷枚数をそれぞれ指定して、シートの切断作業が容易なように印刷できるものではない。そのため、利用者毎に所望の画像を所望の枚数だけ配布するような場合、結局、出来上がったシール紙をバラバラにし、その中から選択して配布するしか方法がなく、非常に煩雑であった。
【０００７】
また、従来の技術では、シールの分割位置内のシールレイアウトは、固定のレイアウトや一定の方向に自動に配置する方法である。このため、ユーザが希望する組み合わせを、直線かつ一方向に切断し、極力切断回数を減らすレイアウトを実現するためには、手動でレイアウトを行わなければならず煩雑であった。
【０００８】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ユーザが希望する組み合わせに直線かつ一方向に切断可能にするように、画像配置領域に画像データを自動で（ユーザによる手作業のレイアウト操作無しに）レイアウトする仕組を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な画像データ配置装置において、前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段と、複数の画像データから指定される１又は複数の画像データのセットを複数セット指定可能な指定手段と、前記指定手段により指定されたセット毎に前記画像配置領域に画像を前記第１方向に配置する制御を行う画像配置制御手段と、を有し、前記画像配置制御手段は、画像データ数が前記配置数の倍数であるセットの画像をセット毎に画像配置領域に配置制御する第１の配置制御を先に行い、当該第１の配置制御の後に画像データ数が前記配置数の倍数でないセットの画像を当該第１の配置制御により画像が配置された画像配置領域を除く残りの画像配置領域に配置制御する第２の配置制御を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ユーザにより指定された各セットを、極力一方向かつ直線で、自動で（ユーザによる手作業のレイアウト操作無しに）レイアウトすることができる。そのため、複数人数に様々な画像を配布する際などでも、複雑な切断を行う必要が無くなる等の効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下、図面に従って本発明に係る複数画像印刷最適配置システムに好適な実施形態について説明する。なお、本実施形態で用いる印刷シートは、印刷シート上の縦方向及び横方向に碁盤状に分割された画像印刷領域を有するものとする。
【００１３】
〔第１実施形態〕
図１は、本発明の第１実施形態を示す複数画像印刷最適配置システムの構成の一例を示すブロック図である。
【００１４】
図１において、１はディスプレイであり、本システムの印刷設定画面（図４）や印刷レイアウト画面（図５）を表示するためのものである。２はプリンタであり、本システムで作成したレイアウトを印刷するためのものである。３は入力装置であり、例えばキーボード，マウス等のポインティングデバイス等である。
【００１５】
１０は、複数画像印刷最適配置装置としてのパーソナルコンピュータ（ＰＣ）本体である。
【００１６】
ＰＣ１０において、１７はディスプレイＩ／Ｆであり、ディスプレイ１への表示を制御する。１８は外部Ｉ／Ｆであり、プリンタ２を接続するためのものである。１１は入力Ｉ／Ｆであり、入力装置３からの入力を制御する。
【００１７】
ＰＣ１０において、１２はＣＰＵであり、不図示のＲＯＭやハードディスク（ＨＤ）１９に格納された不図示のプログラムをＲＡＭ１３上等にロードして実行することにより、データ記憶部１４，レイアウト作成部１５，レイアウト記憶部１６等を実現して、システム全体の制御を行う。
【００１８】
データ記憶部１４は、後述する図４に示す印刷設定画面で設定されたシール用紙の縦枚数のデータを記憶するとともに、印刷設定画面で印刷セット毎に設定された画像情報および枚数情報をデータベース２４，２５に振り分け、その後、データベース２４のデータをデータベース２０，２１，２２に振り分ける。
【００１９】
レイアウト作成部１５は、データベース２５に振り分けられた選択画像情報および、データベース２０，２１，２２に振り分けられた印刷セット情報に基づいて、画像データを最適にレイアウトした印刷レイアウトデータを作成する。
【００２０】
レイアウト記憶部１６は、レイアウト作成部１５で作成された印刷レイアウトデータを記憶し、後述する図５に示す印刷レイアウト画面としてディスプレイ１に表示制御する。また、レイアウト記憶部１６は、印刷レイアウト画面でユーザが確認後、印刷指示がなされると、前記印刷レイアウトでの印刷をプリンタ２により実行するように制御する。
【００２１】
なお、データ記憶部１４，レイアウト作成部１５，レイアウト記憶部１６は、ＣＰＵ１２がハードディスク（ＨＤ）１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。
【００２２】
上述のデータベース２０〜２５は、ＨＤ１９に保持されている。ここで、図２を参照して、データベース２０〜２５の説明を行う。
【００２３】
図２は、図１に示したデータベース２０〜２５のデータイメージを示す図である。
【００２４】
図２において、２５は選択画像データベースであり、図４に示す印刷設定画面において、ユーザが印刷セット毎に選択した画像データの画像名と枚数を、各セットに振られたセットＩＤに紐付けて格納するためのものである。なお、セットＩＤとは、セットが設定された順に振られる番号である。
【００２５】
２４は印刷セットデータベースであり、図４に示す印刷設定画面において、ユーザが印刷セット毎に選択した画像データの合計枚数を、各セットに振られたセットＩＤに紐付けて格納するためのものである。
【００２６】
２０は縦枚数の倍数データベースであり、印刷セットデータベース２４に格納された印刷セット情報のうち、シール紙の縦に配置できる数（シール用紙の縦枚数のデータ）の倍数の画像数を合計枚数とする印刷セット情報（セットＩＤ，合計枚数）を格納するためのものである。例えば、シール紙の縦枚数が「５」枚なら、合計枚数が「５」枚,「１０」枚,「１５」枚，・・・等の印刷セット情報を格納する。
【００２７】
２１は縦枚数＜画像枚数データベースであり、印刷セットデータベース２４に格納された印刷セット情報のうち、シール紙の縦に配置できる数より多い画像数を合計枚数とする印刷セット情報を格納するためのものである。例えば、シール紙の縦枚数が「５」枚なら、合計枚数が「６」枚,「７」枚,「８」枚,「９」枚,「１１」枚,「１２」枚,「１３」枚,「１４」枚,「１６」枚，・・・等の印刷セット情報を格納する。
【００２８】
２２は縦枚数未満データベースであり、印刷セットデータベース２４に格納された印刷セット情報のうち、シール紙の縦に配置できる数未満の画像数を合計枚数とする印刷セット情報を格納するためのものである。例えば、シール紙の縦枚数が「５」枚なら、合計枚数が「１」枚,「２」枚,「３」枚,「４」枚の印刷セット情報を格納する。
【００２９】
２３は空白情報データベースであり、画像を配置する過程で発生する空白情報を格納する。なお、空白情報とは、印刷レイアウトを縦方向に決定していく段階で、余白となってしまった部分である。
【００３０】
以下、図３〜図２０を参照して、本発明の複数画像印刷最適配置システムにおける複数画像印刷最適配置処理について説明する。
【００３１】
図３は、本発明の複数画像印刷最適配置システムにおける第１の制御処理手順の一例を示すフローチャートであり、本システムの全体の流れを示す。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｓ１〜ｓ７は各ステップを示す。
【００３２】
まず、アプリケーション起動指示が入力されると、ステップｓ１において、ＣＰＵ１２は、アプリケーションを起動する。そして、ステップｓ２において、ＣＰＵ１２は、図４の印刷設定画面をディスプレイ１に表示し、入力装置３からの画像設定の入力を受け付ける。ここで、印刷設定画面について説明する。
【００３３】
図４は、本発明の複数画像印刷最適配置システムにおける印刷設定画面の一例を示す図である。
【００３４】
図４において、ｆ６はシールの縦枚数を設定するための入力エリアである。ｆ１は各画像の印刷枚数を設定するための入力エリアである。ｆ２は「セット作成」ボタンであり、このボタンを押下指示することで、リストボックスｆ３に印刷セットが追加される。このとき、同じセットを複数作成したい場合は、セット数入力エリアｆ５にてセット数を設定し、「セット作成」ボタンｆ２を押下指示することで、同じ内容のセットが複数設定する事も可能である。
【００３５】
ｆ７は縦に切ることを意識してレイアウトを行う「縦切り優先レイアウト」と用紙を節約するために極力つめてレイアウトを行う「用紙節約レイアウト」の選択を行うラジオボタンである。
【００３６】
ｆ４は「印刷レイアウト」ボタンであり、このボタンを押下することにより、レイアウト結果が表示される。なお、印刷設定画面での設定内容がデータ記憶部１４に保存される。
【００３７】
以下、図３のフローチャートの説明に戻る。
【００３８】
ステップｓ２で、印刷設定画面での画像設定が入力されて「印刷レイアウト」ボタンｆ４がクリック指示されると、ＣＰＵ１２は、該印刷設定画面で設定された情報を取得してＲＡＭ１３内に格納し、ステップｓ３に処理を進める。
【００３９】
ステップｓ３にて、ＣＰＵ１２は、ステップｓ２で取得された情報に基づいて、セット印刷設定の有無を判定し、セット印刷有りと判定した場合には、ステップｓ４において、画像データ並び替え処理を実行して印刷レイアウトデータを生成し、ステップｓ５に処理を進める。なお、この画像データ並び替え処理の詳細は図６に示す。
【００４０】
一方、ステップｓ３で、ＣＰＵ１２が、セット印刷無しと判定した場合には、そのままステップｓ５に処理を進める。
【００４１】
次に、ステップｓ５では、ＣＰＵ１２は、ステップｓ４で生成された印刷レイアウトデータに基づいて図５に示すような印刷レイアウト画面をディスプレイ１に表示して、並び替え後の印刷レイアウトをユーザに提示し、ユーザからの印刷指示を待機する。ここで、印刷レイアウト画面について説明する。
【００４２】
図５は、本発明の複数画像印刷最適配置システムにおける印刷レイアウト画面の一例を示す図である。
【００４３】
図５において、ｇ１は印刷レイアウトであり、印刷セットごとに境界線が表示され、どのように配置されたかを確認することが可能である。「前ページ」ボタン８７，「次ページ」ボタンｇ８を押下指示することにより、前ページ，次ページを表示可能である。
【００４４】
ｇ６は「戻る」ボタンであり、このボタンを押下指示することにより、再度、画像選択画面（図４）に戻ることができる。ｇ４はリストボックスであり、画像選択画面（図４）で設定された印刷セットの一覧を表示する。
【００４５】
ｇ５は「印刷」ボタンであり、このボタンを押下指示することにより、ｇ１に表示されている印刷レイアウトでの印刷を実行することができる。
【００４６】
以下、図３のフローチャートの説明に戻る。
【００４７】
ステップｓ６において、ＣＰＵ１２が、「印刷」ボタンｇ５が押下されて印刷指示がなされたと判定した場合には、ステップｓ７に処理を進める。
【００４８】
そして、ステップｓ７では、レイアウト記憶部１６（ＣＰＵ１２により実行される）は、レイアウト記憶部１６が記憶する印刷レイアウトでの印刷処理を実行し、処理を終了する。
【００４９】
図６は、本発明の複数画像印刷最適配置システムにおける第２の制御処理手順の一例を示すフローチャートであり、図３のステップｓ４の画像データ並び替え処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１８に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｔ１〜ｔ４は各ステップを示し、ｔ１〜ｔ３はデータ記憶部１４の処理に対応し、ｔ４はレイアウト作成部１５の処理に対応する。
【００５０】
まず、ステップｔ１において、データ記憶部１４は、シール紙の縦枚数を取得する。
【００５１】
次に、ステップｔ２において、データ記憶部１４は、印刷設定画面で印刷セット毎に設定された画像情報（印刷する画像の組み合わせ等）および枚数情報をデータベース２４，２５に振り分ける。
【００５２】
次に、ステップｔ３において、データ記憶部１４は、データベース２４に格納した印刷セット情報をデータベース２０〜２２に振り分ける（グループ化する）データ振り分け処理を行う。このデータ振り分け処理の詳細は図８に示す。
【００５３】
次に、ステップｔ４において、レイアウト作成部１５は、ステップｔ３で振り分けられたデータに基づいて、画像配置処理を実行して印刷レイアウトデータを生成する。なお、この画像配置処理の詳細は図９に示す。そして、処理を終了する。
【００５４】
図７Ａ，図７Ｂ，図７Ｃは、データ記憶部１４がデータベース２４，２５に印刷する画像の組み合わせ、枚数等のデータ等の設定データを振り分けるイメージを説明する模式図である。なお、図中、セット６〜１４の情報は省略してある。
【００５５】
図７Ａは、ユーザが印刷設定画面（図４）で設定した画像、およびセットの一覧を表にしたものである。
【００５６】
ユーザがセット１として画像０００１，画像０００２，画像０００４，画像０００８を選択、セット２として画像０００１，画像０００２，画像０００４，画像０００８を選択、というように図７Ａの（ａ）のようにセット１５までセットを作成した場合、図６ステップｔ２の処理として、データ記憶部１４がデータベース２４に、各セットの合計枚数をそれぞれ算出し、該合計枚数とセットＩＤをセット数分格納する（図７Ｂの（ｂ））。
【００５７】
このとき、データ記憶部１４が、データベース２５には図７Ｃの（ｃ）のように、それぞれのセットＩＤに対応する画像データと枚数を格納していく。
【００５８】
図８は、本発明の複数画像印刷最適配置システムにおける第３の制御処理手順の一例を示すフローチャートであり、図６のステップｔ３のデータ振り分け処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｕ１〜ｕ８は各ステップを示し、データ記憶部１４の処理に対応する。
【００５９】
まず、ステップｕ１において、データ記憶部１４は、データベース２４から１つデータを取得し、該データの「合計枚数」が、シール紙の縦方向に印刷できる枚数（以下「ｎ」枚とする）以上の値であるか判定し、「ｎ」未満であると判定した場合には、ステップｕ５において、データ記憶部１４は、当該データをデータベース２２に格納する。そして、ステップｕ６に処理を進める。
【００６０】
一方、ステップｕ１で、当該データの「合計枚数」が「ｎ」以上であると判定した場合には、データ記憶部１４は、ステップｕ２に処理を進める。
【００６１】
そして、ステップｕ２では、データ記憶部１４は、当該データの「合計枚数」が、「ｎ」の倍数であるか判定し、「ｎ」の倍数でないと判定した場合には、ステップｕ４において、データ記憶部１４は、当該データをデータベース２１に格納する。そして、ステップｕ６に処理を進める。
【００６２】
一方、ステップｕ２で、当該データの「合計枚数」が「ｎ」の倍数であると判定した場合には、データ記憶部１４は、ステップｕ３に処理を進め、当該データをデータベース２０に格納する。そして、ステップｕ６に処理を進める。
【００６３】
そして、ステップｕ６では、データ記憶部１４は、データベース２４にあるデータが全てデータベース２０，２１，２２のいずれかに格納されたか判定し、まだ全て格納されていないと判定した場合には、ステップｕ７に処理を進め、次のデータに移動して、ステップｕ１に処理を戻す。
【００６４】
一方、ステップｕ６で、データ記憶部１４は、データベース２４にあるデータが全てデータベース２０，２１，２２のいずれかに格納されたと判定した場合には、ステップｕ８に処理を進める。
【００６５】
そして、ステップｕ８では、データ記憶部１４は、データベース２１，２２に格納されているデータをそれぞれ枚数の多い順にソートを行い、処理を終了する。
【００６６】
以上のように、データベース２４内のデータを、「合計枚数」が、シール紙の縦方向に印刷できる枚数「ｎ」の倍数である第１グループ、「合計枚数」が「ｎ」より大きい第２グループ、「合計枚数」が「ｎ」未満の第３グループにグループ分けすることができる。
【００６７】
ここで、図７Ｂを用いて、データベース２４からデータベース２０,２１,２２にデータを振り分けるイメージを説明する。
【００６８】
図８のステップｕ１，ｕ２の処理として、データベース２４に格納されたデータは、データ記憶部１４によって図７Ｂの（ｄ）,（ｅ）,（ｆ）のようにデータベース２０，２１，２２に振り分けられる。
【００６９】
ここで、データベース２１，２２では、後のレイアウト作成のために、図７Ｂの（ｇ），（ｈ）のように画像枚数の多い順で並びかえられる（図８のステップｕ８）。
【００７０】
なお、画像を表示する際は、データベース２０，２１，２２のセットＩＤをキーにして、データベース２５から画像データを取得する。
【００７１】
以下、図９〜図２０を参照して、図６のステップｔ４の画像データ配置処理について説明する。
【００７２】
なお、本実施形態では、画像配置（レイアウト）は、（１）直線かつ縦方向に切断すること、（２）切断回数を減らすこと、（３）極力無駄な空白を発生させないこと、を考慮して決定している。
【００７３】
図９は、本発明の複数画像印刷最適配置システムにおける第４の制御処理手順の一例を示すフローチャートであり、図６のステップｔ４の画像データ配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｖ１〜ｖ７は各ステップを示し、レイアウト作成部１５の処理に対応する。
【００７４】
まず、ステップｖ１において、レイアウト作成部１５は、データベース２０に格納された「合計枚数」が「ｎ」の倍数のデータのレイアウトを決定する。なお、この処理の詳細は図１０に示す。
【００７５】
次に、ステップｖ２において、レイアウト作成部１５は、データベース２１に格納されたデータで、二つのデータの「合計枚数」を合計することによって「ｎ」の倍数になるものが存在すれば、その印刷レイアウトを決定する。なお、この処理の詳細は図１２に示す。
【００７６】
次に、ステップｖ３において、レイアウト作成部１５は、ステップｖ２でデータベース２１に格納されたデータのすべての印刷レイアウト（画像配置）が決定したか否かを判定する。
【００７７】
そして、ステップｖ３で、データベース２１に格納されたデータのすべての印刷レイアウト（画像配置）が決定したと判定した場合には、レイアウト作成部１５は、ステップｖ４へ処理を進め、データベース２２のデータの印刷レイアウトを決定し、処理を終了する。なお、ｖ４の処理の詳細は図１５に示す。
【００７８】
一方、ステップｖ３で、データベース２１に格納されたデータで、まだ印刷レイアウト（画像配置）が決定していないものがあると判定した場合には、レイアウト作成部１５は、ステップｖ５へ処理を進める。
【００７９】
ステップｖ５では、レイアウト作成部１５は、データベース２１とデータベース２２のデータで、二つのデータの「合計枚数」を合計することによってｎの倍数になるものが存在すれば、その印刷レイアウトを決定する。なお、この処理の詳細は図１４に示す。
【００８０】
次に、ステップｖ６において、レイアウト作成部１５は、データベース２２のデータの印刷レイアウトを決定し（図１５）ステップｖ７に処理を進める。
【００８１】
ステップステップｖ７では、レイアウト作成部１５は、ステップｖ２およびステップｖ５で印刷レイアウトが決定しなかったデータに対して印刷レイアウトを決定する。そして、処理を終了する。なお、ステップｖ７の処理の詳細は図１９に示す。
【００８２】
以下、図１０，図１１を参照して、図９のステップｖ１のデータベース２０内の画像配置処理について説明する。
【００８３】
図１０は、本発明の複数画像印刷最適配置システムにおける第５の制御処理手順の一例を示すフローチャートであり、図９のステップｖ１のデータベース２０内の画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ａ１〜ａ５は各ステップを示し、レイアウト作成部１５の処理に対応する。
【００８４】
まず、ステップａ１において、レイアウト作成部１５は、データベース２０にデータが格納されているか判定し、１つもデータが格納されていないと判定した場合には、そのまま処理を終了する。
【００８５】
一方、ステップａ１で、データベース２０に１つ以上のデータが格納されていると判定した場合には、レイアウト作成部１５は、ステップａ２に処理を進める。
【００８６】
ステップａ２では、レイアウト作成部１５は、データベース２０のデータの先頭を検索する。そして、ステップａ３において、レイアウト作成部１５は、ステップａ２で検索されたデータの画像のレイアウトを図１１に示す『方法Ａ』で決定し、配置するように印刷レイアウトデータを生成する（以下、単に配置すると表記する）。ここで、『方法Ａ』の詳細は図１１を用いて説明する。
【００８７】
図１１は、本実施形態のレイアウト方法の１つである『方法Ａ』の一例を示す模式図である。なお、図中〔Ｘ（ａ，ｂ，ｃ，ｄ，ｅ），・・・〕は、データベース内のデータ情報を示す。また、「Ｘ」は、データ内の画像枚数を示す。さらに、「ａ」，「ｂ」，「ｃ」，「ｄ」，「ｅ」は、画像名を示す。また、「シール紙の縦に配置できる枚数」は「５枚」を例にして図示してある。
【００８８】
『方法Ａ』は、データの"合計枚数"がｎの倍数の際に選択されるレイアウト方法である。
【００８９】
始めにシール紙の縦方向に配置出来る数の倍数の"合計枚数"を持つデータを並べてしまうことによって、分配時に、直線でかつ縦方向に切断できる部分を多くし、さらに切断回数を少なくすることを実現している。
【００９０】
例えば、データベース２０にデータが１つあり、その"合計枚数"が５枚であった場合、画像は、図１１（ａ）のように、基準となる開始位置（図１１では、例として左上としている）から１，２，３，・・・の順で配置を行う。
【００９１】
データベース２０の中に複数のデータがあった場合、例えば、２つのデータがあり、それぞれ"合計枚数"が５枚,２０枚であった場合は、図１１（ｂ）のように、データベース２０に登録されている順で、配置を行う。
【００９２】
なお、画像の配置順序は、図１１（ｃ）に示した通りである。
【００９３】
以下、図１０のフローチャートの説明に戻る。
【００９４】
図１０のステップａ３の処理が終了すると、レイアウト作成部１５は、データベース２０に印刷レイアウトの決定していないデータ（次のデータ）が存在するかを判定し、存在すると判定した場合には、ステップａ５で次のデータに移動し、ステップａ３の処理に戻る。
【００９５】
一方、ステップａ３で、データベース２０に印刷レイアウトの決定していないデータ（次のデータ）が存在しないと判定した場合には、そのまま処理を終了する。
【００９６】
以下、図１２，図１３を参照して、図９のステップｖ２のデータベース２１内にあるデータ同士で合計画像数がｎの倍数になるものの画像配置処理について説明する。
【００９７】
図１２は、本発明の複数画像印刷最適配置システムにおける第５の制御処理手順の一例を示すフローチャートであり、図９のステップｖ２のデータベース２１内にあるデータ同士で合計画像数がｎの倍数になるものの画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｂ１〜ｂ８は各ステップを示し、レイアウト作成部１５の処理に対応する。
【００９８】
まず、ステップｂ１において、レイアウト作成部１５は、データベース２１にデータが格納されているか判定し、１つのデータも格納されていないと判定した場合には、そのまま処理を終了する。
【００９９】
一方、ステップｂ１において、データベース２１に１つ以上のデータが格納されていると判定した場合には、レイアウト作成部１５は、ステップｂ２に処理を進める。
【０１００】
ステップｂ２では、レイアウト作成部１５は、データベース２１のデータの先頭を検索する。そして、ステップｂ３において、レイアウト作成部１５は、ステップｂ２で検索されたデータの"合計枚数"，後述するステップｂ８で検索されたデータの"合計枚数"と合計してｎ（シール紙の縦方向に印刷できる枚数）の倍数になる"合計枚数"を保持するデータを検索する。
【０１０１】
次に、ステップｂ４において、レイアウト作成部１５は、ステップｂ３で合計枚数がｎの倍数になる"合計枚数"を保持するペアとなるデータが検索されたかどうか判定し、ペアとなるデータが検索された（存在する）と判定した場合には、ステップｂ５に処理を進める。
【０１０２】
ステップｂ５では、レイアウト作成部１５は、レイアウトを『方法Ｂ１』で決定し、配置する。ここで、『方法Ｂ１』の詳細は図１３を用いて説明する。
【０１０３】
図１３は、本実施形態のレイアウト方法の１つである『方法Ｂ１』，『方法Ｂ２』の一例を示す模式図である。なお、図中〔Ｘ（ａ，ｂ，ｃ，ｄ，ｅ），・・・〕は、データベース内のデータ情報を示す。また、「Ｘ」は、データ内の画像枚数を示す。さらに、「ａ」，「ｂ」，「ｃ」，「ｄ」，「ｅ」は、画像名を示す。また、「シール紙の縦に配置できる枚数」は「５枚」を例にして図示してある。
【０１０４】
『方法Ｂ１』は、データベース２１にあるデータ同士で、"合計枚数"を合計するとシール紙の縦方向に配置できる数「ｎ」の倍数になるものがあった場合に選択されるレイアウト方法である。
【０１０５】
上述した『方法Ａ』で並べたデータは全て"合計枚数"がｎの倍数であるために、『方法Ｂ１』で画像を配置する際の、開始位置は常に、新しい列又は行になっている。
【０１０６】
そこで、２つの"合計枚数"を合わせた枚数がｎの倍数になるものを配置していくことによって、段になってしまう部分を極力少なくし、かつ、次に配置されるであろう画像に対しても、直線で切断でき、かつ切断回数を少なくすることを意識した配置になっている。
【０１０７】
例えば、データベース２１に複数のデータがあり、その中の１つのデータが１１枚の"合計枚数"を保持しており、図１２のステップｂ３で、これの"合計枚数"と合計することによって、５の倍数になるデータ（９枚の"合計枚数"を保持する）を検索した場合、図１３のように、１つ目のデータの画像をまず配置していき、次にステップｂ３で検索された画像を配置する。
【０１０８】
なお、『方法Ｂ２』の詳細は後述する。
【０１０９】
以下、図１２のフローチャートの説明に戻る。
【０１１０】
図１２のステップｂ５の処理が終了すると、レイアウト作成部１５は、ステップｂ７に処理を進める。
【０１１１】
一方、ステップｂ４で、ステップｂ３で合計枚数がｎの倍数になる"合計枚数"を保持するペアとなるデータが検索されなかったと判定した場合には、レイアウト作成部１５は、ステップｂ６に処理を進める。
【０１１２】
ステップｂ６では、レイアウト作成部１５は、レイアウトを『方法Ｂ２』または『方法Ｅ』で行うことを決定するフラグをＲＡＭ１３内にデータ毎にたてる（ここでは配置は行わない）。そして、ステップｂ７に処理を進める。なお、『方法Ｂ２』『方法Ｅ』の詳細は後述する。
【０１１３】
次に、ステップｂ７では、レイアウト作成部１５は、データベース２１に印刷レイアウト及び印刷レイアウト方法の決定していないデータが存在するか判定して、存在すると判定した場合には、ステップｂ８で次のデータに移動し、ステップｂ３に処理を戻す。
【０１１４】
一方、ステップｂ７で、データベース２１に印刷レイアウト及び印刷レイアウト方法の決定していないデータが存在しないと判定した場合には、レイアウト作成部１５は、そのまま処理を終了させる。
【０１１５】
以下、図１４を参照して、図９のステップｖ５のデータベース２１のデータとデータベース２２のデータで合計画像数がｎの倍数になるものの画像配置処理について説明する。
【０１１６】
図１４は、本発明の複数画像印刷最適配置システムにおける第７の制御処理手順の一例を示すフローチャートであり、図９のステップｖ５のデータベース２１のデータとデータベース２２のデータで合計画像数がｎの倍数になるものの画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１８に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｃ１〜ｃ７は各ステップを示し、レイアウト作成部１５の処理に対応する。
【０１１７】
まず、ステップｃ１において、レイアウト作成部１５は、データベース２１でまだ印刷レイアウトが決定していないものの中での先頭データを検索する。
【０１１８】
そして、ステップｃ２において、レイアウト作成部１５は、ステップｃ１で検出されたデータ，後述するステップｃ７で検索されたデータの"合計枚数"と合計して"合計枚数"がｎ（シール紙の縦方向に印刷できる枚数）の倍数になるデータをデータベース２２の中から検索する。
【０１１９】
次に、ステップｃ３において、レイアウト作成部１５は、合計画像数がｎの倍数になるデータが存在するか否かを判定し、存在すると判定した場合には、ステップｃ４において、レイアウト作成部１５は、ステップｃ１，ステップｃ７で検索されたデータとステップｃ２で検索されたデータの画像の印刷レイアウトを『方法Ｂ２』で決定し、配置する。ここで、『方法Ｂ２』の詳細を図１３を用いて説明する。
【０１２０】
『方法Ｂ２』は、図１２のステップｂ４でペアとなるデータを検索することが出来なかったが、図１４のステップｃ２でデータベース２２のデータ（シール紙の縦枚数未満の"合計枚数"を持つもの）内からペアを検索することが出来た場合に選択されるレイアウト方法である。
【０１２１】
例えば、データベース２１にまだレイアウトの決定してない９枚の"合計枚数"を保持するデータがあり、図１４のステップｃ２で、これの"合計枚数"と合計することによって、５の倍数になるデータ（１枚の"合計枚数"を保持する）を検索した場合、図１３の『方法Ｂ２』に示すように、１つ目のデータの画像をまず配置していき、次に図８ステップｃ２で検索された画像を配置する。
【０１２２】
以下、図１４のフローチャートの説明に戻る。
【０１２３】
図１４のステップｃ４の処理が終了すると、レイアウト作成部１５は、ステップステップｃ６に処理を進める。
【０１２４】
一方、ステップｃ３で、合計画像数がｎの倍数になるデータが存在しなかったと判定した場合には、レイアウト作成部１５は、ステップｃ５に処理を進める。
【０１２５】
ステップステップｃ５で、レイアウト作成部１５は、ステップｃ１及びステップｃ７で検索されたデータの画像を『方法Ｅ』の印刷レイアウト方法で印刷レイアウトすることを決定し、データベース２１内にフラグをたてる。（ここでは配置は行わない）。そして、ステップｃ６に処理を進める。なお、『方法Ｅ』の詳細は後述する。
【０１２６】
ステップｃ６では、レイアウト作成部１５は、データベース２１に印刷レイアウト及び印刷レイアウト方法の決定していないデータが存在するか判定して、存在すると判定した場合には、ステップｃ７において、次のデータに移動し、ステップｃ２に処理を戻す。
【０１２７】
一方、ステップｃ６で、データベース２１に印刷レイアウト及び印刷レイアウト方法の決定していないデータが存在しないと判定した場合には、そのまま処理を終了させる。
【０１２８】
以下、図１５〜図１８を参照して、図９のステップｖ４又はｖ６のデータベース２２内の画像配置処理について説明する。
【０１２９】
図１５は、本発明の複数画像印刷最適配置システムにおける第８の制御処理手順の一例を示すフローチャートであり、図９のステップｖ４又はｖ６のデータベース２２内の画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｄ１〜ｄ１７は各ステップを示し、レイアウト作成部１５の処理に対応する。
【０１３０】
まず、ステップｄ１において、レイアウト作成部１５は、データベース２２にデータが格納されているか判定し、１つのデータも格納されていないと判定した場合には、そのまま処理を終了する。
【０１３１】
一方、ステップｄ１において、データベース２２に１つ以上のデータが格納されていると判定した場合には、レイアウト作成部１５は、ステップｄ２に処理を進める。
【０１３２】
ステップｄ２では、レイアウト作成部１５は、レイアウト方法の設定が「用紙節約レイアウト」になっているかを判定する。そして、「用紙節約レイアウト」になっていないと判定した場合には、レイアウト作成部１５は、ステップｄ１１に処理を進める。
【０１３３】
ステップｄ１１では、レイアウト作成部１５は、「データベース２２のみにデータが存在する、かつシール紙の残り列数がデータの数以上」であるか否かを判定する。そして、「データベース２２のみにデータが存在する、かつシール紙の残り列数がデータの数以上」であると判定した場合には、レイアウト作成部１５は、ステップｄ１２に処理に進め、データを列の頭から『方法Ｄ』で配置し、ステップｄ８に処理を進める。『方法Ｄ』の詳細は後述する図１８で示す。
【０１３４】
一方、ステップｄ１１で、「データベース２２のみにデータが存在する、かつ、シール紙の残り列数がデータの数以上」でないと判定した場合には、レイアウト作成部１５は、ステップｄ３に処理を進める。
【０１３５】
一方、ステップｄ２で、レイアウト方法の設定が「用紙節約レイアウト」になっていると判定した場合には、レイアウト作成部１５は、ステップｄ３に処理を進める。
【０１３６】
ステップｄ３では、レイアウト作成部１５は、データベース２２で印刷レイアウトの決定していないデータの中で、一番先頭のデータの印刷レイアウトを『方法Ｃ』で決定し、配置する。詳細は後述する図１６Ａ（ａ）（ｂ）で示す。
【０１３７】
そして、ステップｄ４において、レイアウト作成部１５は、ステップｄ３で配置したデータの"合計枚数"とシール紙の縦に配置できる画像数から、あと縦に何枚配置できるかを算出する。
【０１３８】
そして、ステップｄ５において、レイアウト作成部１５は、算出された縦に配置できる枚数以下の画像数を保持するデータが、データベース２２に存在するかを検索・判定する。そして、算出画像枚数以下の画像を保持するデータが存在すると判定した場合には、レイアウト作成部１５は、ステップｄ６において、検索された画像のレイアウトを『方法Ｃ』で決定し、配置する。詳細は後述する図１６Ａ（ａ）（ｂ）で示す。
【０１３９】
そして、ステップｄ７において、レイアウト作成部１５は、ステップｄ６で配置したデータの画像数から、縦方向に印刷できる枚数が「０」枚になったかどうか判定する。そして、「０」枚になったと判定した場合には、レイアウト作成部１５は、極力直線に印刷レイアウトを決定するために、空白情報を使用することはないため、ステップｄ８において、データベース２３内の空白情報を破棄し、ステップｄ９に移行する。詳細は後述する図１６Ｂ（ｄ）で示す。
【０１４０】
ステップｄ９では、レイアウト作成部１５は、データベース２２に配置が決定していないデータが存在するか否かを判定する。そして、存在すると判定した場合には、レイアウト作成部１５は、ステップｄ１０において、次のデータに移動し、ステップｄ２に処理を戻す。
【０１４１】
一方、ステップｄ７で、縦方向に印刷できる枚数が「０」枚になっていないと判定した場合には、レイアウト作成部１５は、ステップｄ５に処理を戻す。
【０１４２】
一方、ステップｄ５で、算出された縦に配置できる枚数以下の画像数を保持するデータが、データベース２２に存在しないと判定した場合には、レイアウト作成部１５は、ステップｄ１３に処理を戻進める。
【０１４３】
ステップｄ１３では、レイアウト作成部１５は、データベース２３に、現在保持している"空白情報"に今回新たに空白になった枚数を記録する。詳細は後述する図１６Ａ（ｃ）で示す。データベース２３の格納イメージの詳細は後述する図１７で示す。
【０１４４】
次に、ステップｄ１４において、レイアウト作成部１５は、ステップｄ１３で加算された空白の合計数以下の画像数を持つデータが存在するかデータベース２２を検索して判定する。そして、存在すると判定した場合には、レイアウト作成部１５は、ステップｄ１５において、データベース２３の空白情報のソートを行う。詳細は後述する図１７(4)(5)で示す。
【０１４５】
その後、ステップｄ１６において、レイアウト作成部１５は、ステップｄ１４で検索されたデータの印刷レイアウトを『方法Ｃ』で決定し、配置する。詳細は後述する図１６Ｃ（ｆ）で示す。
【０１４６】
そして、ステップｄ１７において、レイアウト作成部１５は、現在データベース２３で記憶している空白情報を破棄し、ステップｄ９に処理を移行させる。詳細は後述する図１６Ｃ（ｆ）(6)で示す。なお、一度空白を使用して印刷レイアウトを決定した場合は、その時点で空白情報を破棄し、極力直線かつ縦方向に印刷レイアウトを決定するために、次の画像は、新しい列の一番上から配置するようにしている。
【０１４７】
一方、ステップｄ１４で、ステップｄ１３で加算された空白の合計数以下の画像数を持つデータがデータベース２２に存在しないと判定した場合には、レイアウト作成部１５は、処理をステップｄ９に移行させる。
【０１４８】
また、ステップｄ９で、データベース２２に配置が決定していないデータが存在しないと判定した場合には、レイアウト作成部１５は、そのまま処理を終了させる。
【０１４９】
ここで、『方法Ｃ』の詳細を図１６を用いて説明する。
【０１５０】
図１６Ａ〜図１６Ｃは、本実施形態のレイアウト方法の１つである『方法Ｃ』の一例を示す模式図である。なお、図中〔Ｘ（ａ，ｂ，ｃ，ｄ，ｅ），・・・〕は、データベース内のデータ情報を示す。また、「Ｘ」は、データ内の画像枚数を示す。さらに、「ａ」，「ｂ」，「ｃ」，「ｄ」，「ｅ」は、画像名を示す。また、「シール紙の縦に配置できる枚数」は「５枚」を例にして図示してある。
【０１５１】
『方法Ｃ』は、データベース２２のデータのレイアウト方法である。ここでは、『シール紙の縦に配置できる枚数は５枚』を例にして説明を行う。
【０１５２】
例えば、図１５でステップｄ５，ｄ６の順でフローが進んでいった場合の例が図１６Ａ（ａ）である。
【０１５３】
データベース２２にレイアウトが決定していないデータが複数あり、さらに、その中で一番多い画像を保持するデータの画像枚数(画像枚数：３枚)との合計値がシール紙の縦枚数と同じになる画像数を保持するデータ(画像枚数：２枚)があった場合、図１６Ａ（ａ）のようにレイアウトを行っている。
【０１５４】
次に、図１５で２つのデータの画像を配置した際に、縦方向にまだ画像を配置でき、さらにその縦方向に配置できる枚数と同等の画像数を保持するデータがあった場合の例が、図１６Ａ（ｂ）である。
【０１５５】
データベース２２にレイアウトが決定していないデータが複数あり、一番多い画像を持つデータ(画像枚数：２枚)、次に多い画像数を持つデータ(画像枚数：２枚)という順序で画像を配置していった際に、図１５ステップｄ４で算出された枚数と同等の画像数を保持するデータ(画像枚数：１枚)があった場合、図１６Ａ（ｂ）のようにレイアウトを行っている。
【０１５６】
次に、空白情報を利用した配置方法について以下に例を利用して説明する。
【０１５７】
『方法Ｃ』では、まず、縦方向に並べられるだけ並べ、縦にまだ、入る場所はあるが、縦にちょうど入りきる画像数を保持するデータがない場合は、図１５ステップｄ１３にて、図１５ステップｄ４で算出された数を空白情報に枚数を追加する。レイアウトをしていく段階で、空白情報となっている部分がデータの画像数以上あるとみなされた場合、図１５ステップｄ１６にて、空白部分を検知してレイアウトを行う。
【０１５８】
空白情報部分に、画像を配置する際は、空白の左下から横方向に配置していく。たとえば、４個の空白情報が図１６Ｃ（ｆ）(5)のようにある場合、空白情報は図の１，２，３，４の順に使われる。この時、配置するデータの画像数が、３枚以内であれば、直線で切断することが可能である。これは、データを大きい順に配置してきたために実現できている。４枚であれば、次の1つ上の段に配置していく。なお、一度空白情報部分に画像を配置したら、図１５ステップｄ１７にて、空白情報は０枚とする。なお、図中、網掛け部分を空白情報とする。
【０１５９】
図１６Ａ（ｃ）に示す例のように、すべてのデータが２枚ずつの画像数であるために、縦方向にぴったり配置することはできない(図１６Ａ（ｃ）(2)，(3) ，(4))。そのため、数回データを配置していく過程で、空白情報となった部分の合計値があるデータの画像数以下になった場合、空白を利用して画像の配置を行っている（図１６Ａ（ｃ）(5))。この配置により、紙を無駄にすることなく、直線かつ回数を少なく切断することを実現している。
【０１６０】
図１６Ｂ（ｄ）に示す例のように、処理の際に空白が途切れてしまった際は、その空白は利用しない（図１６Ｂ（ｄ）(3)）。なお、これは、シール紙に印刷できる画像枚数に満たない画像数の印刷をユーザが要求した際に発生するため、紙の無駄ということにはならない。
【０１６１】
図１６Ｂ（ｅ）では、数回データを配置してく過程で、空白情報となった部分の合計値があるデータの画像数以下になった場合が、横方向にはすべて配置できない場合の例を示している。図１６Ａ（ｃ）と同様に空白情報を利用し配置を行うが、横方向にはすべて印刷できないために、次の段の空白も利用している。これは、ユーザが指定した総画像枚数により必ず発生するであろう空白数よりも多い空白を発生させないためである。
【０１６２】
図１６Ｃ（ｆ）では、数回データを配置してく過程で、空白情報となった部分の合計値があるデータの画像数以下になった場合の空白情報への画像の配置方法の例を示している。
【０１６３】
この際、図１６Ｃ（ｆ）(6)のように下から配置していき、その上の段の空白を残す配置にすることによって、ユーザが指定した総画像枚数により必ず発生するであろう空白数紙以外には、紙を無駄にする空白を発生させることなく、かつ直線で切断することを可能にしたレイアウトを実現している。
【０１６４】
図１７は、データベース２３に空白情報を格納する流れを説明する模式図である。
【０１６５】
データベース２３は、空白ＩＤ，縦（空白の縦方向の位置），横（空白の横方向の位置）の3つの情報を保持する。
【０１６６】
図１６Ｃ（ｆ）で空白と判定されたデータをデータベース２３に格納する手順を例として説明する。
【０１６７】
図１７(1)の段階では、図１７（ａ）のように、まだデータベース２３にはデータが入っていない。
【０１６８】
図１７(2)で、空白情報が出来た時点で、図１７（ｂ）のように、空白ＩＤに１、縦に５、横にＣというようにそれぞれ各データがデータベース２３に格納される。
【０１６９】
図１７(3)，(4)とレイアウトが決まり、空白情報が発生していくと、図１７（ｃ），（ｄ）のように、データベース２３にデータが格納されていく。データベース２３内のデータは、空白情報が発生し、データベース２３に新しいデータが格納された時点で（図１７(4)）、縦の値をキーに降順でデータを並び替える。
【０１７０】
連続した空白情報があった場合、空白情報の左端から順にデータの配置を行う。データベース２３内に格納されているデータは、空白に画像がレイアウトされた時点で破棄される。
【０１７１】
ここで、『方法Ｄ』の詳細を図１８を用いて説明する。
【０１７２】
図１８は、本実施形態のレイアウト方法の１つである『方法Ｄ』の一例を示す模式図である。なお、図中〔Ｘ（ａ，ｂ，ｃ，ｄ，ｅ），・・・〕は、データベース内のデータ情報を示す。また、「Ｘ」は、データ内の画像枚数を示す。さらに、「ａ」，「ｂ」，「ｃ」，「ｄ」，「ｅ」は、画像名を示す。また、「シール紙の縦に配置できる枚数」は「５枚」を例にして図示してある。
【０１７３】
『方法Ｄ』は、縦切り優先レイアウト方法設定時、データベース２２にのみにデータが存在する、かつシール紙の残り列がデータ数以上の時のレイアウト方法である。
【０１７４】
画像は、図１８のように、データを１列に配置し、次のデータは次の列に配置する。このことにより,ユーザはシールの切断を容易に行うことができる。
【０１７５】
以下、図１９を参照して、図９のステップｖ７のデータベース２１で画像配置の決定していないデータに対しての画像配置処理について説明する。
【０１７６】
図１９は、本発明の複数画像印刷最適配置システムにおける第９の制御処理手順の一例を示すフローチャートであり、図９のステップｖ７のデータベース２１で画像配置の決定していないデータに対しての画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｅ１〜ｅ４は各ステップを示し、レイアウト作成部１５の処理に対応する。
【０１７７】
まず、ステップｅ１において、レイアウト作成部１５は、データベース２１でまだ印刷レイアウトの決定していないものの先頭データを検索する。
【０１７８】
次に、ステップｅ２において、レイアウト作成部１５は、ステップｅ１で検索されたデータの画像の印刷レイアウトを『方法Ｅ』で決定し、配置する。ここで、『方法Ｅ』の詳細を図２０を用いて説明する。
【０１７９】
図２０は、本実施形態のレイアウト方法の１つである『方法Ｅ』の一例を示す模式図である。
【０１８０】
『方法Ｅ』は、データベース２１のデータで、まだ印刷レイアウトの決定していないもののレイアウト方法である。
【０１８１】
画像は、図２０（ａ）のように、前記、シール紙の縦枚数未満の画像数を保持するデータの後から配置を行っていく。画像の配置順序は、図２０（ｂ）の通りである。
【０１８２】
以下、図１９のフローチャートの説明に戻る。
【０１８３】
ステップｅ２の処理が終了すると、レイアウト作成部１５は、ステップｅ３において、データベース２１にまだ印刷レイアウトが決定していないものが存在するかどうか検索し、存在すると判定した場合には、ステップｅ４において、次のデータに移動し、ステップｅ２に処理を戻す。
【０１８４】
一方、ステップｅ３で、データベース２１にもう印刷レイアウトが決定していないデータは存在しないと判定した場合には、レイアウト作成部１５は、そのまま処理を終了する。
【０１８５】
なお、本実施形態では、縦方向に切断するようにレイアウト制御する構成について説明したが、横方向に切断するようにレイアウト制御するように構成してもよい。即ち、上記各制御の「縦」と「横」を反対にして、レイアウト処理するように構成してもよい。
【０１８６】
以上示したように、本実施形態では、（１）直線かつ一方向（例えば、縦方向）に切断すること、（２）切断回数を減らすこと、（３）極力無駄な空白を発生させないこと、を考慮したレイアウトを決定することができる。
【０１８７】
具体的には、図２１に示すようになる。
【０１８８】
図２１は、従来のレイアウトと本発明のレイアウトを比較した模式図である。
【０１８９】
従来では、（ａ−１），（ｂ−２），（ｃ−２）のように、切断回数が多かったレイアウトが、本発明では、（ａ−２），（ｂ−３）のように、直線かつ縦方向に切断可能にし、切断回数を減らしたレイアウトに改善された。
【０１９０】
また、レイアウト作成部１５は、セット単位で線を引いたり、番号を振ったりするように構成してもよい。これによりユーザが視覚的に切断部分を判断することが可能である。
【０１９１】
さらに、レイアウト作成部１５は、セット内の印刷順序をユーザに指定させ、該ユーザにより指定された印刷順序でセット内の画像を印刷するように構成してもよい。
【０１９２】
従って、ユーザにより指定された各セットを、極力一方向かつ直線で、回数を少なく切断することを考慮して、また極力無駄な空白を発生させないように、自動で（ユーザによる手作業のレイアウト操作無しに）レイアウトすることができる。そのため、複数人数に様々な画像を配布する際などでも、複雑な切断を行う必要が無くなる等の効果を奏する。
【０１９３】
〔第２実施形態〕
以下、本発明の第２実施形態の構成について説明する。
【０１９４】
なお、本実施形態でも上述の第１実施形態と同様に、画像配置（レイアウト）は、（１）直線かつ縦方向に切断すること、（２）切断回数を減らすこと、（３）極力無駄な空白を発生させないこと、を考慮して決定している。
【０１９５】
〔システム構成〕
図２２は、本発明の第２実施形態を示す複数画像印刷最適配置システムの構成の一例を示すブロック図であり、図１に示した第１実施形態と同一のものには同一の符号を付してある。
【０１９６】
データ記憶部２７は、図４に示した印刷設定画面で設定されたシール用紙の縦枚数のデータを記憶するとともに、印刷設定画面で印刷セット毎に設定された画像情報および枚数情報をデータベース２５，２６に振り分ける。
【０１９７】
レイアウト作成部２８は、データベース２５に振り分けられた選択画像情報および、データベース２６に振り分けられた印刷セット情報に基づいて、画像データを最適にレイアウトした印刷印刷レイアウトデータを作成する。
【０１９８】
レイアウト記憶部１６は、レイアウト作成部２８で作成された印刷印刷レイアウトデータを記憶し、図５に示した印刷レイアウト画面としてディスプレイ１に表示制御する。また、レイアウト記憶部１６は、印刷レイアウト画面でユーザが確認後、印刷指示がなされると、前記印刷レイアウトでの印刷をプリンタ２により実行するように制御する。
【０１９９】
なお、データ記憶部２７，レイアウト作成部２８，レイアウト記憶部１６は、ＣＰＵ１２がハードディスク（ＨＤ）１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。
【０２００】
上述のデータベース２３，２５，２６は、ＨＤ１９に保持されている。ここで、図２３を参照して、データベース２６の説明を行う。
【０２０１】
図２３は、図２２に示したデータベース２６のデータイメージ及び画像配置結果イメージを示す図である。
【０２０２】
図２３において、（ａ），（ｂ）は、データベース２６のデータイメージを示すものである。
【０２０３】
（ａ），（ｂ）において、データベース２６は本実施形態における印刷セットデータベースであり、図４に示した印刷設定画面において、ユーザが印刷セット毎に選択した画像データの合計枚数を、各セットに振られたセットＩＤに紐付けて格納するためのものである。
【０２０４】
なお、この印刷セットデータベース２６は、各セットの画像が配置されたか否かを示す配置フラグも格納する。なお、（ａ）は画像配置前の状態に対応し、全てのセットの配置フラグが配置されていない状態を示す「０」となっている。また、（ｂ）は画像配置中の状態に対応し、一部のセットの配置フラグが、配置された状態を示す「１」に変更されている。
【０２０５】
なお、（ｃ）は、（ａ），（ｂ）に示す印刷セットデータベース２６に基づいて本実施形態の画像配置処理により実際に画像配置された画像配置結果イメージに対応するものである。
【０２０６】
〔画像データ並び替え処理〕
以下、図２４〜図３２を参照して、本発明の第２実施形態を示す複数画像印刷最適配置システムにおける画像データ並び替え処理について説明する。
【０２０７】
図２４は、本発明の複数画像印刷最適配置システムにおける第１０の制御処理手順の一例を示すフローチャートであり、図３に示したステップｓ４の画像データ並び替え処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１８に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｋ１〜ｋ４は各ステップを示し、ｋ１，ｋ２はデータ記憶部２７の処理に対応し、ｋ３はレイアウト作成部２８の処理に対応する。
【０２０８】
まず、ステップｋ１において、データ記憶部２７は、シール紙の縦枚数を取得する。
【０２０９】
次に、ステップｋ２において、データ記憶部２７は、印刷設定画面で印刷セット毎に設定された画像情報（印刷する画像の組み合わせ等）および枚数情報をデータベース２５，２６に振り分ける。
【０２１０】
次に、ステップｋ３において、レイアウト作成部２８は、ステップｋ２で振り分けられたデータに基づいて、画像配置処理を実行する。なお、この画像配置処理の詳細は図２５に示す。そして、処理を終了する。
【０２１１】
〔画像配置処理〕
以下、図２５〜図３２を参照して、図２４のステップｋ３の画像配置処理について説明する。
【０２１２】
図２５は、本発明の複数画像印刷最適配置システムにおける第１１の制御処理手順の一例を示すフローチャートであり、図２４のステップｋ３の画像配置処理に対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｐ１〜ｐ６は各ステップを示し、レイアウト作成部２８の処理に対応する。
【０２１３】
まず、ステップｐ１において、レイアウト作成部２８は、ＲＡＭ１３内に確保される仮想画像縦数（現在の縦数）ｃにユーザに設定された縦数（シール紙の縦方向に印刷できる枚数（以下「ｎ」枚とする））を設定する。
【０２１４】
次に、ステップｐ２において、レイアウト作成部２８は、仮想画像縦数ｃが設定縦数ｎの半分よりも大きいか否かを判定し、仮想画像縦数ｃが設定縦数ｎの半分よりも大きいと判断した場合には、ステップｐ3に処理を進める。
【０２１５】
ステップｐ３では、レイアウト作成部２８は、データ単体配置フローを実行する。なお、データ単体配置フローの詳細は後述する図２６に示す。
【０２１６】
次に、ステップｐ４において、レイアウト作成部２８は、データ組み合わせ配置フローを実行する。なお、データ組み合わせ配置フローの詳細は後述する図２８に示す。
【０２１７】
次に、ステップｐ５において、レイアウト作成部２８は、仮想画像縦数ｃを１減算し、ステップｐ２に処理を戻す。
【０２１８】
そして、ステップｐ２において、仮想画像縦数ｃが設定縦数ｎの半分よりも大きくないと判断した場合には、ステップｐ６に処理を進める。
【０２１９】
ステップｐ６では、レイアウト作成部２８は、残データ配置フローを実行する。なお、残データ配置フローの詳細は後述する図２９に示す。
【０２２０】
そして、ステップｐ６の残データ配置フローが終了すると、レイアウト作成部２８は、処理を終了する。
【０２２１】
〔データ単体配置フロー〕
図２６は、本発明の複数画像印刷最適配置システムにおける第１２の制御処理手順の一例を示すフローチャートであり、図２５のステップｐ３のデータ単体配置フローに対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｒ１〜ｒ１０は各ステップを示し、レイアウト作成部２８の処理に対応する。
【０２２２】
まず、ステップｒ１において、レイアウト作成部２８は、データベース２６に未配置のデータが存在するか否かを判定し、存在しないと判断した場合には、本データ単体フローを終了する。
【０２２３】
一方、ステップｒ１で、データベース２６に未配置のデータが存在すると判断した場合には、レイアウト作成部２８は、ステップｒ２に処理を進める。
【０２２４】
ステップｒ２では、レイアウト作成部２８は、データベース２６の未配置の先頭データを取得し、ＲＡＭ１３内に格納する。
【０２２５】
次に、ステップｒ３において、レイアウト作成部２８は、ステップｒ２で取得したデータが、仮想画像縦数ｃの倍数の画像枚数を保持するデータか否かを判定し、仮想画像縦数ｃの倍数の画像枚数を保持するデータでないと判断した場合には、そのままステップｒ９に処理を進める。
【０２２６】
一方、ステップｒ３で、ステップｒ２で取得したデータが、仮想画像縦数ｃの倍数の画像枚数を保持するデータであると判断した場合には、ステップｒ４に処理を進め、該データを碁盤状に分割された画像印刷領域に配置するように印刷レイアウトデータを生成する（以下、単に配置すると表記する）。
【０２２７】
次に、ステップｒ５において、レイアウト作成部２８は、ステップｒ４で配置したデータベース２６の配置したデータの配置完了フラグを立てる（「１」に変更する）。
【０２２８】
次に、ステップｒ６において、レイアウト作成部２８は、仮想画像縦数ｃがユーザに設定された縦数ｎと異なるか否かを判定し、ｃがｎと異ならない（ｃがｎが同じ）と判断した場合には、そのままステップｒ９に処理を進める。
【０２２９】
一方、ステップｒ６において、レイアウト作成部２８は、仮想画像縦数ｃがユーザに設定された縦数ｎと異なると判断した場合には、ステップｒ７に処理を進める。
【０２３０】
そして、ステップｒ７では、レイアウト作成部２８は、ステップｒ４のデータ配置で発生した空白を空白データベース２３に登録する。
【０２３１】
次に、ステップｒ８において、レイアウト作成部２８は、空白配置フローを実行する。なお、空白配置フローの詳細は後述する図２７に示す。
【０２３２】
次に、ステップｒ９において、レイアウト作成部２８は、データベース２６から未配置の次のデータを取得する。
【０２３３】
次に、ステップｒ１０において、レイアウト作成部２８は、データベース２６の末尾に達した（即ち、ｒ９で未配置の次のデータを取得できなかった）か否かを判定し、未だ末尾に達していないと判断した場合には、ステップｒ３に処理を戻す。
【０２３４】
一方、ステップｒ１０で、データベース２６の末尾に達したと判断した場合には、本データ単体配置フローを終了する。
【０２３５】
このデータ単体配置フローでは、ｎが「５」の場合、ｃ＝ｎ（即ち「５」）の状態では、図２３（ａ）のセットＩＤが１０，５，１５，７，８の画像データが、図２３（ｃ）の２３０１，２３０１，２３０３，２３０４，２３０５のように配置されることになる。
【０２３６】
また、ｃ＝ｎ−１（即ち「４」）の状態では、図２３（ａ）のセットＩＤが９の画像データが、図２３（ｃ）の２３１０のように配置されることになる。
【０２３７】
さらに、ｃ＝ｎ−２（即ち「３」）の状態では、図２３（ａ）のセットＩＤが６の画像データが、図２３（ｃ）の２３１１のように配置されることになる。
【０２３８】
〔空白配置フロー〕
図２７は、本発明の複数画像印刷最適配置システムにおける第１３の制御処理手順の一例を示すフローチャートであり、図２６のステップｒ８，後述する図２８のステップｈ９の空白配置フローに対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｉ１〜ｉ５は各ステップを示し、レイアウト作成部２８の処理に対応する。
【０２３９】
まず、ステップｉ１において、レイアウト作成部２８は、データベース２６から空白データベース２３に配置できる画像枚数を保持するデータを検索する。
【０２４０】
次に、ステップｉ２において、レイアウト作成部２８は、ステップｉ１で空白に配置できるデータが検索された（取得できた）か否かを判定し、取得できなかったと判断した場合には、本空白配置フローを終了する。
【０２４１】
一方、ステップｉ２で、ステップｉ１で空白に配置できるデータが検索された（取得できた）と判断した場合には、ステップｉ３に処理を進める。
【０２４２】
次に、ステップｉ３では、レイアウト作成部２８は、ステップｉ１で検索（取得）されたデータを画像印刷領域に配置する。
【０２４３】
次に、ステップｉ４において、レイアウト作成部２８は、データベース２６内のステップｉ３で配置したデータの配置完了フラグを立てる（「１」に変更する）。
【０２４４】
次に、ステップｉ５において、レイアウト作成部２８は、ステップｉ３でデータが配置された空白データを空白データベース２３から削除し、本空白配置フローを終了する。
【０２４５】
〔データ組み合わせ配置フロー〕
図２８は、本発明の複数画像印刷最適配置システムにおける第１４の制御処理手順の一例を示すフローチャートであり、図２５のステップｐ４のデータ組み合わせ配置フローに対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｈ１〜ｈ１１は各ステップを示し、レイアウト作成部２８の処理に対応する。
【０２４６】
まず、ステップｈ１において、レイアウト作成部２８は、データベース２６に未配置のデータが存在するか否かを判定し、存在しないと判断した場合には、本データ単体フローを終了する。
【０２４７】
一方、ステップｈ１で、データベース２６に未配置のデータが存在すると判断した場合には、レイアウト作成部２８は、ステップｒ２に処理を進める。
【０２４８】
ステップｈ２では、レイアウト作成部２８は、データベース２６の未配置の先頭データを取得し、ＲＡＭ１３内に格納する。
【０２４９】
次に、ステップｈ３において、レイアウト作成部２８は、ステップｈ２で取得したデータの画像枚数と組み合わせて仮想画像縦数ｃの倍数になる画像枚数を保持する未配置のデータをデータベース２６から検索する。
【０２５０】
次に、ステップｈ４において、レイアウト作成部２８は、ステップｈ３で適合するデータが取得できたか否かを判定し、取得できなかったと判断した場合には、そのままステップｈ１１に処理を進める。
【０２５１】
一方、ステップｈ４で、ステップｈ３で適合するデータが取得できたと判断した場合には、レイアウト作成部２８は、ステップｈ５に処理を進め、該データをデータを画像印刷領域に配置する。
【０２５２】
次に、ステップｈ６において、レイアウト作成部２８は、ステップｈ５で配置したデータベース２６内のデータの配置完了フラグを立てる（「１」に変更する）。
【０２５３】
次に、ステップｈ７において、レイアウト作成部２８は、仮想画像縦数ｃがユーザに設定された縦数ｎと異なるか否かを判定し、ｃがｎと異ならない（ｃがｎが同じ）と判断した場合には、そのままステップｒ９に処理を進める。
【０２５４】
一方、ステップｒ６において、レイアウト作成部２８は、仮想画像縦数ｃがユーザに設定された縦数ｎと異なると判断した場合には、ステップｈ８に処理を進める。
【０２５５】
そして、ステップｈ８では、レイアウト作成部２８は、ステップｈ５のデータ配置で発生した空白を空白データベース２３に登録する。
【０２５６】
次に、ステップｈ９において、レイアウト作成部２８は、空白配置フローを実行する。なお、空白配置フローの詳細は図２７に示す。
【０２５７】
次に、ステップｈ１０において、レイアウト作成部２８は、データベース２６から未配置の次のデータを取得する。
【０２５８】
次に、ステップｈ１１において、レイアウト作成部２８は、データベース２６の末尾に達した（即ち、ｈ１０で未配置の次のデータを取得できなかった）か否かを判定し、未だ末尾に達していないと判断した場合には、ステップｈ３に処理を戻す。
【０２５９】
一方、ステップｈ１１で、データベース２６の末尾に達したと判断した場合には、本データ単体配置フローを終了する。
【０２６０】
このデータ単体配置フローでは、ｎが「５」の場合、ｃ＝ｎ（即ち「５」）の状態では、図２３（ａ）のセットＩＤが１３，１の画像データが組み合わされて図２３（ｃ）の２３０６のように配置されることになる。セットＩＤが１４，２の画像データが組み合わされて図２３（ｃ）の２３０７のように配置されることになる。さらに、セットＩＤが１１，４の画像データ組み合わされて図２３（ｃ）の２３０８のように配置されることになる。また、セットＩＤが１２，３の画像データが組み合わされて図２３（ｃ）の２３０９のように配置されることになる。
【０２６１】
〔残データ配置フロー〕
図２８は、本発明の複数画像印刷最適配置システムにおける第１５の制御処理手順の一例を示すフローチャートであり、図２５のステップｐ１６の残データ配置フローに対応する。なお、このフローチャートの処理は、ＣＰＵ１２がＨＤ１９に格納された不図示のプログラムをＲＡＭ１３上にロードして実行することにより実現される。また、図中、ｊ１〜ｊ５は各ステップを示し、レイアウト作成部２８の処理に対応する。
【０２６２】
まず、ステップｊ１において、レイアウト作成部２８は、ＲＡＭ１３内に確保される仮想横数（現在の横数）ｒを「１」に設定する。
【０２６３】
次に、ステップｊ２において、レイアウト作成部２８は、データベース２６から未配置データが存在するか否かを判定し、存在しないと判断した場合には、本残データ配置フローを終了する。
【０２６４】
一方、ステップｊ２において、データベース２６から未配置データが存在すると判断した場合には、レイアウト作成部２８は、ステップｊ３に処理を進める。
【０２６５】
ステップｊ３では、レイアウト作成部２８は、データベース２６から未配置データを検索する。
【０２６６】
次に、ステップｊ４において、レイアウト作成部２８は、空白データベース２３から空白数を取得する。
【０２６７】
次に、ステップｊ５において、レイアウト作成部２８は、ステップｊ３で検索した未配置データから（空白数＋（ｎ×ｒ））以下の画像枚数を保持するデータを検索する。
【０２６８】
次に、ステップｊ６において、レイアウト作成部２８は、ステップｊ５で検索したデータ（（空白数＋（ｎ×ｒ））以下の画像枚数を保持するデータ）の取得に成功したか否かを判定し、取得に失敗したと判断した場合には、ステップｊ８において、仮想横数ｒを「１」インクリメントして、ステップｊ５に処理を戻す。
【０２６９】
一方、ステップｊ６において、ステップｊ５で検索したデータ（（空白数＋（ｎ×ｒ））以下の画像枚数を保持するデータ）の取得に成功したと判断した場合には、レイアウト作成部２８は、ステップｊ９に処理を進める。
【０２７０】
そして、ステップｊ７では、レイアウト作成部２８は、ステップｊ５の検索で取得したデータの画像枚数が（空白数＋（ｎ×ｒ））であるか否かを判定し、（空白数＋（ｎ×ｒ））であると判断した場合には、ステップｊ９に処理を進める。
【０２７１】
そして、ステップｊ９では、レイアウト作成部２８は、ステップｊ５の検索で取得データを図３０に示す「配置方法Ｆ」で画像印刷領域に配置する。
【０２７２】
次に、ステップｊ１０において、レイアウト作成部２８は、データベース２３から全空白データ（即ち、使用した空白のデータ）を削除し、ステップｊ１１に処理を進める。ここで、図３０を用いて「配置方法Ｆ」について説明する。
【０２７３】
図３０は、本実施形態のレイアウト方法の１つである「配置方法Ｆ」を説明するための模式図である。
【０２７４】
図３０に示すように、配置するデータの画像枚数が「空白数＋（ｎ×ｒ）」（図３０の例では「１＋（５×２）＝１１」）である場合、空白を全て使用してデータを配置する。よって、配置方法Ｆの場合、新たな空白はできない。
【０２７５】
以下、図２９のフローチャートの説明に戻る。
【０２７６】
一方、ステップｊ７において、ステップｊ５の検索で取得したデータの画像枚数が（空白数＋（ｎ×ｒ）でないと判断した場合には、ステップｊ１２に処理を進める。
【０２７７】
そして、ステップｊ１２では、レイアウト作成部２８は、ステップｊ５の検索で取得したデータの画像枚数が（ｎ×ｒ）以下であるか否かを判定し、（ｎ×ｒ）以下であると判断した場合には、ステップｊ１３に処理を進める。
【０２７８】
そして、ステップｊ１３では、レイアウト作成部２８は、ステップｊ５の検索で取得データを図３１に示す「配置方法Ｇ」で画像印刷領域に配置する。
【０２７９】
次に、ステップｊ１４において、レイアウト作成部２８は、データベース２３から全空白データ（即ち、使用しなかった空白のデータ）を削除する。
【０２８０】
次に、ステップｊ１５において、レイアウト作成部２８は、ステップｊ１３のデータ配置で新たにできた空白をデータベース２３に登録し、ステップｊ１１に処理を進める。ここで、図３１を用いて「配置方法Ｇ」について説明する。
【０２８１】
図３１は、本実施形態の配置方法Ｇを説明するための模式図である。
【０２８２】
図３１に示すように、配置するデータの画像枚数が「ｎ×ｒ」以下（図３１の例では「５×２＝１０」以下）である場合、空白を全く使用せずに新たな列にデータを配置する。そして、使用しなかった空白は削除する。なお、この配置方法では、図３１に示すように、配置するデータの画像枚数が「ｎ×ｒ」以下であるため、新たな空白ができる。
【０２８３】
以下、図２９のフローチャートの説明に戻る。
【０２８４】
一方、ステップｊ１２において、ステップｊ５の検索で取得したデータの画像枚数が（ｎ×ｒ）以下でない（（ｎ×ｒ）より大きい）と判断した場合には、ステップｊ１６に処理を進める。
【０２８５】
そして、ステップｊ１６では、レイアウト作成部２８は、ステップｊ５の検索で取得データを図３２に示す「方法Ｈ」で画像印刷領域に配置する。
【０２８６】
次に、ステップｊ１７において、レイアウト作成部２８は、データベース２３から全空白データ（即ち、使用した空白のデータと使用しなかた空白のデータ）を削除し、ステップｊ１１に処理を進める。ここで、図３２を用いて「配置方法Ｈ」について説明する。
【０２８７】
図３２は、本実施形態の「配置方法Ｈ」を説明するための模式図である。
【０２８８】
図３２に示すように、配置するデータの画像枚数が「ｎ×ｒ」より大きい（図３２の例では「５×２＝１０」より大きい）場合、空白の一部を使用して新たな列に新たな空白ができないようにデータを配置する。そして、使用しなかった空白は削除する。
【０２８９】
以下、図２９のフローチャートの説明に戻る。
【０２９０】
ステップｊ１１では、レイアウト作成部２８は、ステップｊ９、ｊ１３、又はｊ１６で配置したデータベース２６内のデータの配置完了フラグを立て（「１」に変更し）、ステップｊ１に処理を戻す。
【０２９１】
そしてステップｊ２で、データベース２６から未配置データが存在しなくなると、レイアウト作成部２８は、本残データ配置フローを終了する。
【０２９２】
なお、本実施形態では、縦方向に切断するようにレイアウト制御する構成について説明したが、横方向に切断するようにレイアウト制御するように構成してもよい。即ち、上記各制御の「縦」と「横」を反対にして、レイアウト処理するように構成してもよい。
【０２９３】
以上示したように、本実施形態では、（１）直線かつ一方向（例えば、縦方向）に切断すること、（２）切断回数を減らすこと、（３）極力無駄な空白を発生させないこと、を考慮したレイアウトを決定することができる。
【０２９４】
本実施形態においても、上記第１実施形態と同様に、ユーザにより指定された各セットを、極力一方向かつ直線で、回数を少なく切断することを考慮して、また極力無駄な空白を発生させないように、自動で（ユーザによる手作業のレイアウト操作無しに）レイアウトすることができる。そのため、複数人数に様々な画像を配布する際などでも、複雑な切断を行う必要が無くなる等の効果を奏する。
【０２９５】
なお、本実施形態では、図２５のステップｐ２において、「仮想画像縦枚数ｃが「縦枚数ｎの１／２」より大きい場合」のみ、ｐ３のデータ単体配置フロー，Ｐ４のデータ組み合わせ配置フローを実行する構成について説明した。しかしながら、ステップｐ２の判定は「仮想画像縦枚数ｃが「縦枚数ｎの１／２」より大きい場合」に限られるものではなく、「仮想画像縦枚数ｃが「一定値」より大きい場合」であればよい。但し、この「一定値」をあまり小さい値としてしまうと、横長な配置になってしまい、上部に空白が大きく出来てしまう恐れがあるため、第１実施形態では「一定値」の一例として「縦枚数ｎの１／２」とする構成をとっている。よって、この「一定値」を変更することは単なる設計事項であり、該「一定値」を「縦枚数ｎの１／２」以外に変更した発明も本発明に含まれるものである。
【０２９６】
もちろん、仮想画像縦枚数ｃが「０」より大きい間は、ｐ３のデータ単体配置フロー，Ｐ４のデータ組み合わせ配置フローを実行し、仮想画像縦枚数ｃが「０」になった際に、ｐ６の残データ配置フローを実行するように構成してもよいことはいうまでもない。
【０２９７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２９８】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２９９】
以下、図３３に示すメモリマップを参照して本発明に係る画像データ配置装置（複数画像印刷最適配置装置１０）で読み取り可能なデータ処理プログラムの構成について説明する。
【０３００】
図３３は、本発明に係る画像データ配置装置（複数画像印刷最適配置装置１０）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０３０１】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０３０２】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０３０３】
本実施形態における図３，図６，図９，図１０，図１２，図１５，図１９，図２４，図２５，図２６，図２７，図２８，図２９に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０３０４】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０３０５】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０３０６】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０３０７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３０８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３０９】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０３１０】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０３１１】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０３１２】
【図１】本発明の第１実施形態を示す複数画像印刷最適配置システムの構成の一例を示すブロック図である。
【図２】図１に示したデータベースのデータイメージを示す図である。
【図３】本発明の複数画像印刷最適配置システムにおける第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明の複数画像印刷最適配置システムにおける印刷設定画面の一例を示す図である。
【図５】本発明の複数画像印刷最適配置システムにおける印刷レイアウト画面の一例を示す図である。
【図６】本発明の複数画像印刷最適配置システムにおける第２の制御処理手順の一例を示すフローチャートである。
【図７Ａ】データ記憶部がデータベースに印刷する画像の組み合わせ、枚数等のデータ等の設定データを振り分けるイメージを説明する模式図である。
【図７Ｂ】データ記憶部がデータベースに印刷する画像の組み合わせ、枚数等のデータ等の設定データを振り分けるイメージを説明する模式図である。
【図７Ｃ】データ記憶部がデータベースに印刷する画像の組み合わせ、枚数等のデータ等の設定データを振り分けるイメージを説明する模式図である。
【図８】本発明の複数画像印刷最適配置システムにおける第３の制御処理手順の一例を示すフローチャートである。
【図９】本発明の複数画像印刷最適配置システムにおける第４の制御処理手順の一例を示すフローチャートである。
【図１０】本発明の複数画像印刷最適配置システムにおける第５の制御処理手順の一例を示すフローチャートである。
【図１１】本実施形態のレイアウト方法の１つである『方法Ａ』の一例を示す模式図である。
【図１２】本発明の複数画像印刷最適配置システムにおける第６の制御処理手順の一例を示すフローチャートである。
【図１３】本実施形態のレイアウト方法の１つである『方法Ｂ１』，『方法Ｂ２』の一例を示す模式図である。
【図１４】本発明の複数画像印刷最適配置システムにおける第７の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の複数画像印刷最適配置システムにおける第８の制御処理手順の一例を示すフローチャートである。
【図１６Ａ】本実施形態のレイアウト方法の１つである『方法Ｃ』の一例を示す模式図である。
【図１６Ｂ】本実施形態のレイアウト方法の１つである『方法Ｃ』の一例を示す模式図である。
【図１６Ｃ】本実施形態のレイアウト方法の１つである『方法Ｃ』の一例を示す模式図である。
【図１７】データベースに空白情報を格納する流れを説明する模式図である。
【図１８】本実施形態のレイアウト方法の１つである『方法Ｄ』の一例を示す模式図である。
【図１９】本発明の複数画像印刷最適配置システムにおける第９の制御処理手順の一例を示すフローチャートである。
【図２０】本実施形態のレイアウト方法の１つである『方法Ｅ』の一例を示す模式図である。
【図２１】従来のレイアウトと本発明のレイアウトを比較した模式図である。
【図２２】本発明の第２実施形態を示す複数画像印刷最適配置システムの構成の一例を示すブロック図である。
【図２３】図２２に示したデータベース２６のデータイメージ及び画像配置結果イメージを示す図である。
【図２４】本発明の複数画像印刷最適配置システムにおける第１０の制御処理手順の一例を示すフローチャートである。
【図２５】本発明の複数画像印刷最適配置システムにおける第１１の制御処理手順の一例を示すフローチャートである。
【図２６】本発明の複数画像印刷最適配置システムにおける第１２の制御処理手順の一例を示すフローチャートである。
【図２７】本発明の複数画像印刷最適配置システムにおける第１３の制御処理手順の一例を示すフローチャートである。
【図２８】本発明の複数画像印刷最適配置システムにおける第１４の制御処理手順の一例を示すフローチャートである。
【図２９】本発明の複数画像印刷最適配置システムにおける第１５の制御処理手順の一例を示すフローチャートである。
【図３０】本実施形態のレイアウト方法の１つである「配置方法Ｆ」を説明するための模式図である。
【図３１】本実施形態のレイアウト方法の１つである「配置方法Ｇ」を説明するための模式図である。
【図３２】本実施形態のレイアウト方法の１つである「配置方法Ｈ」を説明するための模式図である。
【図３３】本発明に係る画像データ配置装置（複数画像印刷最適配置装置１０）で読み取り（読み出し）可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０３１３】
１０    複数画像印刷最適配置装置
１２    ＣＰＵ
１４    データ記憶部
１５    レイアウト作成部
１６    レイアウト記憶部
２０    縦枚数の倍数データベース
２１    縦枚数の倍数＜画像枚数データベース
２２    縦枚数未満データベース
２３    空白情報データベース
２４    印刷セットデータベース
２５    選択画像データベース
【図１】
0004718398.tif 000002
【図２】
0004718398.tif 000003
【図３】
0004718398.tif 000004
【図４】
0004718398.tif 000005
【図５】
0004718398.tif 000006
【図６】
0004718398.tif 000007
【図７Ａ】
0004718398.tif 000008
【図７Ｂ】
0004718398.tif 000009
【図７Ｃ】
0004718398.tif 000010
【図８】
0004718398.tif 000011
【図９】
0004718398.tif 000012
【図１０】
0004718398.tif 000013
【図１１】
0004718398.tif 000014
【図１２】
0004718398.tif 000015
【図１３】
0004718398.tif 000016
【図１４】
0004718398.tif 000017
【図１５】
0004718398.tif 000018
【図１６Ａ】
0004718398.tif 000019
【図１６Ｂ】
0004718398.tif 000020
【図１６Ｃ】
0004718398.tif 000021
【図１７】
0004718398.tif 000022
【図１８】
0004718398.tif 000023
【図１９】
0004718398.tif 000024
【図２０】
0004718398.tif 000025
【図２１】
0004718398.tif 000026
【図２２】
0004718398.tif 000027
【図２３】
0004718398.tif 000028
【図２４】
0004718398.tif 000029
【図２５】
0004718398.tif 000030
【図２６】
0004718398.tif 000031
【図２７】
0004718398.tif 000032
【図２８】
0004718398.tif 000033
【図２９】
0004718398.tif 000034
【図３０】
0004718398.tif 000035
【図３１】
0004718398.tif 000036
【図３２】
0004718398.tif 000037
【図３３】
0004718398.tif 000038