(57)【特許請求の範囲】
【請求項１】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な情報処理装置であって、
前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段と、
複数の画像データから指定される１又は複数の画像データから構成されるセットを複数セット指定可能な指定手段と、
前記設定手段により設定された配置数、及び前記指定手段により指定された複数セットとを用いて、該複数セットの組み合わせの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせを算出する算出手段と、
前記算出手段により算出された組み合わせ候補をユーザーにより選択可能な形式で表示させる表示制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記算出手段は、組み合わせたセットの画像データの合計数が、前記配置数の倍数となる組み合わせから、組み合わせを構成する各セットの画像データが矩形として配置される組み合わせを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、前記算出手段により算出された組み合わせ候補を、該組み合わせ候補の前記画像配置領域における配置イメージと共に表示することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記算出手段は、前記指定手段により指定された複数セットの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせに含まれないセットの画像データを用いて、予め定められる条件に応じた配置を可能とする組み合わせを算出することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記算出手段により算出された複数の組み合わせの中から、予め定められる優先順に従って、条件に合致する組み合わせを選出する選出手段を更に有し、
前記優先順は、矩形に使われているセット数が一番多いこと、矩形の列数の最大値が一番小さいこと、切り分ける際のカット数が一番少ないこと、または、最初に検出されたこと、の組み合わせの優先順であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記設定手段は、前記画像領域における第１方向又は第２方向に前記画像データを配置する上限数を更に設定し、
前記算出手段は、前記設定された上限数を用いて、組み合わせを算出することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な情報処理装置における制御方法であって、
設定手段により、前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定ステップと、
指定手段により、複数の画像データから指定される１又は複数の画像データから構成されるセットを複数セット指定可能な指定ステップと、
算出手段が、前記設定ステップにより設定された配置数、及び前記指定ステップにより指定された複数セットとを用いて、該複数セットの組み合わせの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせを算出する算出ステップと、
表示制御手段が、前記算出ステップにより算出された組み合わせ候補をユーザーにより選択可能な形式で表示させる表示制御ステップと
を有することを特徴とする制御方法。
【請求項８】
第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な情報処理装置において実行可能なプログラムであって、
前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段、
複数の画像データから指定される１又は複数の画像データから構成されるセットを複数セット指定可能な指定手段、
前記設定手段により設定された配置数、及び前記指定手段により指定された複数セットとを用いて、該複数セットの組み合わせの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせを算出する算出手段、
前記算出手段により算出された組み合わせ候補をユーザーにより選択可能な形式で表示させる表示制御手段
として前記情報処理装置を機能させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像配置領域に画像データを配置する処理を行う情報処理装置及びその制御方法、プログラム、並びに、コンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【０００２】
従来、人間が感覚に頼る等により手作業で行わなければならなかったレイアウト方法を自動化することで、効率化を図るものはあるが、レイアウトするデータの種類（例えば、画像データ）及び配置後の形等についての複雑な条件に対応するレイアウトの方法は無かった。
【０００３】
特許文献１には、画像配置領域を、ユーザーが希望する組み合わせに直線かつ一方向に切断可能にするように画像配置領域に画像データを自動で（ユーザーによる手作業のレイアウト操作無しに）レイアウトするという、一つのレイアウトの方法が記載されている。
【特許文献１】特開２００７−２５１９１１
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このレイアウトの方法は、切り易さや省スペースを考慮したレイアウト方法であるが、切り易さを向上させることを優先するがためにレイアウトの中に空きスペースができてしまう。また、設定値を順番に取得し、レイアウトして１つの候補を算出しているため、設定順次第で、結果が異なる方法であるため、複数の好適なレイアウトを算出した上で、この複数の候補をユーザーに提示し、ユーザーに選択させるなど、ユーザーにとって自由度の高い機能は不足しているため、ユーザーが得られるレイアウト結果は制限されてしまう。
【０００５】
本発明は、上記課題を解決するものであり、あらゆる組み合わせを事前に算出した上で複数の好適なレイアウトを決定し、ユーザーに複数のレイアウト候補を提示することを目的とする。
【０００６】
また、好適なレイアウト候補を算出するに当たり、複数のデータを分類し、整理し、同じ種類のデータをまとめ、そのまとまった形が矩形という特殊な形になり、なおかつ省スペースになるようすることを更なる目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な情報処理装置であって、前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定手段と、複数の画像データから指定される１又は複数の画像データから構成されるセットを複数セット指定可能な指定手段と、前記設定手段により設定された配置数、及び前記指定手段により指定された複数セットとを用いて、該複数セットの組み合わせの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせを算出する算出手段と、前記算出手段により算出された組み合わせ候補をユーザーにより選択可能な形式で表示させる表示制御手段とを有することを特徴とする。
【０００８】
本発明の制御方法は、第１方向及び第２方向に碁盤状に分割された画像配置領域に画像データを配置可能な情報処理装置における制御方法であって、設定手段により、前記画像配置領域における前記第１方向に配置可能な画像の配置数を設定する設定ステップと、指定手段により、複数の画像データから指定される１又は複数の画像データから構成されるセットを複数セット指定可能な指定ステップと、算出手段が、前記設定ステップにより設定された配置数、及び前記指定ステップにより指定された複数セットとを用いて、該複数セットの組み合わせの中から、各セットを構成する画像データを矩形としてそれぞれ配置可能な組み合わせを算出する算出ステップと、表示制御手段が、前記算出ステップにより算出された組み合わせ候補をユーザーにより選択可能な形式で表示させる表示制御ステップとを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、あらゆる組み合わせを事前に算出した上で複数の好適なレイアウトを決定し、ユーザーに複数のレイアウト候補を提示することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面に従って本発明に係わる画像データ配置装置（情報処理装置）の好ましい実施の形態について、図を用いながら詳述する。
【００１１】
図１−１は、画像データ配置装置の内部の構成例を示すハードウェアブロック図である。
【００１２】
画像データ配置装置（パソコン１は、情報処理の制御を行うＣＰＵ、プログラム等を記憶するＲＯＭ及びＲＡＭ、レイアウト設定を入力するキーボード等の入力装置４からの入力を制御する入力制御部、レイアウト設定画面、レイアウト画面等を表示するためにディスプレイ２及び作成したレイアウトを印刷するための印刷装置３に対して出力制御を行う出力制御部、レイアウト配置処理の際に使用する画像データを格納するＨＤ（ＨＤ内にＤＢが含まれている。）とから構成される。
【００１３】
図１−２は、画像データ配置装置の内部の構成例を示すソフトウェアブロック図である。
【００１４】
画像データ配置装置は、レイアウト設定等の入力情報を取得する入力制御部と、入力情報をもとにレイアウトを作成するレイアウト作成部と、レイアウト作成部がレイアウトの作成及び配置を行う際に使用するデータを格納するデータベース、レイアウト作成部が作成したレイアウト結果を表示及び印刷する出力制御部とから構成される。
【００１５】
なお、レイアウト作成部は、入力装置情報取得機能、データ振り分け機能、矩形が出来る組み合わせデータベース作成準備機能、矩形が出来る組み合わせデータベース作成機能、矩形が出来る組み合わせ連結機能、レイアウト結果出力機能とからなる。
【００１６】
また、データベースは、選択データＤＢ（データベースａ）、セット合計枚数ＤＢ（データベースｂ）、振り分け後データ１ＤＢ（データベースｄ）、振り分け後２ＤＢ（データベースｅ）、矩形ができる組み合わせデータＤＢ（データベースｆ）、配置データＤＢ（データベースｈ）、配置データ２ＤＢ（データベースｉ）とからなる。
【００１７】
図１７は、本システムの配置準備処理及び配置処理の概念を簡略化して説明した図である。ユーザーの数が５人で、それぞれのセット数が、７、１８、４、９、１０、１４で、行数ｎを５と設定を行ったと仮定し、説明を行う。
【００１８】
手順（１）〜（５）まであり、手順（１）〜（４）までは配置準備処理で、後述する図３の画像データ並び替え・配置処理のうち、配置処理の前までの処理を簡略化したものである。手順（５）が配置処理で、後述する図１１の配置処理のフローチャートの説明における配置方法Ｆにあたる。
【００１９】
手順（１）において、セット数の中から行数５で割り切れる物もの探し、ｎで割り切れるものリストに登録を行うため、７、１８、４、９、１０、１４のうち、１０を、５でわりきれるものリストに登録する。ここでいう５でわりきれるものリストは、上述した、データベースａに相当する。
【００２０】
手順（２）において、手順（１）において５で割り切れるものリストに登録されなかったセット数のみ対象とし、それらのセット数の組み合わせを全て作成する。２組の組み合わせであれば、７と１８、７と４、７と９、７と１４の４通りあり、最大５組の組み合せまですべて求める。上記実処理フローの説明では、呼応述する図３のステップｂ３にて、データベースｆを作る際に、セット数の組み合わせを全て算出している。
【００２１】
手順（３）において、手順（２）において作成した組み合わせの中から、組み合わせて足して５で割りきれる組み合わせを検出するため、７と４と９の３組の組み合わせが合計値２０で５の倍数となるのと、１８と４と９と１４の４組の組み合わせが、合計値４５で５の倍数となるので、２つの組み合わせが検出される事になる。上記実処理フローの説明では、図３のステップｂ３にて、データベースｆにデータを格納している部分に相当する。
【００２２】
手順（４）において、手順（３）において検出された組み合わせから全ての数が矩形で配置できる組み合わせを検出し、矩形が出来る組み合わせリストに登録する。手順（３）において検出された７と４と９の３組の組み合わせと、１８と４と９と１４の４組の組み合わせのうち、すべての数が矩形で配置できる組み合わせは１８と４と９と１４の４組の組み合わせのみのため、この組み合わせを矩形が出来る組み合わせリストに登録する。矩形が出来る組み合わせリストは、上記実処理のフローでは、データベースｈ及びデータベースｉに相当する。
【００２３】
手順（５）において、５で割り切れるものリスト及び、矩形が出来る組み合わせリストをもとに、配置する。
【００２４】
まず、手順（５−１）において、５で割り切れるものリストに入っているセット数のものを配置するため、セット数が１０のデータを配置する。
【００２５】
次に、手順（５−２）では、矩形が出来る組み合わせリストから組み合わせ数が一番多いものを選び、配置するため、１８、４、９、１４の４組の組み合わせを選び、セット数が１８、４、９、１４のデータをまとめて配置する。
【００２６】
次に、手順（５−３）では、組み合わせリストに残りセット数で組み合わせ可能なものがなければあまり処理方法にて配置する。このあまり処理は、後述する図３のあまり処理のフローに相当する。例の場合、配置されていないセット数は７のみであるため、セット数７のデータを端から並べて配置する。あまり処理では、足して行数の倍数になる組み合わせを探し、それらを優先的に配置する。
【００２７】
例えば、１３と７と４が余っている場合は、１３と７の２組の組み合わせが合計値２０で行数５の倍数となるため、１３と７の２組のセット数のデータをまとめて優先させて配置し、その後にセット数４のデータを配置する事になる。こうすることで、直線の境目を増やす事が出来る。
【００２８】
上記例では、完成レイアウトは一つであるため、これに決定されるが、複数候補が出た場合には、ユーザーにレイアウトを選択させることや、システムで自動的に１つのレイアウトに絞ることが可能である。システムで自動的に絞る場合、条件としては、矩形の列数の最大値が一番小さい、レイアウト候補のうちの先頭に検出された、印刷して切り分ける時のカット数が一番少ない、等があり、それらの優先順位を決めてレイアウト候補が１つになるまで探すようにする。
【００２９】
以下、具体的な処理の流れを説明する。
【００３０】
図２は、画像データ配置装置における処理の流れを示すフローチャートである。各ステップは、画像データ配置装置のＣＰＵにより実行される。
【００３１】
ステップａ１において、ユーザーからの指示に従って、アプリケーションを起動させる。
【００３２】
ステップａ２において、レイアウトの設定情報を取得する。具体的には、図１８に示すレイアウト設定画面にてユーザーにより入力された設定情報を取得する。
【００３３】
図１８において、ユーザーは、データ０００１〜データ××××の中からレイアウトを所望するデータを選択し枚数を入力する。この入力を１セットとする。他のセットを追加する場合は、「新規セット作成」ボタンをクリックすることで複数セットを更に設定することができる。例えば、３人に印刷した画像データを配布したい場合は、３人分の３セット入力することとなる。次に、画像データをレイアウトする場合の行数（配置数）を入力する。１頁あたりの列数を制限する場合は、制限をする列数を入力する。なお、矩形の列数制限及び矩形の行数制限（それぞれの上限数）については、後述する。なお、行又は列の方向を第１方向又は第２方向と称してもよい。
【００３４】
ステップａ３において、セットレイアウト設定の有無を判定し、セットレイアウトありの場合、ステップａ４の画像データ並び替え処理に移行する。ステップａ４の処理の説明は、図３〜図１７の説明にて詳述する。
【００３５】
ステップａ５において、並び替え後のレイアウトをディスプレイに表示する。図１９は、その表示形式の例である。現在、候補「１」が表示されているが、複数の候補がある場合、プルダウンメニューから複数の候補を選択可能である。他の候補を選択した場合、その候補に対応するレイアウトが表示される。レイアウト表示は、画像データが碁盤状に分割された画像配置領域に配置される配置イメージとして表示される。
【００３６】
ステップａ６において、ユーザーにより図１９における印刷ボタンが押下された事を確認したら、ステップａ７でユーザーにより選択されたレイアウトを印刷するために印刷装置に指示を行う。
【００３７】
上述したとおり、ユーザーは、レイアウト設定を入力することにより、画像データは位置装置が、あらゆる組み合わせを事前に算出した上で複数の好適なレイアウトを決定し、ユーザーに複数のレイアウト候補を提示することが可能となる。ユーザーはその複数の候補から選択し印刷指示を行うことで、印刷物を得ることが可能となる。
【００３８】
次に、図２におけるステップａ４の詳細処理について、図３〜図１７を用いて説明を行う。ここでは、ステップａ２で取得されたレイアウトの設定について、シール紙インデックスの一列あたりの画像枚数（行数）の設定枚数をＮ枚、１頁あたりの列数をＣ列、１行または１列の矩形は作らない設定はＯＦＦとし、矩形の制限列数をＡ、矩形の制限行数をＢとして、説明を行う。
【００３９】
図３は、ａ４におけるデータ並び替え処理の詳細を示すフローチャート（画像データ並び替え・配置処理を示すフロー）である。
【００４０】
ステップｂ１において、レイアウト設定画面で設定されたデータを取得し、データベースａ、データベースｂを作成する。データベースａ及びデータベースｂは、図１５Ａに示すとおりである。
【００４１】
ステップｂ２において、データ別振り分け処理を行う。主にデータベースｄ、データベースｅを作成する。データベースｄ及びデータベースｅは、図１５Ａに示すとおりである。また、データベースｈ、データベースｉについても部分的に作成行う。データベースｈは、図１５Ｃ、データベースｉは、図１５Ｄに示すとおりである。処理の説明は、図４の説明で詳述する。
【００４２】
ステップｂ３において、矩形ができる組み合わせデータベース作成準備処理を行う。主にデータベースｆの作成を目的とする。データベースｆは、図１５Ｂに示すとおりである。処理の説明は、図５の説明で詳述する。
【００４３】
ステップｂ４において、矩形ができる組み合わせデータベース作成処理を行う。データベースｈ、データベースｉの作成を目的とする。処理の説明は、図６の説明で詳述する。
【００４４】
ステップｂ５において、組み合わせ合体配列の作成処理を行う。配列ｊの作成を目的とする。配列ｊは、図１３に示すとおりである。処理の説明は、図７の説明で詳述する。
【００４５】
ステップｂ６において、配置処理を行う。処理の説明は、図１１の説明で詳述する。
【００４６】
図４は、図３のステップｂ２におけるデータ別振り分け処理のフローチャートである。
【００４７】
この処理では、まず合計枚数がＮ倍のデータのみを選別し、データの振り分けを行う例を記載する。
【００４８】
ステップｃ１において、データベースｂの先頭のデータを取得し、ステップｃ２において、データベースｂのデータの合計枚数がＮ倍かどうかを判定する。Ｎ倍であればステップｃ３に進み、データベースｄにデータを格納する。Ｎ倍でなければ  ステップｃ６に進み、データベースｅに処理中のデータを格納する。その後、ステップｃ４及びステップｃ５においてデータベースｈ、データベースｉへの情報の格納を行うが、データベースｈ、データベースｉについての説明は、後の矩形ができる組み合わせデータベース作成処理の説明にて行うため、ここでは格納する情報の内容のみ記す。
【００４９】
ステップｃ４において、データベースｈに、処理中のデータに基づき、組み合わせる数と合計値には処理中のデータを、必要列数には処理中のデータを行数Ｎで割った値を、組数には常に１を格納する。
【００５０】
ステップｃ５において、データベースｉに、処理中のデータに基づき、数字の配列を格納する。数字の配列は、３字で、１字目が０、２字目が行数Ｎ、３字目が処理中のデータを行数Ｎで割った値である。
【００５１】
ステップｃ８において、データベースｂのデータの合計枚数がＮ倍かどうかを判定する。Ｎ倍であればステップｃ９に進み、Ｎ倍でなければ  終了する。
【００５２】
ステップｃ９では、データベースｂの次のデータに移行し、ステップｃ２へ進み、同様の処理を行う。
【００５３】
図５は、図３のステップｂ３における矩形ができる組み合わせデータベース作成準備処理のフローチャートである。
【００５４】
この処理では、データベースｅのデータの中から、すべてのデータの組み合わせを求め、その組み合わせるデータの中に、組み合わせの合計値をＮで割った数の倍数であるセット数を含む組み合わせを選別し、データベースｆを作成するためにデータの振り分けを行う。
【００５５】
データベースｆの内容は、ユーザーの数が９人で、セット数の組み合わせの例が、４、６、８、９、１０、１２、１４、１５、１６の場合、図１５Ｂのデータベースｆのようになる。ＩＤと、複数のセット数がひとまとまりになったデータが複数記録されている。例えばＩＤが８のデータには、４、６、８、１２という４つのセット数が記録されている。
【００５６】
ステップｄ１において、データベースｅのデータからすべてのＭ組の組み合わせを求める。Ｍの初期値は２とし、最終的には２〜セット数までの組数を求めることになる。
【００５７】
ステップｄ２において、Ｍ組のデータの合計枚数の合計ＳがＮの倍数であるかどうか調べ、Ｎの倍数である場合、ステップｄ３に進み、合計がＮの倍数でなければステップｄ５に進む。
【００５８】
ステップｄ３において、Ｍ組のデータの中に、合計枚数が、組み合わせたデータの合計枚数の合計ＳをＮで割った数の倍数であるものが１つ以上存在するかどうか調べ、存在すれば、ステップｄ４に進み、データベースｆにそのＭ組の組み合わせの情報を記録する。存在しなければ、ステップｄ５へ進む。
【００５９】
ステップｄ４において、データベースｆにデータの組み合わせを記録する。
【００６０】
ステップｄ５において、すべてのＭ組の組み合わせについて調べたか判断し、調べてなければ、ステップｄ８に進み、Ｍ組組み合わせの次の組み合わせのデータに移動し、ステップｄ２以降の処理を行う。すべてのＭ組の組み合わせを調べ終わるまで、同様の処理を繰り返す。ステップｄ５において、すべてのＭ組の組み合わせが調べ終わったと判断されると、ステップｄ６に進み、組み合わせる数がセット数と等しいかどうかを判別し、等しく無ければ、ステップｄ７へ進み、組み合わせる数Ｍを１増やしてステップｄ１に進む。ステップｄ６において、組み合わせる数Ｍがセット数と等しいと判断されるまで、同様の処理を繰り返し、等しいと判断されたら、すべての２〜セット数までの組数のデータの組み合わせを選別したことになるため、矩形ができる組み合わせデータベース作成準備処理を終了する。
【００６１】
図６は、図３のｂ４における矩形ができる組み合わせデータベース作成処理のフローチャートである。
【００６２】
この処理では、矩形ができる組み合わせデータベース作成準備処理で求めた、データの中に１つでも組み合わせの合計値をＮで割った数の倍数のセット数を含む組み合わせの中から、さらに、すべてのデータを矩形にまとめて配置できるような組み合わせを選別し、データベースｈとデータベースｉにデータの追加を行う。矩形の制限列数Ａや矩形の制限行数Ｂが設定されている場合は、Ａ列Ｂ行の矩形の大きさを超えない大きさの矩形になるようにする。
【００６３】
図３のデータ振り分け処理にて、セット数の中に行数Ｎの倍数がある場合は、すでにデータが格納されている。
【００６４】
データベースｈとデータベースｉはＩＤ（格納番号）により、相互の情報を関連づけられている。データベースｈとデータベースｉの内容を図１５Ｃのデータベースｈ、図１５Ｄデータベースｉにそれぞれ示す。データベースｉは、データべースｈの内容の一部を、配置処理で使用できる処理内部用のデータに変換したようなもので、データベースｈとデータデータベースｉのデータのＩＤが等しければ、それぞれのデータは変換前と変換後の関係のようなものであるといえる。
【００６５】
データベースｈは、矩形ができる組み合わせデータベースと呼び、データベースｆより抜粋されたデータと同じ物が格納される。
【００６６】
データベースｉは、矩形ができる組み合わせデータベース＿配置用と呼び、本矩形ができる組み合わせデータベース作成処理で作られる配列ｇが複数個格納される事になる。
【００６７】
配列ｇは、データベースｆに格納されているデータをもとに、本処理によりつくられる配列である。配列ｇの内容は、縦横フラグと、縦に並べる数と、横に並べる数といった、３種の情報からなる。そして配列ｇは、この３種の情報が、繰り返し複数個並んだものである。配列ｇの内容の例を図１４に示す。これは、データベースｆのあるＩＤのレコードに１８、４、９、１４という４つのセット数が格納されている場合に、このレコードを処理した際にできた配列ｇの内容である。残列数Ｘの初期値は４つのセット数の合計値４５をＮ（５とする）で割った値であるので、９となる。データベースｆの先頭のセット数、すなわち１８が処理されて、０、９、２という配列ができ、次は、３番目の９から０、９、１ができ、次に２番目の４から１、２、２ができ、最後に４番目の１４から１、２、７ができる。これらを順番につなぎ合わせて、０、９、２、０、９、１、１、２、２、１、２、７という数字の配列ができる。以下、処理の手順を説明する。
【００６８】
ここでは、データベースｆに格納されている１つあたりのデータをレコードと呼ぶ。また、レコードに複数格納されている、組み合わせる数をデータと呼ぶ。
【００６９】
ステップｅ１において、データベースｆの先頭のレコードに移動する。ステップｅ２において、残列数Ｘの初期値をまず、レコード内のすべてのデータの合計値の合計をＮで割った値とし、データベースｆに格納されている、先頭のレコードを取得し、レコードに含まれる複数のデータのうち先頭のデータが、Ｘの倍数であるかどうか調べ、倍数であれば、ステップｅ３へ進み、倍数でなければステップｅ５へ進む。
【００７０】
ここで、１行または１列の矩形はつくらない設定である場合、データがＸの倍数であっても、データを残列数Ｘで割った時の商が１の場合はステップｅ５へ進む。１行または１列の矩形はつくらない設定とは、図１８に示す設定画面において、ユーザーがチェックボックスにチェックを入れている場合の設定である。また、倍数であっても、矩形の制限行数Ｂが設定されている場合、データを残列数Ｘで割った時の商がＢを超える場合は、ステップｅ５へ進む。矩形の制限行数Ｂが設定とは、図１８に示す設定画面において、ユーザーが「矩形の行数制限」のプルダウンメニューから選択した設定である。
【００７１】
ステップｅ３において、配列ｇにデータを格納し、ステップｅ４へ進む。ここで配列ｇにデータを格納する場合、最初に、横を表す情報（０）を、次に、残列数Ｘを、そしてステップｅ２にてデータを残列数Ｘで割った時の商の３要素を格納する。
【００７２】
ステップｅ４において、残行数Ｙからステップｅ１にてデータを残列数Ｘで割った時の商を引き、ステップｅ５へ進む。
【００７３】
ステップｅ５において、レコード内のデータをすべて調べたかどうか判断し、調べてなければ、ステップｅ１５へ進み、レコード内の次のデータに移動し、ステップｅ２に進み、レコード内のまだ配列ｇに追加されていない全てのデータについて同様の処理を繰り返す。その結果、配列ｇに３要素ずつ順番に追加されていく。レコード内のデータをすべて調べたと判断した場合、ステップｅ６へ進む。
【００７４】
ステップｅ６において、レコードの中に残列数Ｘの倍数がひとつ以上あったかどうか判断し、あればステップｅ７へ進み、なければステップｅ１３へ進む。
【００７５】
ステップｅ７において、レコードに含まれる複数のデータのうちまだ配列ｇに格納されていない先頭のデータを取得し、そのデータが残行数Ｙの倍数であるかどうか調べ、倍数であれば、ステップｅ８へ進み、倍数でなければステップｅ１０へ進む。ここで、１行または１列の矩形はつくらない設定である場合、データが残行数Ｙの倍数であっても、データを残行数Ｙで割った時の商が１の場合はステップｅ１０へ進む。ただし、倍数であっても、矩形の制限列数Ａが設定されている場合、データを残列数Ｙで割った時の商がＡを超える場合は、ステップｅ１０へ進む。矩形の制限列数Ａが設定とは、図１８に示す設定画面において、ユーザーが「矩形の列数制限」のプルダウンメニューから選択した設定である。
【００７６】
ステップｅ８において、配列ｇにデータを格納し、ステップｅ９へ進む。ここで配列ｇにデータを格納する場合、配列ｇに、縦を表す情報（１）と、残行数Ｙと、ステップｅ７でデータを残行数Ｙで割った時の商の、３要素を追加する。
【００７７】
ステップｅ９において、残列数Ｘよりステップｅ７でデータを残行数Ｙで割った時の商を引き、ステップｅ１０へ進む。
【００７８】
ステップｅ１０において、レコード内のデータをすべて調べたかどうか判断し、調べたと判断した場合、ステップｅ１１へ進む。調べてなければ、ステップｅ１６に進み、レコード内の次のデータに移動し、ステップｅ７に進み、レコード内のまだ配列ｇに追加されていない全てのデータについて同様の処理を繰り返す。その結果、配列ｇに３要素ずつ情報が追加されていく。
【００７９】
ステップｅ１１において、レコード内のデータをすべて調べたと判断した場合、ステップｅ１２へ進む。調べてなければ、ステップｅ１４へ進む。
【００８０】
ステップｅ１２において、セット数の組み合わせを、矩形ができる組み合わせデータベースｉに追加し、配列ｇを、矩形ができる組み合わせデータベースの配置用内部データ格納用であるデータベース  ｉに追加し、ステップｅ１３へ進む。
【００８１】
ステップｅ１４において、レコード内のまだ配列ｇに追加されていない全てのデータの中に、行算数Ｙの残数が１つ以上あった場合、ステップｅ１８へ進み、そのデータへ移動し、ステップｅ２へ進み、ステップｅ１１で、レコード内のデータをすべて調べたと判断されるまで同様の処理が繰り返される。
【００８２】
ステップｅ１３において、データベースｆに格納されているすべてのレコードについて調べたか判断し、調べた場合は矩形ができる組み合わせデータベース作成処理を終了する。調べていない場合は、ステップｅ１７へ進み、次のレコードへ移動し、ステップｅ２に進み、データベースｆに格納されているすべてのレコードを調べ終えるまで同様の処理を繰り返す。
【００８３】
図７は、図３のｂ５のリスト合体配列の配列作成処理のフローチャートである。
【００８４】
この処理では、組み合わせ合体配列として配列ｊを作成する。配列ｊの一例を図１３に示す。上記で作られた、矩形ができる組み合わせデータベースより、組み合わせを合体させて、すべてのセットを配置できる配置を抽出し、配列ｊに、合体する組み合わせ合体順の情報を格納する。
【００８５】
ステップｆ１において、列数の指定があるかどうか判断し、あればステップｆ２へ進み、なければステップｆ３へ進む。
【００８６】
ステップｆ２において、レイアウト設定画面で列数が指定されている場合の処理である。詳細説明は、図８の組み合わせ合体配列作成処理（列数指定時）の説明で行う。
【００８７】
ステップｆ３は、レイアウト設定画面で列数が指定されていない場合の処理である。詳細説明は、図９の組み合わせ合体配列作成処理（列数指定なし時）の説明で行う。
【００８８】
ステップｆ２あるいはステップｆ３の処理を終えた後、組み合わせ合体配列の作成処理を終了する。
【００８９】
図８は、図７のｆ２におけるリスト合体データベース作成処理（列数指定時）のフローチャートである。
【００９０】
ステップｇ１において、配列ｋを作成し、初期頁番号は１とする。ステップｇ２において、合計列数Ｓに０を入れ、Ｔに指定制限列数を入れる。ＳとＴはそれぞれこのフローのみで使用する変数である。図１２に配列ｋのデータ構造を示す。配列ｋはデータベース  ｈのＩＤを複数記憶する配列で、２次元配列である。１ページあたりの制限列数が指定されている場合は、図１２の配列ｋ（列数制限がある場合）のように、配列ｋに複数ページ分のデータベースｈのＩＤの情報が２次元的に格納される事になる。制限列数の指定が無い場合は配列ｋ（列数制限がない場合）のように１ページ分のデータベースｈのＩＤが１次元的に配列されるだけである。
【００９１】
ステップｇ３において、データベースｈの区切りレコードより前のレコードの中に、必要列数が１であり、組み合わせるセット合計枚数のすべての数について、それと同じ値の合計枚数を持つデータベースｂのレコードにフラグがたっていないものがあるかどうか先頭レコードから順に検索して判断する。もしあればステップｇ４へ進み、なければステップｇ７へ進む。
【００９２】
ステップｇ４において、ステップｇ３で最初に検出されたデータベースｈのレコードの格納番号を配列ｋのＰ頁の情報を記憶する領域に追加し、データベースｂのデータについて、そのレコードの組み合わせるセット合計枚数に等しい合計列数をもつものを先頭から検索し、あればフラグを立て、ステップｇ５へ進む。
【００９３】
ステップｇ５において、ステップｇ４で処理したレコードの必要列数を合計列数Ｓに足し、ステップｇ６へ進む。
【００９４】
ステップｇ６において、Ｔに制限列数Ｃから合計列数Ｓを引いた値を格納し、ステップｇ７へ進む。
【００９５】
ステップｇ７において、データベースｈの区切りレコードより前のレコードの中に必要列数がＴと等しく、なおかつ、データベースｂのフラグを立っていないデータで、そのレコードの組み合わせるセット合計枚数と同じ合計枚数であるものがあるかどうか判断する。もしあればステップｇ８へ進み、なければステップｇ９へ進む。
【００９６】
ステップｇ８において、ステップｇ７で最初に検出されたデータベースｈのレコードの格納番号を配列ｋのＰ頁の情報を記憶する領域に追加し、データベースｂのデータについて、そのレコードの組み合わせるセット合計枚数に等しい合計列数をもつものを先頭から検索し、あればフラグを立て、ステップｇ１０へ進む。ステップｇ９において、Ｔから１を引き、ステップｇ１２へ進む。
【００９７】
ステップｇ１０において、合計列数にステップｇ８で処理したレコードの必要列数を加えてステップｇ１１へいく。
【００９８】
ステップｇ１１において、Ｔに制限列数Ｃから合計列数Ｓを引いた者を入れ直し、ステップｇ１２へ進む。
【００９９】
ステップｇ１２において、Ｔが０になったか判断し、０であれば、ステップｇ１３へ進み、０でなければ、ステップｇ７へ進み、同様の処理を繰り返す。ステップｇ１３において、合計列数Ｓが制限列数Ｃと等しくなったか判断し、等しければ、ステップｇ１４へ進み、等しく無ければステップｇ１６へ進む。
【０１００】
ステップｇ１４において、Ｔに制限列数Ｃから合計列数Ｓを引いたものを入れ直し、ステップｇ１５へ進む。
【０１０１】
ステップｇ１５において、余り処理（列数制限時）の処理を行い、ステップｇ１６へ進む。余り処理（列数制限時）の詳細フローの説明は図１０２を用いて後述する。
【０１０２】
ステップｇ１６において、データベースｂのすべてのデータにフラグが立っているか確認する。立っていれば、ステップｇ１８へ進み、立っていないものがあればステップｇ１７へ進み、頁番号Ｐに１を追加してステップｇ２に進み、同様の処理を繰り返す。
【０１０３】
ステップｇ１８において、データベースｈで区切りレコードより後のレコードについて、組み合わるセット合計枚数（１つのみ）と同じ合計枚数のデータベースｂのデータにフラグが立っていないものがあれば、検出された順番に配列ｋのＰ頁から追加格納する。その際、列数制限を超えた場合はｋに次頁情報を追加しながら格納する。
【０１０４】
ステップｇ１９において、配列ｋの合計列数にＳを格納する。ステップｇ２０において、配列ｋをリスト合体配列の配列ｊに格納する。
【０１０５】
列数制限時では複数の候補が算出されないため、配列ｊには１つの配列ｋが格納される事になる。
【０１０６】
図９は、図７のｆ３におけるリスト合体データベース作成処理（列数指定無し時）のフローチャートである。
【０１０７】
ステップｈ１において、配列ｋを新規作成する。頁番号の初期値は１である。合計列数Ｓは０とする。また、ここでデータベースｂのフラグはすべておとす（０にする）。ここで、この処理では列数制限がない場合の処理であるため、頁番号は１から変化しない。
【０１０８】
ステップｈ２において、データベースｈのレコードの中から組数が１であり、なおかつ区切りレコードより前のものすべてについて格納番号を配列ｋに検出された順番に格納し、データベースｂでデータベースｈの処理中のレコードの組み合わせるセット合計枚数と等しい合計枚数のレコードにフラグを立て、該当レコードのすべての必要列数の総計をＳに加え、ステップｈ３へ進む。
【０１０９】
ステップｈ３において、データベースｈを組数が多い順にソートし、合計値が多い順にソートし、ステップｈ４へ進む。
【０１１０】
ステップｈ４において、ソート後のデータベースｈのｉ番目のレコードへ移動する。ｉは本処理のみで使用する変数であり、初期値は１とする。
【０１１１】
ステップｈ５において、データベースｂで、処理中のデータベースｈのレコードの組み合わせるセット合計枚数と等しい合計枚数であるデータにフラグが立っていないものがあるかどうか確認する。もしあれば、ステップｈ６へ進み、なければステップｈ８へ進む。
【０１１２】
ステップｈ６において、データベースｈの処理中レコードの格納番号を配列ｋに追加格納し、そのレコードの必要列数をＳに加えてステップｈ７へ進む。
【０１１３】
ステップｈ７において、データベースｂでデータベースｈの処理中のレコードの組み合わせるセット合計枚数と等しい合計枚数のレコードにフラグを立て（１にする）、ステップｈ８へ進む。
【０１１４】
ステップｈ８では、データベースｈの全てのレコードを調べたかどうか判断し、調べていれば、ステップｈ８へ進み、調べてなければ、ステップｈ１０へ進む。ステップｈ１０では次のレコードに移動し、ステップｈ５に進み、同様の処理を繰り返す。
【０１１５】
ステップｈ９において、データベースｂでフラグが立っていないレコードがあるかどうか判断する。あれば、ステップｈ１２へ進み、なければ、ステップｈ１１へ進む。
【０１１６】
ステップｈ１２において、あまり処理（列指定なしの時）の処理を行い、ステップｈ１１へ進む。あまり処理（列指定なしの時）の詳細フローの説明については図１０−１を用い後述する。
【０１１７】
ステップｈ１１において、配列ｋの合計列数にＳを格納し、ステップｈ１３へ進む。
【０１１８】
ステップｈ１３において、ここまでに出来た配列ｋを配列ｊに格納し、ステップｈ１４へ進む。
【０１１９】
ステップｈ１４において、ｉに１を加えてステップｈ１５へ進む。
【０１２０】
ステップｈ１５において、データベースｈのｉ番目のレコードの組数が１であるかどうか判断する。１であれば、組み合わせ合体データベース作成処理（列数指定無し時）を終了し、１でなければ、ステップｈ１へ進み、新たに配列ｋを作成し、同様の処理を繰り返す。
【０１２１】
複数レイアウト候補が算出される場合は、本処理終了後に、配列ｊに配列ｋが複数格納されている事になる。
【０１２２】
図１０１は、図９のｈ１２におけるあまり処理（時列数制限なしの時）のフローチャートである。
【０１２３】
ステップｉ１において、データベースｈの区切りレコードより後のレコードの中に、合計値を足してＮの倍数になり、合計値の総数をＮで割った商がＴを超えないＡ組の組み合わせがあるかどうかを判断する。もしあればステップｉ２へ進み、なければステップｉ３へ進む。
【０１２４】
ステップｉ２において、最初に検出されたデータベースｈのレコードの格納番号を配列ｋのＰ頁の情報を記憶する領域に追加し、データベースｂのデータについて、そのレコードの組み合わせるセット合計枚数に等しい合計列数をもつものを先頭から検索し、あればフラグを立て、ステップｉ４へ進む。
【０１２５】
ステップｉ３において、組み合わせる数Ａに１を追加し、ステップｉ４へ進む。ステップｉ４において、組み合わせる数Ａがデータベースｂでフラグが立っていないレコードの数を超えたかどうかを判断し、超えていればステップｉ５へ進み、超えていなければステップＩ１へ進み、同様の処理を繰り返す。
【０１２６】
ステップｉ５において、データベースｂにフラグが立っていないレコードがあるかどうか判断し、あればステップｉ７へ進み、なければ終了する。
【０１２７】
ステップｉ７において、データベースｈの区切りレコードより後のレコードの組み合わせるセット合計枚数で、データベースｂにフラグを立てていないものすべてについて、格納番号を配列ｋに検出された順に格納する。
【０１２８】
ステップｉ８において、本あまり処理（時列数制限なしの時）で配列ｋに格納されたデータベースｈのレコードの合計値を足し合わせた総計をＮで割った時の商を合計列数Ｓに格納し、その後終了する。
【０１２９】
図１０２は、図８のｇ１５におけるあまり処理（列数制限）のフローチャートである。
【０１３０】
ステップｉ’１において、データベースｈの区切りレコードより後のレコードの中に、合計値を足してＮの倍数になり、合計値の総数をＮで割った商がＴを超えないＡ組の組み合わせがあるかどうかを判断する。Ａは組み合わせる数を格納する変数であり、初期値は２とする。もしあればステップｉ’２へ進み、なければステップｉ’５へ進む。
【０１３１】
ステップｉ’２において、最初に検出されたデータベースｈのレコードの格納番号を配列ｋのＰ頁の情報を記憶する領域に追加し、データベースｂのデータについて、そのレコードの組み合わせるセット合計枚数に等しい合計列数をもつものを先頭から検索し、あればフラグを立て、ステップｉ’３へ進む。
【０１３２】
ステップｉ’３において、合計列数Ｓにステップｉ’１で算出した、合計値の総数をＮで割った商を、合計値Ｓに加えステップｉ’４へ進む。
【０１３３】
ステップｉ’４において、Ｔに制限列数Ｃから合計列数Ｓを引いた値を入れ直し、ステップｉ’６へ進む。ステップｉ’５において、Ｔから１を引き、ステップｉ’６へ進む。
【０１３４】
ステップｉ’６において、Ｔが０になったか、あるいは組み合わせる数Ａがデータベースｂでフラグが立っていないレコードの数を超えたかどうかを判断し、どちらも該当しなければ、ステップｉ’１へいき、同様の処理を繰り返す。どちらか該当すれば終了する。
【０１３５】
図１１は、図３のｂ６における配置処理のフローチャートである。
【０１３６】
ステップｊ１において、オート選出処理が設定されたか判断し、設定されていれば、複数レイアウト候補がある場合に１つの候補に自動的に選出するためステップｊ２へ進み、設定されていなければ、全ての候補をレイアウト結果として表示するためステップｊ３へ進む。なお、オート選出処理の設定は、例えば、図１８の設定画面にチェック項目を作り、ユーザーにより選択させる方法が考えられる。
【０１３７】
ステップｊ２において、オート選出処理を行う。詳細は図２０を用い後述する。ステップｊ３において、レイアウトを表示する候補について、矩形ができる組み合わせデータベース  ｈと組み合わせ合体配列の配列ｊをもとに、配置方法Ｆで配置を行う。配置方法Ｆは、端から順に配置する方法であり、詳細説明は図１６を用い後述する。
【０１３８】
図１６は、図１１のｊ３における配置方法Ｆを説明する概略図である。
【０１３９】
配列ｊより配列ｋを取得する。本実施の形態においては、１頁あたりの列数制限なしの場合は、配列ｊには図１２の配列ｋが１つ格納されている。複数レイアウトの候補がある場合、配列ｊは複数の内容の異なる配列ｋを格納している。１頁あたりの列数制限時には、候補が複数算出されるため、配列ｊには図１３のように複数の配列ｋが格納される。ここでは、列数制限なし時として、図１２の配列ｋの内容をもとに、端から順番に配置を行う。配列ｋには前記の通り、複数のデータベースｈのＩＤが格納されている。
【０１４０】
ステップｋ１において、配列ｋの先頭の要素である要素１に格納されているのデータベースｈのＩＤ１を取得する。データベースｉより、取得したデータベースｈのＩＤ１と同じＩＤ１のデータに格納されている数字配列「１５２」を取得する。これは１と５と２３つの数字の配列である。１番目の数字は、０あるいは１のどちらかの値が記憶されており、１の場合は、２番目の数字が行数で３番目の数字が列数を示す事を表す。
【０１４１】
０の場合は、２番目の数字が列数で３番目の数字が行数を示す事を表す。ここでは０のため、２番目の数字の５と３番目の数字の２により、５行２列に合計枚数１０のセットの配置を行う。合計枚数１０のセットは、データベースｄ及びデータベースｂから合計枚数１０であるセットを検索し、最初に検出されたものとする。合計枚数１０のセットとして、セットＩＤ５が検出される。データベースａをもとにセットＩＤ５の、ユーサーが選択したデータを全て、５行２列の中に配置する。
【０１４２】
ステップｋ２において、配列ｋの要素２に格納されているデータベースｈのＩＤ２を取得する。これについては、ステップｋ１同様に配置を行う。ステップｋ３において、配列ｋの要素２に格納されているデータベースｈのＩＤ１２を取得する。データベースｉより、取得したデータベースｈのＩＤ１２と同じＩＤ１２のデータに格納されている数字配列「０９１１４２１４３１４４」を取得する。ステップｋ１では、数字配列は３つの数字であったが、この場合は、先頭から３つの数字毎に区切った情報をもとに配置を行う。３つの数字のうち、格納順の２番目と３番目の数を掛け合わせることで合計枚数を算出する。この合計枚数であるセットを求めるために、データベースｂの先頭から順に、合計枚数に対応するセットＩＤを検索する。同じ合計枚数のセットがある場合は、セットＩＤが小さいセットを先に検出する。
【０１４３】
まず、ステップｋ３１のように、最初の３文字「０９１」より、１行９列に合計枚数９のセットである、セットＩＤ４のセットの配置を行う。
【０１４４】
次に、ステップｋ３２のように、次の３文字「１４２」により、４行２列に合計枚数８のセットである、セットＩＤ３のセットの配置を行う。
【０１４５】
次に、ステップｋ３３のように、次の３文字「１４３」により、４行３列に合計枚数１２のセットである、セットＩＤ６のセットの配置を行う。
【０１４６】
次に、ステップｋ３４のように、次の３文字「１４４」により、４行４列に合計枚数１６のセットである、セットＩＤ９のセットの配置を行う。
【０１４７】
ステップｋ４において、配列ｋの要素２に格納されているデータベースｈのＩＤ３を取得する。これについては、ステップｋ３同様に配置を行う。
【０１４８】
ステップ５において、配列ｋの要素２に格納されているデータベースｈのＩＤ１９を取得する。これについて、データベースｈのＩＤが１３より大きいため、矩形で配置できないものであると判断し、データベースｈのＩＤが１９であるデータに格納されている組み合わせる数１４を取得し、合計枚数がその数１４であるセットＩＤ７のセットのデータを端から順番に配置する。これにより、完成図のように、すべてのセットが配置され、レイアウトが完成する。また、配列ｋが複数頁分の情報を持っている場合、頁毎のレイアウトをそれぞれ作成する。例えば、図１３の配列ｊに格納されている配列ｋ（１）の場合、２頁分のＤＢ  ｈのＩＤ情報を持っている。１頁目の情報は、１と１１であり、２頁目の情報は、２と５と１８であることを示している。
【０１４９】
図２０は、図１１におけるｊ２のオート選出処理のフローチャートである。画像データ配置装置が自動的に１つのレイアウトに絞るための処理である。選出条件の優先順位を、矩形に使われているセット数が一番多い、矩形の列数の最大値が一番小さい、切り分ける際のカット数が一番少ない、最初に検出された、の順とし、複数の候補の中から一つの候補を選出する処理である。優先条件は、例えば図１８に示す設定画面に設定項目を表示させ、ユーザーに指定させても良い。
【０１５０】
ステップｋ１において、優先条件１で選出する。本実施の形態においては、矩形に使われている升目が一番多い候補を検出する。
【０１５１】
ステップ２において、１つに絞られたと判断されればステップｋ８へ進み、絞られなければ、ステップｋ３へ進む。
【０１５２】
ステップｋ３において、さらにステップ１の条件で検出されたものの中から優先条件２で選出する。本実施の形態においては、矩形の列数の最大値が一番小さい候補を検出する。
【０１５３】
ステップｋ４において、１つに絞られたと判断されればステップｋ８へ進み、絞られなければ、ステップｋ５へ進む。
【０１５４】
ステップｋ５において、さらにステップ３の条件で検出されたものの中から優先条件３で選出する。本実施の形態においては、カット数が一番少ないものを選出する。
【０１５５】
ステップｋ６において、１つに絞られたと判断されればステップｋ８へ進み、絞られなければ、ステップｋ７へ進む。
【０１５６】
最後に、ステップｋ７において、最初に検出されたものを選出するため、必ず一つの候補が選ばれる事になる。
【０１５７】
ステップｋ８において、選出された１つの候補をレイアウト結果に表示するデータとして保存し、配置処理でこのデータを使用する。
【０１５８】
図２１は、オート選出処理を設定した時の例である。セット合計枚数がそれぞれ、４、６、８、９、１０、１２、１４、１５、１６の９セットのレイアウトの場合、図のように６候補ができる。
【０１５９】
これについてオート選出処理を行うと、まず優先条件１の、矩形に使われているセット数が一番多い候補の選出により、８セットが矩形でレイアウトされている、候補３、４、５、６が選出される。
【０１６０】
次に、優先条件２の、矩形の列数の最大値が一番小さい候補の選出により、一番列数の多い矩形の列数が７である候補５、６が選出される。
【０１６１】
そして、優先条件３の、切り分ける際のカット数が一番少ない候補の選出により、候補５、６はどちらも同じ８カットにより選出される。
【０１６２】
ここまでで１つの候補に絞られていないため、候補１から６までの情報が順番に格納されている場合は、順番に選出処理を行うため、最終的にシステムで最初に検出される候補５が選出される事になる。
【０１６３】
上述したとおり、本発明によれば、あらゆる組み合わせを事前に算出した上で複数の好適なレイアウトを決定し、ユーザーに複数のレイアウト候補を提示することが可能となる。
【０１６４】
さらに、複数のレイアウト候補の中から優先順位に従ってレイアウト候補を提示することが可能であるため、ユーザーの選択負担を軽減することも可能となる。
【０１６５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１６６】
以上、一実施形態について示したが、本発明は、例えば、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。
【図面の簡単な説明】
【０１６７】
【図１−１】画像データ配置装置の内部の構成例を示すハードウェアブロック図である。
【図１−２】画像データ配置装置の内部の構成例を示すソフトウェアブロック図である。
【図２】画像データ配置装置における全体の流れを示すフローチャートである。
【図３】画像データ並び替え・配置処理を示すフローチャートである。
【図４】データ別振り分け処理のフローチャートである。
【図５】矩形ができる組み合わせデータベース作成準備処理のフローチャートである。
【図６】矩形ができる組み合わせデータベース作成処理のフローチャートである。
【図７】リスト合体配列の配列作成処理のフローチャートである。
【図８】リスト合体データベース作成処理（列数指定時）のフローチャートである。
【図９】リスト合体データベース作成処理（列数指定無し時）のフローチャートである。
【図１０−１】あまり処理（列数制限なしの時）のフローチャートである。
【図１０−２】あまり処理（列数制限ありの時）のフローチャートである。
【図１１】画像配置処理のフローチャートである。
【図１２】配列ｋの内容を示す図である。
【図１３】配列ｊの内容を示す図である。
【図１４】配列ｇの内容を示す図である。
【図１５Ａ】使用するデータベースとの内容を示す図である。
【図１５Ｂ】使用するデータベースとの内容を示す図である。
【図１５Ｃ】使用するデータベースとの内容を示す図である。
【図１５Ｄ】使用するデータベースとの内容を示す図である。
【図１６】配置方法Ｆの説明図である。
【図１７】配置準備処理と配置処理の概略説明図である。
【図１８】レイアウト設定画面を示す。
【図１９】レイアウト結果画面を示す。
【図２０】オート選出処理のフローチャートである。
【図２１】オート選出処理例である。
【符号の説明】
【０１６８】
１  パソコン
２  ディスプレイ
３  印刷装置
４  入力装置
【図１−１】
0004975608.tif 000002
【図１−２】
0004975608.tif 000003
【図２】
0004975608.tif 000004
【図３】
0004975608.tif 000005
【図４】
0004975608.tif 000006
【図５】
0004975608.tif 000007
【図６】
0004975608.tif 000008
【図７】
0004975608.tif 000009
【図８】
0004975608.tif 000010
【図９】
0004975608.tif 000011
【図１０−１】
0004975608.tif 000012
【図１０−２】
0004975608.tif 000013
【図１１】
0004975608.tif 000014
【図１２】
0004975608.tif 000015
【図１３】
0004975608.tif 000016
【図１４】
0004975608.tif 000017
【図１５Ａ】
0004975608.tif 000018
【図１５Ｂ】
0004975608.tif 000019
【図１５Ｃ】
0004975608.tif 000020
【図１５Ｄ】
0004975608.tif 000021
【図１６】
0004975608.tif 000022
【図１７】
0004975608.tif 000023
【図１８】
0004975608.tif 000024
【図１９】
0004975608.tif 000025
【図２０】
0004975608.tif 000026
【図２１】
0004975608.tif 000027