(57)【要約】【課題】  一般的な通信仕様では、理解できない通信仕様は無視されるので、結果として印刷が行われないか、ユーザが意図していない画像が印刷されてしまう弊害も考えられる。【解決手段】  カメラから上位層にレイアウト印刷を指定し、その下位層で、フレーム印刷を指示する印刷コマンドをプリンタに送信すると、プリンタは、その上位層により、１つのシートに複数の画像を記録するレイアウト印刷であると判定し（Ｓ１２２）、そのコマンドの下位層が判定できると、そのレイアウトの詳細を取得し（Ｓ１２３）、そのコマンドの下位層が判定できないときは通常のフレーム印刷と判断する（Ｓ１２４）。そして、これら判断した画像のレイアウトに従って、通常のレイアウト画像、或はより特殊なフレーム画像を印刷する（Ｓ１２７）。【選択図】    図１２
2005088572.tif 000002
【特許請求の範囲】
【請求項１】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定手段と、
前記第１判定手段により前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定手段と、
前記第２判定手段による前記第２記録モードの判定ができない場合、前記第１判定手段により判定された前記第１記録モードに応じた記録動作を実行し、
前記第２判定手段による前記第２記録モードの判定が可能である場合は前記第２判定手段により判定された前記第２記録モードに従って記録を行うように制御する制御手段と、を有することを特徴とする記録装置。
【請求項２】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像のそれぞれの位置を決定して記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項３】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像の一方の画像上に他方の画像を重畳させて記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項４】
前記第２記録モードが背景画像と、当該背景画像に重畳される画像との合成による記録モードを含む場合、
前記背景画像を特定する特定手段と、
前記特定手段により特定した背景画像を前記記録媒体のサイズに応じて変倍する変倍手段とを更に有することを特徴とする請求項１又は２に記載の記録装置。
【請求項５】
前記特定手段は、画像供給デバイスにおける画像ファイルの格納場所に基づいて前記背景画像かどうかを識別することを特徴とする請求項４に記載の記録装置。
【請求項６】
前記特定手段は、画像供給デバイスにおける画像ファイルのファイル名に基づいて前記背景画像かどうかを識別することを特徴とする請求項４に記載の記録装置。
【請求項７】
前記特定手段は、画像供給デバイスにおける画像ファイルのファイルタイプに基づいて前記背景画像かどうかを識別することを特徴とする請求項４に記載の記録装置。
【請求項８】
前記特定手段は、画像供給デバイスにおける画像ファイルのタグ情報に基づいて前記背景画像かどうかを識別することを特徴とする請求項４に記載の記録装置。
【請求項９】
前記特定手段は、画像供給デバイスから転送される画像ファイルの転送順に基づいて前記背景画像かどうかを識別することを特徴とする請求項４に記載の記録装置。
【請求項１０】
画像供給デバイスと記録装置とを有し、前記画像供給デバイスから供給される画像データに基づいて前記記録装置により記録媒体に画像を記録する記録システムであって、
前記画像供給デバイスは層構造の印刷コマンドを記録装置に送信し、
前記記録装置は、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定手段と、
前記第１判定手段により前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定手段と、
前記第２判定手段による前記第２記録モードの判定ができない場合、前記第１判定手段により判定された前記第１記録モードに応じた記録動作を実行し、
前記第２判定手段による前記第２記録モードの判定が可能である場合は前記第２判定手段により判定された前記第２記録モードに従って記録を行うように制御する制御手段と、を有することを特徴とする記録システム。
【請求項１１】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像のそれぞれの位置を決定して記録するモードであることを特徴とする請求項１０に記載の記録システム。
【請求項１２】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像の一方の画像上に他方の画像を重畳させて記録するモードであることを特徴とする請求項１０に記載の記録システム。
【請求項１３】
画像供給デバイスから供給される画像データに基づいて記録装置により記録媒体に画像を記録する記録システムにおける制御方法であって、
前記画像供給デバイスから層構造の印刷コマンドを前記記録装置に送信する送信工程と、
前記送信工程で送信された前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定工程と、
前記第１判定工程で前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定工程と、
前記第２判定工程で前記第２記録モードの判定ができない場合、前記第１判定工程により判定された前記第１記録モードに応じた記録動作を実行する工程と、
前記第２判定工程で前記第２記録モードの判定が可能である場合は前記第２判定工程で判定された前記第２記録モードに従って記録を行う工程と、
を有することを特徴とする制御方法。
【請求項１４】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像のそれぞれの位置を決定して記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１５】
前記第２記録モードは、同一記録媒体に記録される前記複数の画像の一方の画像上に他方の画像を重畳させて記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１６】
画像供給デバイスから供給される画像データに基づいて記録装置により記録媒体に画像を記録する記録システムにおける制御方法を実行するプログラムであって、
前記画像供給デバイスから層構造の印刷コマンドを前記記録装置に送信する送信工程モジュールと、
前記送信工程モジュールで送信された前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定工程モジュールと、
前記第１判定工程モジュールで前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定工程モジュールと、
前記第２判定工程モジュールで前記第２記録モードの判定ができない場合、前記第１判定工程モジュールで判定された前記第１記録モードに応じた記録動作を実行する工程モジュールと、
前記第２判定工程モジュールで前記第２記録モードの判定が可能である場合、前記第２判定工程モジュールで判定された前記第２記録モードに従って記録を行う工程モジュールと、
を有することを特徴とするプログラム。
【請求項１７】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから供給される複数画像を重畳して記録するための複数条件に対応する記録条件が前記画像供給デバイスから設定されたかどうかに応じて、複数画像の重畳記録モードを設定する設定手段と、
前記設定手段により前記複数画像の重畳記録モードが設定されている場合に、前記画像供給デバイスから供給される複数画像を重畳して記録するように制御する制御手段と、
を有することを特徴とする記録装置。
【請求項１８】
前記設定手段は、前記画像供給デバイスから供給される記録開始コマンドがレイアウトコマンド及び複数の画像フォーマットを含む場合に、前記記録開始コマンドに含まれる複数画像の重畳記録モードを設定することを特徴とする請求項１７に記載の記録装置。
【請求項１９】
前記複数条件は、複数の画像フォーマットを含み、前記複数の画像は少なくとも１つのＪＰＥＧ画像と、所定数のＰＮＧ画像を含むことを条件として含んでいることを特徴とする請求項１７又は１８に記載の記録装置。
【請求項２０】
前記複数条件は更に、記録枚数及び／又は１枚の記録媒体に記録される画像数を条件として含むことを特徴とする請求項１９に記載の記録装置。
【請求項２１】
前記制御手段は、前記画像供給デバイスから供給される複数画像をその受信順に重畳することを特徴とする請求項１７乃至２０のいずれか１項に記載の記録装置。
【請求項２２】
前記複数の画像フォーマットは、透過率の設定が可能な画像フォーマット、特定の格納場所に格納されている画像ファイルを指定する画像フォーマット、特定のファイル名の画像ファイルを指定する画像フォーマット、特定のタグ情報が付された画像ファイルを指定する画像フォーマット、及び特定の順番の画像ファイルを指定するための画像フォーマットのうちの少なくともいずれかを含むことを特徴とする請求項１７に記載の記録装置。
【請求項２３】
画像出力装置に画像データを供給する画像供給装置であって、
複数画像を重畳して記録するための複数条件に対応する複数の機能を前記画像出力装置が有しているかどうかに応じて、前記複数画像の重畳記録モードが設定された画像出力コマンドを発行するコマンド発行手段と、
前記コマンド発行手段により発行された前記画像出力コマンドに応じて、前記画像出力装置から要求される画像データを前記画像出力装置に供給する手段と、
を有することを特徴とする画像供給装置。
【請求項２４】
画像出力装置に画像データを供給する画像供給装置であって、
前記画像出力装置で扱うことのできる画像ファイルのフォーマット情報を取得する第１取得手段と、
前記第１取得手段により取得した前記フォーマット情報が所定のフォーマット情報を含む場合に前記画像出力装置がサポートしているレイアウト機能を取得する第２取得手段と、
前記第１取得手段により取得した前記レイアウト機能が所定条件を満足している場合に前記画像出力装置に供給する複数の画像データ及びレイアウト機能を設定する設定手段と、
前記設定手段により設定された前記複数の画像データ及び前記レイアウト機能に基づいて前記画像出力装置に対して画像出力コマンドを発行するコマンド発行手段と、
前記コマンド発行手段により発行された前記画像出力コマンドに応じて、前記画像出力装置から要求される画像データを前記画像出力装置に供給する手段と、
を有することを特徴とする画像供給装置。
【請求項２５】
前記所定のフォーマット情報は、ＪＰＥＧフォーマットとＰＮＧフォーマットを含むことを特徴とする請求項２４に記載の画像供給装置。
【請求項２６】
前記レイアウト機能の所定条件は、１−ｕｐ或はＮ−ｕｐ機能を含むことを特徴とする請求項２４又は２５に記載の画像供給装置。
【請求項２７】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置の制御方法であって、
前記画像供給デバイスから供給される複数画像を重畳して記録するための複数条件に対応する記録条件が前記画像供給デバイスから設定されたかどうかに応じて、複数画像の重畳記録モードを設定する設定工程と、
前記設定工程で前記複数画像の重畳記録モードが設定されている場合に、前記画像供給デバイスから供給される複数画像を重畳して記録するように制御する制御工程と、
を有することを特徴とする記録装置の制御方法。
【請求項２８】
前記設定工程では、前記画像供給デバイスから供給される記録開始コマンドがレイアウトコマンド及び複数の画像フォーマットを含む場合に、前記記録開始コマンドに含まれる複数画像の重畳記録モードを設定することを特徴とする請求項２７に記載の記録装置の制御方法。
【請求項２９】
前記複数条件は、複数の画像フォーマットを含み、前記複数の画像は少なくとも１つのＪＰＥＧ画像と、所定数のＰＮＧ画像を含むことを条件として含んでいることを特徴とする請求項２７又は２８に記載の記録装置の制御方法。
【請求項３０】
前記複数条件は更に、記録枚数及び／又は１枚の記録媒体に記録される画像数を条件として含むことを特徴とする請求項２９に記載の記録装置の制御方法。
【請求項３１】
前記制御工程は、前記画像供給デバイスから供給される複数画像をその受信順に重畳することを特徴とする請求項２７乃至３０のいずれか１項に記載の記録装置の制御方法。
【請求項３２】
画像出力装置に画像データを供給する画像供給装置の制御方法であって、
前記画像出力装置で扱うことのできる画像ファイルのフォーマット情報を取得する第１取得工程と、
前記第１取得工程で取得した前記フォーマット情報が所定のフォーマット情報を含む場合に前記画像出力装置がサポートしているレイアウト機能を取得する第２取得工程と、
前記第１取得工程で取得した前記レイアウト機能が所定条件を満足している場合に前記画像出力装置に供給する複数の画像データ及びレイアウト機能を設定する設定工程と、
前記設定工程で設定された前記複数の画像データ及び前記レイアウト機能に基づいて前記画像出力装置に対して画像出力コマンドを発行するコマンド発行工程と、
前記コマンド発行工程で発行された前記画像出力コマンドに応じて、前記画像出力装置から要求される画像データを前記画像出力装置に供給する工程と、
を有することを特徴とする画像供給装置の制御方法。
【請求項３３】
前記所定のフォーマット情報は、ＪＰＥＧフォーマットとＰＮＧフォーマットを含むことを特徴とする請求項３２に記載の画像供給装置の制御方法。
【請求項３４】
前記レイアウト機能の所定条件は、１−ｕｐ或はＮ−ｕｐ機能を含むことを特徴とする請求項３２又は３３に記載の画像供給装置の制御方法。
【請求項３５】
請求項２７乃至３４のいずれか１項に記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像供給デバイスから供給される画像データを基に記録媒体に画像を記録する記録装置と画像供給装置及び記録システム及びその制御方法とそのプログラムに関するものである。
【背景技術】
【０００２】
近年、簡単な操作で画像を撮影し、その撮影した画像をデジタル画像データに変換できるデジタルカメラ（撮像装置）が広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷できるカラープリントシステム（以降ダイレクト印刷と称する）や、デジタルカメラに搭載され、その撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている(特許文献１参照)。
【０００４】
このようなダイレクト印刷は、元々、同一メーカのカメラとプリンタとの間でのみ実現できる機種限定の印刷機能であったが、近年、これら業界での標準化が進み、メーカの違いに依らず、異なるメーカのカメラとプリンタとを接続してダイレクト印刷が行える環境が整ってきた。例えば、ＣＩＰＡから正式に公開されているPictBridgeと呼ばれる規格は、異なるメーカのカメラとプリンタ同士の接続の場合でもダイレクト印刷が行える代表的なものである。
【０００５】
またダイレクト印刷で実現できる印刷機能も年々多岐に亘ってきている。このような印刷機能としては、単にデジタルカメラで撮影した１枚の画像を１枚の記録媒体に印刷する旧来の銀塩写真の様な印刷だけではなく、複数枚の画像を１枚の記録媒体に印刷する印刷機能（以降レイアウト印刷と称す）などもユーザの好みに合わせて容易に行えるようになってきた。
【０００６】
また、デジタルカメラにより得られる画像情報はデジタルデータであるので、そのようなデジタルデータの特徴を活かした様々な印刷機能も提案されてきている。例えば、上述した単なるレイアウト印刷ではなく、複数の画像データをオーバーレイして印刷する機能（オーバレイ印刷）等は、今後益々使用頻度が高まる機能の１つと考えられている。このようなオーバレイ印刷のうち、例えば１枚の画像を背景画像とし、他の画像を、その背景画像の上に重ねて、あたかも２枚の画像が１枚の画像として印刷されるような印刷機能（以降、フレーム印刷と称す）がダイレクト印刷でも実現できるようになると云われている。
【０００７】
この場合、背景画像は自然画像であっても良いが、例えば、結婚式の挨拶状などであれば、その背景画像として挨拶文や新居の住所などといった、文字情報も含んだ画像（以降背景に置かれる画像をInfo画像と称す）とし、このInfo画像の上に、例えば新郎新婦の写真（以降、Target画像と称す）を重ねて印刷したフレーム印刷が、ダイレクト印刷でも実現できるように望まれている。ここで、Info画像の文字情報は、例えばＡＳＣＩＩなどの文字コードで保存されていても良いが、文字も画像情報として扱うことにより、例えばInfo画像がＪＰＥＧ画像などの画像ファイルであっても良い。
【特許文献１】特開２００３−０６１０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このようにダイレクト印刷のインターフェース仕様の標準化、多機能化の環境は整ってきているが、上記PictBridgeなどを用いてダイレクト印刷で提唱されている、メーカに依存しないダイレクト印刷を実現するためには、画像データを供給するデバイスとそれを受け取って印刷する画像出力装置の少なくとも一方が、他方の有する機能（以降capabilityと称す）を取得する必要が生じる。いま仮に、ユーザがカメラのインターフェースを操作することによりダイレクト印刷を実現するのであれば、そのカメラは事前に、画像を印刷させたいプリンタが有しているcapabilityを入手しておかねばならない。そのために、カメラとプリンタとの間でcapabilityをやり取りする為のコマンドを定義し、そのコマンドの通信仕様を定義し、その通信仕様に従ってコマンドの送受信を行う必要がある。これにより、そのコマンドを解釈して互いの機能を確認し、ユーザからの印刷指示に従った印刷命令（以降印刷Jobと称す）を、そのプリンタのcapabilityに応じて適正に生成しなければならない。つまりカメラは、プリンタのcapabilityに合わせて複数の印刷Jobを生成できるように設計されていなければならず、これはカメラにとっては非常に負荷が大きいものである。
【０００９】
同一メーカの機種間でのみのダイレクト印刷であれば、そのメーカが予め定めているルールに従えばよいため、上述した負荷を低減することは容易であり、製品の出荷前に接続テストを十分に行うことにより、市場に導入する前に、全機能が問題なく動作することを確認することも容易である。しかしながら、上述した標準化に従って不特定多数の機器との接続を保証するためには、細部に亘って規約を設定し、互いに、その規約を満足しているかどうかを確認しながら、市場で初めて出会った機器同士の接続の信頼性を保証しなければならない。このような状況下で、同じ機能を実現するにもより多くの負荷が生じ、更に高度な機能を実現させるには、より多くの負荷が生じることは容易に推測される。
【００１０】
以下、レイアウト印刷、フレーム印刷の場合を例に具体的な課題について説明する。
【００１１】
いま例えば、Info画像を［結婚の挨拶分のＪＰＥＧ画像］とし、Target画像は［新郎新婦の写真画像］とし、これらInfo画像とTarget画像とを１枚の葉書などのシートに印刷する場合を考える。このような場合、Info画像とTarget画像が一体となりフレーム印刷される方が画像として美しく好ましい。しかし仮にプリンタがフレーム印刷に対応していないが、レイアウト印刷には対応できるのであれば、これらInfo画像とTarget画像が１枚のシートに印刷される（以降２Upと称する）レイアウト印刷を実行しても意味があることになる。つまり、この場合のInfo画像とTarget画像とは互いに関連している画像であるので、それぞれが別々のシートに印刷されると対して意味のない画像となってしまう。特に印刷する画像がこれら２つの画像だけではなく、カメラのメモリに記憶されている複数の画像を印刷する場合等では、関連する画像同士が１枚のシートに印刷されることの意義は大きい。
【００１２】
カメラは、プリンタのcapabilityを問い合わせるコマンドを駆使して、そのプリンタがレイアウト印刷機能、フレーム印刷機能を有しているかを確認する必要がある。仮に、そのプリンタがフレーム印刷機能を有している場合には、Info画像とTarget画像の特定の仕方、また、Info画像を複数枚設定する必要がある場合などには、何枚のInfo画像を使用してフレーム印刷ができるのかなど、様々なcapabilityの問い合わせをプリンタに対して実行し、やり取りしたデータを解析して、そのプリンタが有している機能を判断する。そして、そのプリンタが実行可能な機能と実行不可能な機能とを特定し、更にはその特定結果に応じた適正な印刷が実行できる印刷Jobを作成しなければならない。例えば、プリンタがレイアウト印刷にのみ対応している場合、或はレイアウト印刷とフレーム印刷の両方に対応している場合、フレーム印刷にのみ対応している場合等に応じて、それぞれ別々の印刷Jobを生成してプリンタに送信しなければならない。
【００１３】
ここでは更なる詳細な説明は省略するが、ここで記述していない別の付加機能がある場合には、カメラは、それらの機能との組み合わせも考慮した印刷Jobが生成できる機能を有していなければならない。さもないと例えばフレーム印刷ができないプリンタにフレーム印刷が行えることを前提としたコマンドを送ってしまうと、当然そのプリンタは、その送信された印刷Jobを理解できない。一般的な通信仕様では、このような理解できない通信仕様は無視されるので、結果として印刷が行われないことになる。または、印刷Jobの仕様やプリンタの仕様によっては、中途半端に解釈できた情報に従ってユーザが意図していない画像が印刷されてしまう弊害も考えられる。
【００１４】
フレーム印刷では、フレーム印刷を行うための負荷の多くははプリンタが負っている。よって例えば、同一メーカのカメラとプリンタとが接続されてダイレクト印刷が行われる従来の形態では、多くの場合、カメラはユーザが印刷用に選択した画像を特定する情報と、レイアウト印刷かフレーム印刷かを特定する付加機能情報をプリンタに渡せば事足りる場合が多い。しかし、標準化仕様でのダイレクト印刷では、不特定のカメラとプリンタとが市場で初めて接続されてダイレクト印刷を行う可能性があるため、従来の通信手順以上に多くの情報の送受信が必要となる。これにより通信負荷の増大、プログラムサイズの増大を招き、その結果、カメラはこれは複雑な機能をサポートしなくなることも考えられる。これにより、ユーザがフレーム印刷のような高度な付加機能を搭載しているプリンタを有しているにも関わらず、それら高度な付加機能をサポートするカメラが普及しないために、そのプリンタの機能が使われないという不合理が生じることが懸念される。
【００１５】
本発明はこのような課題に鑑みてなされたもので、本発明の特徴は、画像供給デバイスから記録装置に対して記録モードを容易に指定でき、かつ記録装置においても、有している記録機能に応じた記録を行うことができる記録装置と画像供給装置及び記録システム及びその制御方法とそのプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の一態様の記録装置は以下のような構成を備える。即ち、
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定手段と、
前記第１判定手段により前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定手段と、
前記第２判定手段による前記第２記録モードの判定ができない場合、前記第１判定手段により判定された前記第１記録モードに応じた記録動作を実行し、
前記第２判定手段による前記第２記録モードの判定が可能である場合は前記第２判定手段により判定された前記第２記録モードに従って記録を行うように制御する制御手段と、を有することを特徴とする。
【００１７】
また本発明の一態様の記録システムは以下のような構成を備える。即ち、
画像供給デバイスと記録装置とを有し、前記画像供給デバイスから供給される画像データに基づいて前記記録装置により記録媒体に画像を記録する記録システムであって、
前記画像供給デバイスは層構造の印刷コマンドを記録装置に送信し、
前記記録装置は、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定手段と、
前記第１判定手段により前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定手段と、
前記第２判定手段による前記第２記録モードの判定ができない場合、前記第１判定手段により判定された前記第１記録モードに応じた記録動作を実行し、
前記第２判定手段による前記第２記録モードの判定が可能である場合は前記第２判定手段により判定された前記第２記録モードに従って記録を行うように制御する制御手段と、を有することを特徴とする。
【００１８】
また本発明の一態様の記録システムの制御方法は以下のような工程を備える。即ち、
画像供給デバイスから供給される画像データに基づいて記録装置により記録媒体に画像を記録する記録システムに制御方法であって、
前記画像供給デバイスから層構造の印刷コマンドを前記記録装置に送信する送信工程と、
前記送信工程で送信された前記印刷コマンドの上位層が１つの記録媒体に複数の画像を記録する第１記録モードを指定しているかを判定する第１判定工程と、
前記第１判定工程で前記第１記録モードが指定されていると判定されると、前記上位層の下層で指定されている第２記録モードを判定する第２判定工程と、
前記第２判定工程で前記第２記録モードの判定ができない場合、前記第１判定工程により判定された前記第１記録モードに応じた記録動作を実行する工程と、
前記第２判定工程で前記第２記録モードの判定が可能である場合は前記第２判定工程で判定された前記第２記録モードに従って記録を行う工程とを有することを特徴とする。
【００１９】
更に本発明の一態様の画像供給装置は以下のような構成を備える。即ち、
画像出力装置に画像データを供給する画像供給装置であって、
前記画像出力装置で扱うことのできる画像ファイルのフォーマット情報を取得する第１取得手段と、
前記第１取得手段により取得した前記フォーマット情報が所定のフォーマット情報を含む場合に前記画像出力装置がサポートしているレイアウト機能を取得する第２取得手段と、
前記第１取得手段により取得した前記レイアウト機能が所定条件を満足している場合に前記画像出力装置に供給する複数の画像データ及びレイアウト機能を設定する設定手段と、
前記設定手段により設定された前記複数の画像データ及び前記レイアウト機能に基づいて前記画像出力装置に対して画像出力コマンドを発行するコマンド発行手段と、
前記コマンド発行手段により発行された前記画像出力コマンドに応じて、前記画像出力装置から要求される画像データを前記画像出力装置に供給する手段と、
を有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、画像供給デバイスと記録装置とを接続した記録システムにおいて、capabilityの確認に要する通信の負荷を低減して両者の実装の負荷を低減し、より柔軟性のある通信手順を提供できる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００２２】
＜プリンタの概要説明＞
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ）１０００の概観斜視図である。このＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラやＰＤＡなどからの画像データを受信して印刷する機能を備えている。
【００２３】
図１において、本実施の形態に係るＰＤプリンタ１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部がされている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録されたシート（普通紙、専用紙、樹脂シート等を含む。以下単にシートとする）が排出可能となると共に、排出されたシートを順次積載し得るようになっている。また排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、シートの支持面積を３段階に拡大、縮小させ得るようになっている。
【００２４】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）或いはインクタンク（不図示）等の交換が可能となる。尚、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー１００３の開閉状態を検出し得るようになっている。
【００２５】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドとシートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００２６】
＜プリンタ操作部の概要説明＞
図２は、本実施の形態に係るＰＤプリンタ１０００の操作パネル１０１０の概観図である。
【００２７】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、複数ある写真画像ファイルの内、印刷したい写真画像の先頭番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了したい最後の写真番号（終了）、印刷部数（部数）、印刷に使用するシートの種類（用紙種類）、１枚のシートに印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要なシートの枚数表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷、指定コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００２８】
＜プリンタ電気仕様概要＞
次に図３を参照して、本実施の形態に係るＰＤプリンタ１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２９】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示している。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USBHUB)で、このＰＤプリンタ１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：DigitalStillCamera)である。
【００３０】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００３１】
＜デジタルカメラの概要説明＞
図４は、本実施の形態に係るＤＳＣ（デジタルカメラ）３０１２の構成を示すブロック図である。
【００３２】
同図において、３１００はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３１０１はＣＰＵ３１００による処理手順を記憶しているＲＯＭである。３１０２はＣＰＵ３１００のワークエリアとして使用されるＲＡＭであり、３１０３は各種操作を行うスイッチ群で、シャッター、モード切替スイッチ、選択スイッチやカーソルキー等が含まれている。２７００は液晶表示部であり、現時点で撮影している映像や、撮像されてメモリカードに記憶されている画像を表示したり、各種設定を行う際のメニューを表示するために使用される。３１０５は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３１０６はＣＣＤ素子であり、３１０７はＣＰＵ３１００の制御下において光学ユニット３１０５を駆動制御するドライバである。３１０８は記憶媒体３１０９（コンパクトフラッシュ(登録商標)メモリカード、スマートメディア等）を接続するためのコネクタであり、３１１０はＰＣ或いは実施の形態におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。
【００３３】
＜カメラ／プリンタの接続概要説明＞
図５は、本実施の形態に係るＰＤプリンタ１０００とＤＳＣ３０１２との接続を説明する図で、前述の図面と共通している部分は同じ記号で示し、その説明を省略している。
【００３４】
図において、ケーブル５０００は、ＰＤプリンタ１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。この図５に示すようにして、ケーブル５０００を介してＰＤプリンタ１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ１０００で印刷することができる。
【００３５】
以上の構成に基づくＤＳＣ３０１２とＰＤプリンタ１０００とを含む印刷システムにおける動作概要を以下に説明する。尚、この実施の形態に係る印刷システムでは、ＤＳＣ３０１２とＰＤプリンタ１０００とはそれぞれ本実施の形態に係る手順ＤＰＳ（Direct Print System）の仕様に従った動作が可能であるものとする。
【００３６】
＜ＤＰＳの信号フローの概要説明＞
図６は、本実施の形態に係る印刷システムにおいて、ＤＳＣ３０１２からＰＤプリンタ１０００に対してプリント要求を発行して印刷を行う場合の大まかな信号フローを説明する図である。
【００３７】
この処理手順は、ＰＤプリンタ１０００とＤＳＣ３０１２とがＵＳＢケーブル５０００を介して接続された後、互いにＤＰＳ仕様に準拠していることを確認した後に実行される。まずＤＳＣ３０１２は「CofigurePrintService」をＰＤプリンタ１０００に送信して、ＰＤプリンタ１０００の状態をチェックする（６００）。これに対してＰＤプリンタ１０００から、その時点でのＰＤプリンタ１０００の状態（ここでは「アイドル」状態）が通知される（６０１）。ここでは「アイドル」状態であるため、ＤＳＣ３０１２はＰＤプリンタ１０００のcapabilityを問合せ（６０２）、そのcapabilityに応じたプリント開始要求（StartJob）を発行する（６０３）。尚、このプリント開始要求は、６０１で、後述するＰＤプリンタ１０００からのステータス情報の中の「newJobOK」が「True（真）」になっていることを条件に、ＤＳＣ３０１２からＰＤプリンタ１０００に発行される。
【００３８】
このプリント開始要求に対してＰＤプリンタ１０００は、印刷が指示された画像データのファイルＩＤに基づいてファイル情報をＤＳＣ３０１２に要求する（GetFileInfo）（６０４）。これに応答してＤＳＣ３０１２から、そのファイル情報（FileInfo）が送信される。このファイル情報にはファイル容量等の情報が含まれる。そしてＰＤプリンタ１０００がそのファイル情報を受信して処理可能であると判断すると、そのファイル情報をＤＳＣ３０１２に要求する（GetFile）（６０５）。これによりその要求されたファイルの画像データ（ImageFile）がＤＳＣ３０１２からＰＤプリンタ１０００に送られる。これによりＰＤプリンタ１０００がプリント処理を開始すると、６０６で「印刷中（Printing）」を示すステータス情報が、ＰＤプリンタ１０００からＤＳＣ３０１２に「NotifyDeviceStatus」によって送られる。そして１頁のプリント処理が終了すると、次のページの処理開始時にＰＤプリンタ１０００から「NotifyJobStatus」６０７により、それが通知される。そして１頁だけの印刷であれば、そのプリント要求した１頁の印刷が終了すると、次に「NotifyDviceStatus」６０８によりＰＤプリンタ１０００が「アイドル」状態になったことが通知される（NotifyDeviceStatus(Idle)）。
【００３９】
尚、例えば、１頁に複数（Ｎ）の画像をレイアウトして印刷するＮ−ｕｐ印刷の場合には、Ｎ枚の画像を印刷する度に、「NotifyJobStatus」６０７がＰＤプリンタ１０００からＤＳＣ３０１２に送られることになる。本実施の形態での「NotifyJobStatus」及び「NotifyDeviceStatus」の発行タイミングと画像データの取得の順番は一例であり、製品の実装によっては様々なケースが起こりうる。
【００４０】
尚、このプリント処理において、ＤＳＣ３０１２からのプリント開始要求（StartJob）に、印刷すべき画像データのファイルＩＤを一括して含めて送信して印刷する場合と、一般の写真現像で使用されるＤＰＯＦファイルのファイルＩＤのみをＤＳＣ３０１２からのプリント開始要求（StartJob）に含めてＰＤプリンタ１０００に送信し、ＰＤプリンタ１０００がそのＤＰＯＦファイルを解釈し、必要な画像データのファイルＩＤを取得してプリントする場合も含まれる。
【００４１】
＜印刷Jobの概要説明＞
図７は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるプリント開始要求の具体例を説明する図である。
【００４２】
図において、７２０は、この印刷ジョブのコンフィグレーション（jobConfig）を示し、７２１はプリント情報（printInfo）を示している。
【００４３】
まずコンフィグレーション７２０について説明する。７００は印刷する画質（quality）を示し、これには例えば「標準」、「高画質」などがある。７０１は用紙サイズ（paperSize）、７０２は用紙タイプ（papertype）で、例えば「普通紙」、「写真用紙」、「インクジェット専用紙」等がある。７０３は印刷する画像ファイルのタイプ（fileType）を指定するもので、例えばＤＰＯＦを使用する場合は、これで指定される。７０４は日付印刷の有無（datePrint）、７０５はファイル名の印刷の有無（fileNamePrint）、７０６は画像最適化を行うかどうか（imageOptimize）、７０７は固定サイズの印刷（fixedSize）、７０８は画像の指定された範囲の印刷を行うかどうかの有無をそれぞれ指定する（cropping）。またプリント情報７２１は、ファイルＩＤ（fieldID）７０９と、日付情報（date）７１０を含んでいる。
【００４４】
図８は、前述のJobStatusとDeviceStatusに含まれる情報を説明する図である。ここで図８（Ａ）のJobStatus、及び図８（Ｂ）のDeviceStatusは、ＰＤプリンタ１０００からＤＳＣ３０１２に送信される。また、ＤＳＣ３０１２は任意のタイミングで、それらの情報をＰＤプリンタ１０００へ送信要求することができる。
【００４５】
図８（Ａ）において、「prtPID」、「ImagePath」及び「copyID」はＤＰＯＦファイルの印刷が指示された場合に有効になる。ここで「prtPID」は、ＤＰＯＦファイルで指定された印刷セクションの識別情報（ＩＤ）、「ImagePath」はＤＰＯＦファイルで指定された画像ファイルを特定するためのパスの情報、そして「copyID」は複数枚の印刷指定時に、実際に何枚目を印刷しているかを意味している。ＤＰＯＦファイルによる印刷の場合は、ＤＳＣ３０１２は、プリント開始要求（StartJob）中にＤＰＯＦファイルの「fileID」を記載してＰＤプリンタ１０００に送信する。これによりＰＤプリンタ１０００は、そのＤＰＯＦファイルの印刷を開始できる。そしてＰＤプリンタ１０００は、そのＤＰＯＦファイルの「fileID」を基にＤＰＯＦファイルを取得し、「GetFileID」を実行して、ＤＰＯＦファイル中に指定された画像ファイルの「fileID」を特定し、その画像ファイルをＤＳＣ３０１２に要求して、その画像データを取得する。こうしてＤＰＯＦファイルで指定された画像を印刷することができる。そして、ＤＰＯＦファイルによる印刷実行中に、印刷の進行状況を示す上記「prtPID」、「ImagePath」及び「copyID」が、ＰＤプリンタ１０００から前述の「NotifyJobStatus」によりＤＳＣ３０１２に通知される。
【００４６】
尚、このＤＰＯＦファイルの印刷中に何らかの理由で印刷が中断された後、印刷が再開された時は、印刷が中止されたページの先頭から、その印刷処理が再開される。
【００４７】
「progress」は、印刷予定枚数の内、現在何枚目を印刷しているか（Ｎ／Ｔ）を示す。ここでＮは現在の印刷ページ、Ｔはトータルの印刷枚数を示す。「imagePrinted」は印刷済みの画像枚数を示す。
【００４８】
次に図８（Ｂ）に示すDeviceStatusについて説明する。
【００４９】
「dpsPrintServiceStatus」は、ＰＤプリンタ１０００の状態を意味し、ＤＳＣ３０１２に通知される。この状態には、アイドル、プリント、ポーズ状態が含まれる。「jobEndReason」は、プリント処理の終了状況を意味し、最終ページの印刷が完了するとＤＳＣ３０１２に通知される。「errorStatus」はそのエラーの状態を意味し、エラーが発生した場合に通知される。「errorReason」は、そのエラーの発生理由を意味し、「errorStatus」と共に通知される。「disconnectEnable」は、ＵＳＢケーブル５０００が外されても印刷可能であることを意味し、ＰＤプリンタ１０００からＤＳＣ３０１２に通知される。「CapabilityChanged」は、ＰＤプリンタ１０００におけるcapabilityが変更されたことを意味し、ＤＳＣ３０１２に通知される。「newJobOK」は、ＰＤプリンタ１０００が印刷要求を受付け可能であることを意味し、ＤＳＣ３０１２に通知される。
【００５０】
＜GetCapabilityの説明＞
図９は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるプリンタのcapability取得方法の具体例を説明する図である。
【００５１】
図９（Ａ）は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、ＰＤプリンタ１０００のcapabilityを要求するコマンドを説明する図である。
【００５２】
図９（Ａ）の例では、＜getCapability＞，＜/getCapability＞によりcapabilityの取得が要求され、＜capability＞，＜/capability＞で囲まれる＜layouts/＞９０１により、ＰＤプリンタ１０００がcapabilityとして、レイアウト印刷機能を有しているかどうかが問い合わせられている。
【００５３】
図９（Ｂ）は、図９（Ａ）のcapability要求に応じて、ＰＤプリンタ１０００からＤＳＣ３０１２に対してcapabilityが返送される例を示す図である。
【００５４】
図中、＜capability＞９０２，＜/capability＞９０６で囲まれるcapability情報の中で、＜layouts＞９０３，＜layouts/＞９０５で囲まれるレイアウト情報９０４により、ＰＤプリンタ１０００が有しているレイアウト機能が通知されている。
【００５５】
この図９（Ｂ）から明らかなように本実施の形態では、capabilityは８桁のコード（「57000000」、「57010000」、「57020000」）でＰＤプリンタ１０００からＤＳＣ３０１２に送信されている。この実施の形態では、レイアウトのcapabilityは、上２桁が「５７」で始まるコードと規定されており、次の２桁が１枚のシートに何枚の画像を印刷できるかを示すレイアウト情報を示している。即ち、上４桁が「５７０１」は、１枚のシートに１つの画像を印刷するレイアウト印刷が可能であることを示し、「５７０２」は１枚のシートに２つの画像を印刷するレイアウト印刷機能を有することを示している。尚、上４桁が「５７００」の場合は、ＰＤプリンタ１０００のデフォルトレイアウトでレイアウト印刷するモードを示している。つまり図９（Ｂ）の例では、ＰＤプリンタ１０００のレイアウト印刷のcapabilityは、１枚のシートに一つの画像のレイアウト印刷、１枚のシートに二つの画像のレイアウト印刷、及びＰＤプリンタ１０００のデフォルトレイアウト印刷の３通りのレイアウト印刷機能を有していることを示していることになる。
【００５６】
尚、図９では、レイアウト印刷に関してのcapabilityの送受信の仕方について説明したが、このcapabilityにより確認できる機能は、このレイアウト印刷に限るものでないことはもちろんである。例えば、ＰＤプリンタ１０００が印刷可能なシートの種類についてのcapability、プリンタ１０００が印刷可能なシートサイズのcapability、プリンタ１０００が対応できる画像データのファイルタイプについてのcapability、プリンタ１０００が日付やファイル名を画像に付加して印刷できるか否かのcapability、プリンタ１０００が対応できる印刷モードについてのcapability、プリンタ１０００が対応できる画像の自動補正機能の有無についてのcapability等様々なcapabilityがあるが、ここではこれらcapabilityの詳細な通信仕様に関しての説明は割愛する。
【００５７】
図１０は、本実施の形態に係るダイレクト印刷システムで使用される、ＰＤプリンタ１０００からＤＳＣ３０１２へのステータス等の通知をするためのコードの構成例を説明する図である。ここでは前述したように、各コードは８桁で、各桁の数値は１６進コードで構成されている。
【００５８】
ここで上位４桁「ＸＸＸＸ」はメジャーコード、下位４桁「ＹＹＹＹ」はマイナーコードである。このコードを、図９（Ｂ）のレイアウト情報９０４に当て嵌めると、上位４桁のメジャーコードでレイアウト印刷であり、かつ１枚のシートに幾つの画像を印刷するレイアウト印刷であるのかが示される。またマイナーコードにより、メジャーコードで示したcapabilityを更に詳細に規定する。
【００５９】
例えば、１枚のシートに２つの画像を印刷するレイアウト印刷の場合、メジャーコードは「５７０２」となり、下位の４桁のマイナーコードで、これら２枚の画像が印刷されるシート上の配置を指定することができる。例えば本実施の形態では、メジャーコード「５７０２」に続くマイナーコードが「００００」の場合は、２つの画像を上下（或はサイズに応じて左右）に並べて印刷する印刷レイアウトを指定するものとし、またマイナーコードが「０００１」の場合は、２つの画像を重ねてオーバーレイ印刷する印刷レイアウトを指定するものとする。
【００６０】
本実施の形態では、ＰＤプリンタ１０００は、８桁のcapabilityを示すコードをＤＳＣ３０１２に送ることにより、ＰＤプリンタ１０００が備えている印刷機能capabilityをＤＳＣ３０１２に伝えている。ここで、この８桁のコードは、前述したように上位４桁のメジャーコードと下位４桁のマイナーコードとで構成されており、メジャーコードは一般的なカメラが必ず認識できるコード、マイナーコードはカメラによっては読み飛ばされるか、認識されない可能性のあるコードというように、認識レベルが異なる２つのコードが組み合わされて構築されている。つまり、ＰＤプリンタ１０００は２つの画像のレイアウト印刷が行え、且つその並べ方は２つの画像を上下或は左右にただ並べて印刷するだけのオーソドックスなレイアウトのレイアウト印刷（「５７０２００００」）ができ、また２つの画像を重ねてオーバーレイ印刷する複雑なレイアウト印刷（「５７０２０００１」）もできるというcapabilityを有するプリンタである旨をＤＳＣ３０１２に通知できる。
【００６１】
これを受信したＤＳＣが、メジャーコードだけを理解できるカメラの場合には、そのＤＳＣのＵＩ表示には、「２枚のレイアウト印刷が選択できる」ことだけが表示される。一方、そのＤＳＣがマイナーコードまで認識できるＤＳＣであれば、そのレイアウト印刷における２つの画像の配列の仕方まで指定できるＵＩ表示がなされて、そのＤＳＣのユーザは、よりバラエティーに富んだ印刷レイアウトの設定が可能になる。
【００６２】
以上のように、複数のレベルの情報を１つのコードで伝達できるため、１つのコードで多彩な条件のレイアウト印刷に対応することができる。
【００６３】
本実施の形態では、レイアウト印刷と、このレイアウト印刷の一印刷形態であるフレーム印刷とが１つのコードで表現されているが、もし別のコードで表現されている場合の弊害について以下簡単に説明する。
【００６４】
もし、これら２つのコードが別コードであった場合には、以下の通り制御されると思われる。即ち、まず図９（Ａ）で説明した様に＜getCapability＞の＜layouts＞で、プリンタの有するレイアウト印刷機能のcapabilityがＤＳＣからＰＤプリンタに要求され、これに応答してＰＤプリンタ１０００の有するレイアウト印刷機能が送信されて取得される。次いで、例えばフレーム印刷のcapabilityを取得するタグとして、＜Frames＞など別のタグが定義されて、図９（Ａ）のようにしてＤＳＣからＰＤプリンタに対してフレーム印刷機能のcapabilityが要求される。しかしながら前記の通り、フレーム印刷機能はレイアウト印刷機能に対して従属性の高い機能であるため、ＰＤプリンタ１０００は独立して＜Frames＞のcapabilityだけを返信することができない可能性が高い。
【００６５】
従って、仮にＰＤプリンタ１０００が２枚のレイアウト印刷から６４枚のレイアウト印刷までのレイアウト印刷に対応可能と返信していた場合には、そのＰＤプリンタ１０００がフレーム印刷機能を有しているかどうかを識別するためには、ＤＳＣ３０１２は、これら複数のレイアウト印刷機能のそれぞれに対して、＜Frames＞によるフレーム印刷機能のcapabilityを問い合わせなければならなくなる。これでは、capability情報のやり取りに多大な負荷がかかり、ユーザがダイレクト印刷を実施したいと思ってから、実際にダイレクト印刷機能が使えるようになるまでに長い待ち時間が生じてしまう。
【００６６】
またＤＳＣ３０１２とＰＤプリンタ１０００との間での煩雑なやり取りが増えるので、通信負荷も大きくなり、また、このような煩雑な通信を行うために、その通信結果を判断し、その判断結果に従った動作をさせるためのプログラムが必要になり、そのプログラムサイズが肥大化する。このような問題は、カメラやプリンタの開発期間の遅延やコストの増大を招くことになる。またＰＣとは異なり、ＣＰＵの処理能力やメモリ容量に制限の大きいカメラやプリンタの場合には、このようなプログラムサイズの肥大化やコストアップは極めて大きな問題となる場合がある。
【００６７】
しかし本実施の形態によれば、前述したように＜layouts＞capabilityのメジャーコードを使用してレイアウト印刷の可否を通知し、更に＜layouts＞capabilityのマイナーコードを使用して、そのレイアウト印刷に関連して、より特殊なフレーム印刷機能の有無を通知できるようにしている。これにより、通信負荷や実装負荷の増大やユーザの待ち時間の増大などを大幅に軽減できるという効果がある。
【００６８】
またプリンタ１０００においても、ＤＳＣ３０１２がフレーム印刷機能に関する機能情報を要求しているか否かに関わらず、常に同じプリンタ１０００のcapabilityを返すだけの実装で済むので、プリンタ１０００におけるプログラムの実装負荷も低減できるという効果も期待できる。
【００６９】
＜Info画像の特定方法＞
次に、フレーム印刷を行う時に、Info画像（背景画像）となる画像の特定の仕方について説明する。
【００７０】
印刷条件は前述の図７で説明した通り、StartJob（印刷Jobを指定するコマンド）を用いて、ＤＳＣ３０１２からＰＤプリンタ１０００に情報が送られる。ここで印刷対象の画像の指定は、＜fileID＞（図７の７０９）のタグで指定される。即ち、このタグ７０９に印刷画像のハンドル番号が羅列されて印刷対象の画像が特定される。図７に示す例は、１枚のシートに複数の画像を印刷するレイアウト印刷の指定ではなく、１つの画像だけを印刷する例であるため、ハンドル番号（ハンドル番号「０００００００１」）は１つしか記載されていないが、１枚のシートに２つの画像を印刷するレイアウト印刷の場合であれば、同様に８桁で表現されるハンドル番号が２つ並列に送られることになる。
【００７１】
こうして印刷される画像のハンドル番号がＰＤプリンタ１０００に送信されると、ＰＤプリンタ１０００は、印刷に先立って、それらハンドル番号で指定された画像ファイルをＤＳＣ３０１２に対して要求する。この際、画像ファイルを取得する前に、まず画像の情報を取得し画像ファイルを受信する準備を行う必要がある。
【００７２】
図１１（Ａ），（Ｂ）は、ＰＤプリンタ１０００とＤＳＣ３０１２との間で実行される画像データのやり取りのためのコマンド例を示す図である。
【００７３】
図１１（Ａ）は、ＰＤプリンタ１０００からＤＳＣ３０１２に対してハンドル名が「０００００００１」の画像データを要求する場合のコマンド例を示している。
【００７４】
図１１（Ｂ）は、この要求に応えてＤＳＣ３０１２からＰＤプリンタ１０００に対して画像データを送信する例を示している。ここでは、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、画像ファイルのタイプ＜fileType＞と、画像ファイルのサイズ＜fileSize＞（バイト数）の情報が送信されている。
【００７５】
更に具体的には、例えば、このコマンドがＵＳＢのＰＴＰ上で実現される場合、以下の通り処理される。即ち、ＵＳＢのホストであるＰＤプリンタ１０００は、ＵＳＢのスレーブであるＤＳＣ３０１２から印刷指定されている画像のハンドル番号の「ObjectInfoDataset」を受信する。ここで、この「ObjectInfoDataset」は、複数のデータフィールドからなり、例えばファイルタイプ情報の取得であれば、このデータフィールドの中の「ObjectFormatCode」の内容からファイルのタイプを特定できる仕組みとなっている。尚、ＰＴＰでは、「ObjectFormatCode」は４桁の１６進コードで記載されているが、「ObjectFormatCode」の表で該コードが具体的に何のファイルタイプなのか（例えば、ＪＰＥＧ、ＴＩＦＦ、ＧＩＦなど）が別途規定されており、これによりファイルタイプが特定できるようになっている。また、この印刷が指定されている画像が格納されているフォルダも、「ObjectInfoDataset」のデータフィールドの情報から特定することができる。
【００７６】
尚、ここでは、トランスポート層以下がＵＳＢ−ＰＴＰである場合を一例にして、ファイルの情報の入手方法の概要を説明したが、この様なファイルの情報の入手は、インターフェースに応じて異なるものの、多くのインターフェースで一般的に取得できるものである。
【００７７】
本実施の形態では、Info画像は特定のフォルダに保存されているものとする。具体的には、ＤＳＣ３０１２の画像ファイルを格納しているストレージデバイス（一般的にはメモリカード）のルートの直下に、ディレクトリ「\Info\」（フォルダ）を作成し、Info画像をこのフォルダに格納するものとする。従って、「StartJob」で印刷JobがＰＤプリンタ１０００に入力されると、そのＰＤプリンタ１０００は、その中の＜fileID＞タグ７０９で印刷対象の画像のハンドル名を取得する。次いで、そのハンドル名から画像ファイルの実態をロードするに先立って、画像ファイルの詳細情報を入手する。このとき、その画像ファイルが格納されているフォルダ情報を取得し、そのフォルダ情報が「\Info\」であれば、その画像はInfo画像であると判断する。またそれ以外のフォルダに格納されている画像であれば、Target画像であると判断する。このようにして、Info画像とTarget画像との判別を行っている。
【００７８】
尚、本実施の形態では、Info画像のフォルダを「\Info\」と特定したが、このフォルダ名、フォルダの位置でなくても、予め特定されたフォルダであれば良いことは言うまでもない。またInfo画像を格納するフォルダは１つでなくて複数あってもよい。
【００７９】
更に、Info画像のフォルダを特定するのではなく、Target画像のフォルダを特定することにより、Info画像とTarget画像とを判別するようにしても良い。
【００８０】
更には、本実施の形態ではフォルダを特定することによりInfo画像を特定したが、「fileType」で特定しても勿論良い。例えば、Info画像は全てＧＩＦと規定することにより、Info画像を特定することもできる。但し、この方法では、Target画像にＧＩＦを使用できなくなるので、ファイル名の一部、例えば、Info画像はファイル名が「Info」で始まると規定しておくことで、Info画像を特定することもできる。
【００８１】
また、画像ファイル自体に情報を持たせることもできる。つまり画像ファイルのタグに、この画像がInfo画像であることを示す情報を埋め込んでも良い。
【００８２】
また更には、＜fileID＞タグで画像ファイルのハンドル名を記載する際、そのタグの中で先頭のハンドル名で指定された画像がInfo画像であるとすることにより、＜fileID＞タグにおける画像ファイルのハンドル名の記載順番で特定しても良い。その場合、印刷Jobによっては、Info画像は１つの画像とは限らないが、＜layouts＞タグに記載された印刷レイアウトのコードでInfo画像の数を一義的に決定できるので、＜fileID＞タグに記載される順番で規定することも可能となる。
【００８３】
尚、上述したように、Info画像とTarget画像が特定された後、これら画像を用いてどの様な印刷がなされるかは製品の実装に大きく依存するので色々な場合が許される。
【００８４】
本実施の形態では、１枚のシートに２つの画像をレイアウトしてフレーム印刷する場合、Info画像をシート全面に印刷し（この時必要に応じて拡大縮小処理が施される）、その上にTarget画像をオーバーレイ印刷するようにしても良い。これは、Target画像とInfo画像とを同じサイズで上書き印刷すると、Info画像が見えなくなるため、例えば、Terget画像はInfo画像の縦横７０%の大きさで、重心揃えで印刷するようにしている。従って、Info画像に含まれる文字列や画像は、上下左右の開き領域に記載されていることが望ましい。またInfo画像、Target画像のファイルタイプは本実施の形態では、共にＪＰＥＧファイルとしているが、このファイルタイプに制限は勿論ない。
【００８５】
また本実施の形態では、オーバーレイ印刷は単純に、上書きオーバーレイ印刷としたが、これ以外にも例えばTarget画像が透けてInfo画像が見える仕様や、オーバーラップ領域で画素単位で各種演算処理を施してオーバーレイする方法など、周知のオーバーレイ仕様を適用しても良い。
【００８６】
＜本実施の形態１の処理説明＞
図１２は、本発明の実施の形態１に係るダイレクト印刷システムにおけるレイアウト印刷、フレーム印刷を行う場合の処理を示すフローチャートである。
【００８７】
この処理の前段では、ＤＳＣ３０１２とＰＤプリンタ１０００が接続されると不図示の仕様に従ってコンフィギュレーションが行われ通信の確立が行われる。次いで互いにダイレクト印刷の対応製品であることの確認が行われる。これによりＤＳＣ３０１２は、ユーザにＵＩを提供するためにＰＤプリンタ１０００が提供可能な印刷機能capabilityをＰＤプリンタ１０００から入手する。そして、この取得したcapabilityに応じてＵＩを構築し、ユーザからの印刷命令を待つアイドル状態に移行する。前述したように、ＤＳＣ３０１２とＰＤプリンタ１０００がこの時点までに行わねばならない通信は最小限に抑えられているのでユーザの待ち時間を非常に短くできる。
【００８８】
ここでユーザがＤＳＣ３０１２のＵＩを操作してダイレクト印刷を行う画像や印刷仕様を決定することにより、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して印刷指示が出される。これによりＤＳＣ３０１２は、ステップＳ１２１で、ユーザの印刷指示を印刷Job（即ち、「StartJob」）に変換してＰＤプリンタ１０００に送信する。
【００８９】
この印刷Jobを受信したＰＤプリンタ１０００は、ステップＳ１２２で、この印刷Jobを解析し、ＤＳＣ３０１２から印刷対象となる画像データの情報入手が行われる。ここで印刷仕様がフレーム印刷でない場合はステップＳ１２４に進み、入力される画像情報の受信メモリを確保するために「fileSize」と、入力した画像データをレンダリングするための「fileType」の情報の取得が行われる。
【００９０】
一方、印刷仕様がフレーム印刷であった場合はステップＳ１２３に進み、Info画像とTarget画像を特定するために「fileSize」、「fileType」情報に加えて、その画像が格納されているフォルダ情報が取得される。こうしてステップＳ１２３或はステップＳ１２４を実行するとステップＳ１２５に進み、この画像情報の取得を、印刷Jobで特定されている全ての画像について実行したかを判定し、全ての画像について実行していないときはステップＳ１２２に戻るが、全ての画像について実行した時はステップＳ１２６に進んで、必要な画像データを取得する。次にステップＳ１２７に進み、その取得した画像データに画像処理（レンダリング、拡大縮小処理、色処理、量子化処理、レイアウト処理など）を施して印刷データを生成し、その印刷データに基づいて印刷を行う。
【００９１】
ここで前述したように、ＤＳＣ３０１２では、８桁のレイアウトコード（図９（Ｂ）の９０４）の下位４桁のマイナーコードの解釈は任意となっている。よって、＜layouts＞のタグでcapabilityを送受信する時に、ＰＤプリンタ１０００から送られてくるマイナーコードを厳密に解釈して制御しても勿論良いが、マイナーコードの解釈は必ずしも行われなくても良い。即ち、ＤＳＣ３０１２は、ＰＤプリンタ１０００がフレーム印刷に対応しているか否かに拘わらず、フレーム印刷を行いたい時には、デフォルトでフレーム印刷の仕様で印刷Jobを作成して、その印刷JobをＰＤプリンタ１０００に送信すれば良い。
【００９２】
これを受信したＰＤプリンタ１０００は、レイアウト印刷のフレーム印刷に対応していれば、ＤＳＣ３０１２から要求されたフレーム印刷が実行される。また仮に、ＤＳＣ３０１２からフレーム印刷を指示する印刷Jobが送信されても、ＰＤプリンタ１０００がフレーム印刷に対応していない場合、即ち、ＰＤプリンタ１０００が下位４桁のマイナーコードを無視するか或は認識できない場合には、そのＰＤプリンタ１０００では通常のレイアウト印刷が行われるだけで目的は達せられる。
【００９３】
図１３は、本実施の形態１におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。
【００９４】
ここでは２つの原画像１３００が指示され、＜layout＞コードとして、「５７０２００００」（２つの画像をただ並べて印刷するだけのオーソドックスなレイアウト印刷）が送られた場合は、「結婚しました...」という文字列の画像と、「花嫁の写真」が１枚のシートに並んで印刷される（１３０１）。
【００９５】
また、２つの原画像１３００が指示され、＜layout＞のコードとして「５７０２０００１」（フレーム印刷）が送られた場合には、「結婚しました...」という文字列の画像がInfo画像として扱われて、シートの背景に全面印刷される。更に「花嫁の写真」がTarget画像として、Info画像よりも縮小されてInfo画像に上書き印刷される。こうして１枚のシートに１枚の写真として印刷される（１３０２）。
【００９６】
ここで仮に、＜layout＞のコードとして「５７０２０００１」がＤＳＣ３０１２からＰＤプリンタ１０００に送られても、もしＰＤプリンタ１０００が、このフレーム印刷に対応していない場合は、コード「５７０２００００」が送られた場合と全く同じ形式で１枚のシートに文字列の画像と、「花嫁の写真」が並んで印刷される。
【００９７】
このようにフレーム印刷に対応していないＰＤプリンタ１０００に対して＜layout＞コードとして「５７０２０００１」が送信されてフレーム印刷が指示された場合には、従来は、「結婚しました...」という文字列の画像と「花嫁」の写真画像のいずれか、或はそれぞれが全く別々の画像として別々のシートに印刷されることになるか、或は、レイアウトが解釈できないとして全く印刷されないかのいずれかであったが、本実施の形態１では、少なくとも「結婚しました...」という文字列の画像と「花嫁」の写真画像、即ち、関連情報と、その関連画像とが１枚のシートに並んで印刷されることになり、大変有効である。
【００９８】
図１４は、本実施の形態１に係るＰＤプリンタ１０００におけるレイアウト印刷或はフレーム印刷処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されており、このプログラムはＣＰＵ３００２の制御の下に実行されて、このフローチャートで示す処理が実行される。
【００９９】
この処理は前述の図１２のフローチャートでも説明したように、プリンタ１０００とＤＳＣ３０１２との間での通信が確立された後で実行される。まずステップＳ１４１で、ＤＳＣ３０１２からの印刷ジョブを受信する。次にステップＳ１４２２に進み、この印刷ジョブに含まれるコードの内、メジャーコードを解析する。このメジャーコードは、前述したように、この通信手順を確立できるプリンタ１０００では、どの機種も解釈できるコードである。そしてステップＳ１４３に進み、このメジャーコードによりレイアウト印刷が指示されているかをみる。レイアウト印刷が指示されていないときはステップＳ１４４に進み、そのコードに対応する処理を実行する。
【０１００】
ステップＳ１４３で、レイアウト印刷に対応しているときはステップＳ１４５に進み、次に、そのコードに含まれるマイナーコードを解析可能かを判定する。解析可能でないときはステップＳ１４６に進み、通常のレイアウト印刷を実行する。一方、ステップＳ１４５でマイナーコードの解析が可能であればステップＳ１４７に進み、そのマイナーコードで、上述したフレーム印刷が指示されているかをみる。フレーム印刷が指示されていないときはステップＳ１４８に進み、そのマイナーコードで指示された処理を実行する。
【０１０１】
一方、マイナーコードによりフレーム印刷が指示されているときはステップＳ１４９に進み、背景画像となるInfo画像を特定する。このInfo画像の特定は、前述のようにＤＳＣ３０１２に対して、画像が記憶されているフォルダ名を問い合わせて判定してもよく、或は画像タイプ（fileType）により判定しても良い。こうしてInfo画像が特定されるとステップＳ１５０に進み、そのInfo画像を、印刷対象のシートサイズに変倍（拡大或は縮小）する。次にステップＳ１５１に進み、そのInfo画像上に印刷されるtarget画像を取得してビットイメージに展開する。次にステップＳ１５２に進み、ステップＳ１５０で、シートサイズに変倍したInfo画像と、ステップＳ１５１で展開したターゲット画像とを合成する。尚、この合成は、前述のように、これらの画像を単に加算してものでも良く、或は透かしなどにより背景が透けて見えるなどの画像効果を含むものでも良い。こうしてステップＳ１５３に進み、その生成されたフレーム画像をプリンタエンジン３００４により印刷する。
【０１０２】
以上説明したように本実施の形態１によれば、複雑で煩雑なcapabilityの交換を行うことなく、またプリンタの仕様に応じて複数の印刷Jobを生成できる能力をカメラに強いることなく、プリンタの仕様に従った最適なレイアウト印刷を、もしくはレイアウト印刷の拡張機能であるフレーム印刷を行うことができる。
【０１０３】
［実施の形態２］
次に本発明の実施の形態２について説明する。この実施の形態２では、カメラからプリンタに対してフレーム印刷を指示するための特別なコマンドを用意するのではなく、カメラとプリンタとの間で予め設定されている各種条件を満足しているかどうかにより、受信した印刷ジョブに基づいてフレーム印刷を行うかどうかをプリンタ側で判断して印刷を行う例を説明する。
【０１０４】
図１５は、本発明の実施の形態２に係る構成及び処理形態を説明する図である。
【０１０５】
図において、１７０１はカメラ付き携帯電話で、前述の実施の形態１に係るＤＳＣ３０１２と同様の役割を行う。またプリンタ１７０２は、上記実施の形態１に係るＰＤプリンタ１０００と同様の機能及び役割を実現できる。本実施の形態２は、これらカメラ付き携帯電話１７０１及びプリンタ１７０２及びこれら同士を接続する不図示の接続手段によって構成される。尚、この接続手段は上記実施の形態１におけるケーブル５０００、或は無線による接続形態も含む。
【０１０６】
１７０３はカメラ付き携帯電話１７０１で撮影された写真画像である。１７０４はコンテンツプロバイダーで、カメラ付き携帯電話１７０１は、このコンテンツプロバイダ１７０４からインターネット等の既知の配布手段を介して、この写真画像１７０３に重畳させたいフレーム情報１７０５，１７０６を取得できる。またカメラ付き携帯電話１７０１は必ずしもこれらフレーム情報１７０５及び１７０６をコンテンツプロバイダ１７０４から取得する必要はなく、これらフレーム情報１７０５，１７０６は、携帯電話１７０１の本体に事前に内蔵されたビルトインフレームであっても良い。１７０７はプリンタ１７０２における印刷例を示し、ここでは写真画像１７０３及びフレーム情報１７０５，１７０６がカメラ付き携帯電話１７０１からプリンタ１７０２へ転送され、このプリンタ１７０２で合成されて印刷された結果を示している。即ち、この合成印刷画像１７０７では、背景画像のフレーム情報１７０５の上に写真画像１７０３が配置され、更にその上に文字イメージであるフレーム情報１７０６が印刷されている。
【０１０７】
本実施の形態２では、プリンタ１７０２により合成されて印刷される画像例として、記録用紙１枚に対して１枚の写真画像と、複数或は単数のフレーム画像とを合成して、フチ無しで印刷する場合と、記録用紙１枚に対して１６枚の写真画像を、それぞれ複数或は単数のフレーム画像と合成し、それぞれフチ有りで印刷する場合で説明する。尚、本発明はこれに限定されず、これ以外の種々の機能の組み合わせが可能である。
【０１０８】
図１６は、本実施の形態２に係る画像合成の一例（１−ｕｐ印刷）を説明する図である。
【０１０９】
１８０１〜１８０３は、１枚の写真画像１８０４に重畳されるフレーム情報を示している。フレーム情報１８０１は絵文字などのイメージ文字を含み、フレーム情報１８０２は付加されるキャラクタ、フレーム情報１８０３は背景画像を示している。尚、各フレーム画像の画像フォーマットはＰＮＧで、写真画像１８０４の画像フォーマットはＪＰＥＧである。１８０５は、フレーム情報１８０１〜１８０３と写真画像１８０４とが合成されて印刷された合成画像を示している。この合成画像１８０５は、写真として合成された画像が印刷されれば良いため、プリンタ１７０２でにおいて、特に画像ファイルとして記憶媒体などに格納しておく必要はない。ＰＮＧは、透明度の指定が可能な画像フォーマットであり、このＰＮＧ画像フォーマットのフレーム情報と他のフレーム情報及びＪＰＥＧ画像フォーマットの写真との重畳は公知のαブレンド方式を用いることとする。
【０１１０】
尚、ここでフレーム情報１８０１〜１８０３及び写真画像１８０４の合成順は、図１６の左から順に手前側に配置される。即ち、イメージ文字のフレーム情報１８０１が欠けることなく最優先で最も手前側に配置され、その下側にフレーム情報１８０２、そして背景フレームのフレーム情報１８０３が配置され、その背景フレーム内に写真画像１８０４が配置される。フレーム情報１８０１の代表的な用途としてはイメージ文字や絵文字等のように、部分的な画像欠損により、その画像本来の意図が達成されない可能性が高いイメージとする。フレーム情報１８０２の代表的な用途としては、背景フレームの上に描かれる動物等の付加キャラクタである。フレーム情報１８０３は、前述のフレーム情報１８０１〜１８０２の背景となるフレーム情報で、代表的な用途としては、図１５のフレーム１７０７のように他のフレーム情報がその上に重畳されて描画される画像で、部分的な画像欠損が生じても、その画像本来の目的がさほど阻害されない画像である。
【０１１１】
図１７は、実施の形態２に係る他の画像合成例（１枚の用紙に１６枚の写真印刷）を説明する図である。
【０１１２】
ここでは記録用紙１９００に、１９０１〜１９１６で示す１６枚の合成画像１〜１６がそれぞれ縁有りで印刷されている。ここで各合成画像は、前述のように複数或は単数のフレーム情報と一つの写真画像とが合成されている。各合成画像におけるフレーム情報と写真画像の合成は、前述の図１６を参照した説明と同様にして作成される。
【０１１３】
図１８は、ＰＮＧ画像フォーマットを構成するデータチャンクの種類を説明する図である。
【０１１４】
２０００はＰＮＧ画像フォーマットの仕様上、ＰＮＧ画像を復号するプリンタ１７０２にとって、これらのチャンクの復号機能が必須となる必須チャンク群を示し、その具体的な構成要素は、２００１〜２００４で示す各チャンクである。２０１０はＰＮＧ画像フォーマットの仕様上、ＰＮＧ画像を復号するプリンタ１７０２にとって、これらのチャンクの復号機能が必須とはならないオプションチャンク群であり、その具体的な構成要素は２０１１〜２０２０で示す各チャンクである。
【０１１５】
本実施の形態２に係るフレーム印刷を行う際には、必須チャンク２０００に加えて、オプションチャンク２０１０の中から背景色の定義チャンク「bKGB」２０１１、透過色の設定チャンク「tRNS」２０１２が必要であり、これら合計６つのチャンク２００１〜２００４，２０１１，２０１２の復号機能がプリンタ１７０２に搭載されている。
【０１１６】
図１９は、本実施の形態２に係る画像入力装置２１０１と画像出力装置２１０２との間におけるフレーム印刷指示の流れを説明する図である。
【０１１７】
図において、画像入力装置２１０１は、フレーム印刷を指示できる機能をサポートしている画像入力装置（カメラ付き携帯電話１７０１に相当）である。画像出力装置２１０２は、フレーム印刷機能をサポートしている画像出力装置（プリンタ１７０２に相当）である。本実施の形態２では、フレーム印刷を規定していない既存の印刷サービス（例えばピクトブリッジ）を拡張することなくフレーム印刷を実施する例を説明する。そのために、フレーム印刷機能をサポートしている画像出力装置２１０２のフレーム印刷機能は、少なくとも以下の既定の条件を満たしているフレーム印刷指示に対して必ずフレーム印刷を実行するものとする。また、フレーム印刷指示機能をサポートしている画像入力装置２１０１は、必ず以下の既定の条件を満たしたフレーム印刷指示を行うものとする。
【０１１８】
・写真画像の画像フォーマットはＪＰＥＧである。
【０１１９】
・フレーム情報のフォーマットはＰＮＧである。
【０１２０】
・合成可能なフレーム数は３である。
【０１２１】
・ＰＮＧ→ＪＰＥＧの順番で組み合わせ、印刷指定の場合にフレーム印刷を行う。この順番は、「DPS_StartJob」に含まれる画像ファイルＩＤの順番とする。
【０１２２】
また本実施の形態２では、画像出力装置２１０２は印刷レイアウトとして、図１６の様な、縁無しで１枚の用紙に１枚の画像印刷（1-up borderless）を行う場合、及び図１７に示すように、１枚の用紙に１６舞の合成画像を印刷（16-up）する場合をサポートしているものとする。
【０１２３】
画像入力装置２１０１と画像出力装置２１０２との間では、接続、コンフィグレーション及び画像入力装置２１０１による「ConfigurePrintService」の発行、及び画像出力装置２１０２による「NotifyDeviceStatus(Idle)」の発行６０１（図６参照）までが完了している。しかし、この時点では、これら２つの装置ともに相手側の装置がフレーム印刷をサポートしているか否かは認識していない。
【０１２４】
まず最初にステップＳ２１０１で、画像入力装置２１０１は画像出力装置２１０２に対して「DPS_GetCapability」を発行して、画像出力装置２１０２がサポートしている機能を問合せる。ここでCapability情報として「fileTypes」を指定している。即ち、ここでは画像出力装置２１０２がサポートしている画像ファイルの種類を問合せている。この「DPS_GetCapability」の具体例は以下の様になる。
【０１２５】
＜input＞
＜getCapability＞
＜capability＞
＜fileTypes/＞
＜/capability＞
＜/getCapability＞
＜/input＞
次にステップＳ２１０２で、画像出力装置２１０２はこの問合せに対応して、画像出力装置２１０２がサポートしている画像フォーマットのCapablility情報(fileTypes)を返信する。ここで画像出力装置２１０２は、ＪＰＥＧ画像フォーマット及びＰＮＧ画像フォーマットをサポートしているので、ステップＳ２１０２で返信されるCapability情報(fileTypes)には、ＪＰＥＧ及びＰＮＧに対応するコードが含まれている。この場合のCapability情報(fileTypes)の具体例は以下の様になる。
【０１２６】
＜output＞
＜result＞10000000＜/result＞
＜getCapability＞
＜capability＞
＜fileTypes＞53000000 53010000 530C0000＜/fileTypes＞
＜/capability＞
＜/getCapability＞
＜/output＞
これを受信した画像入力装置２１０１は、接続対象の画像出力装置２１０２から返信されたCapability情報(fileTypes)を調べ、ＪＰＥＧに対応するコード「53010000」及びＰＮＧに対応するコード「530C0000」が含まれているかどうかを確認する。この時点でコード「53010000」又は「530C0000」が含まれていた場合は、既定の条件を満たしているので、画像入力装置２１０１は相手側の画像出力装置２１０２がフレーム印刷をサポートしているとみなす。逆に、コード「53010000」及び「530C0000」が含まれていなかった場合には既定の条件を満たしていないので、画像入力装置２１０１は相手側の画像出力装置２１０２がフレーム印刷をサポートしていないとみなして、それ以後、その画像出力装置２１０２に対してはフレーム印刷指示を行わない。
【０１２７】
従ってステップＳ２１０３以降の処理は、画像入力装置２１０１が相手側の画像出力装置２１０２がフレーム印刷をサポートしていると判定した場合に実行される。画像入力装置２１０１は、ステップＳ２１０３で再度「DPS_GetCapability」を発行して、レイアウト（layouts）に関する画像出力機器２１０の機能を問合せる。この場合のDPS_GetCapabilityの具体例は以下の様になる。
【０１２８】
＜input＞
＜getCapability＞
＜capability＞
＜layouts/＞
＜/capability＞
＜/getCapability＞
＜/input＞
次にステップＳ２１０４では、この（layouts）に関する機能の問合せに対して画像出力装置２１０２は、この画像出力装置２１０２がサポートしているレイアウトのCapability情報(layouts)を返信する。ここで、画像出力装置２１０２はレイアウト機能Capability情報(fileTypes)として、例えば1-up borderless（１ページあたり写真１枚をフチ無し印刷）をサポート「1-up borderless」している場合には、それに対応するコード「57FF0000」を含め、また１６−ｕｐに対応する機能をサポートしている場合には、それに対応するコード「57100000」、更には「プリンタ実装依存（プリンタにおけるデフォルトの設定）」を意味するコード「57000000」を含めて応答する。この場合のCapability情報(layouts)の具体例は以下のようになる。
【０１２９】
＜output＞
＜result＞10000000＜/result＞
＜getCapability＞
＜capability＞
＜layouts＞57000000 57100000 57FF0000＜/layouts＞
＜/capability＞
＜/getCapability＞
＜/output＞
以上の手順により画像入力装置２１０１は、画像出力装置２１０２が有しているCapability情報(fileTypes)及びCapability情報(layouts)を取得することができる。尚、レイアウト情報については前述の図９を参照されたい。
【０１３０】
次にステップＳ２１０５で、画像入力装置２１０１は、どのＪＰＥＧ写真画像を用いるか、またどのＰＮＧフレーム画像を用いるか、等の設定をユーザ操作により設定し、その設定内容を記述した「DPS_StartJob」を画像出力装置２１０２に対して発行する。ここで前述の図１６の例に相当する「DPS_StartJob」の具体例は以下の様になる。
【０１３１】
＜startJob＞
＜jobConfig＞
＜fileType＞52000000＜/fileType＞
＜layout＞57FF0000＜/layout＞
＜jobConfig＞
＜printInfo＞
＜fileID＞00000001＜/fileID＞
＜/printInfo＞
＜printInfo＞
＜fileID＞00000002＜/fileID＞
＜/printInfo＞
＜printInfo＞
＜fileID＞00000003＜/fileID＞
＜/printInfo＞
＜printInfo＞
＜fileID＞00000004＜/fileID＞
＜/printInfo＞
＜/startJob＞
ここでは、＜fileType＞に「複数の画像フォーマットの混在」を意味するコード「52000000」が設定されている。これは「DPS_StartJob」でＪＰＥＧとＰＮＧの２種類の画像フォーマットの画像の合成出力を指示するためである。また＜layout＞には、「1-up borderless」に対応するコード「57FF0000」が設定されている。そして＜fileID＞には、４つのファイルＩＤ「00000001」，「00000002」，「00000003」，「00000004」が指定されている。これらはそれぞれ、図１６における、フレーム情報１８０１，１８０２，１８０３及び写真画像１８０４にそれぞれ対応している。
【０１３２】
ここで画像出力装置２１０２は、「DPS_StartJob」に含まれる＜fileType＞を確認し、「複数の画像フォーマットの混在」を意味するコード「52000000」が指定されているかどうかを確認する。この時点で＜fileType＞にコード「52000000」が指定されていた場合、画像出力装置２１０２は、この受信した「DPS_StartJob」がフレーム印刷指示の既定の条件を満たしているのでステップＳ２１０６で、「DPS_GetFileInfo」を用いて「DPS_StartJob」中の＜fileID＞に指定された各ファイルに関するファイル情報を要求する。
【０１３３】
一方、＜fileType＞にコード「52000000」が指定されていなかった場合には、画像出力装置２１０２は、その受信した「DPS_StartJob」が既定の条件を満たしていないのでフレーム印刷の指示ではないと判定し、通常の印刷指示として、各＜fileID＞に指定されたファイル情報を互いに重畳することなく、それぞれ別個の画像として印刷する。
【０１３４】
上述のステップＳ２１０６で、画像出力装置２１０２は「DPS_GetFileInfo」により「DPS_StartJob」中の各＜fileID＞で指定されたファイルに関するファイル情報を要求する具体的なコマンド例を以下に示す。ここでは、＜fileID＞に指定されたファイル番号「00000001」のファイル情報を要求する。
【０１３５】
＜input＞
＜getFileInfo＞
＜fileID＞00000001＜/fileID＞
＜/getFileInfo＞
＜/input＞
そしてステップＳ２１０７で、画像入力装置２１０１は、「DPS_GetFileInfo」により要求されたファイルに関するファイル情報を返信する。この場合の具体的なファイル番号「00000001」のファイル情報の返答例は以下の様になる。
【０１３６】
＜output＞
＜result＞10000000＜/result＞
＜getFileInfo＞
＜fileType＞530C0000＜/fileType＞
＜fileSize＞000ABCDE＜/fileSize＞
＜/getFileInfo＞
＜/output＞
ここでは、ファイル番号「00000001」のファイル情報はＰＮＧコードで、そのファイルサイズが「000ABCDE」（１６進数）であることが分かる。
【０１３７】
そして、上記ステップＳ２１０６〜Ｓ２１０７を、ステップＳ２１０５の「DPS_StartJob」で指定された＜fileID＞の分だけ繰り返すことにより、画像出力装置２１０２は、画像入力装置２１０１から、「DPS_StartJob」で指定された全てのファイルのファイル情報を取得することができる。こうして「DPS_StartJob」で指定された全てのファイル情報の取得が完了すると、画像出力装置２１０２は、実際に各ファイルの＜fileType＞を確認して、ステップＳ２１０５の「DPS_StartJob」がフレームの印刷指示であるかかどうかを判定する。今回の例では、
・ファイル番号「00000004」のファイルがＪＰＥＧファイルである。
【０１３８】
・ファイル番号「00000001」、「00000002」、「00000003」のファイルがＰＮＧファイルである。
【０１３９】
・ＰＮＧファイルの枚数が３枚である。
【０１４０】
・ＰＮＧ(３枚)→ＪＰＥＧ(１枚)の組み合わせ印刷指定（＜fileType＞が「52000000」）である。
というように、既定の条件を満たしている。よって、画像出力装置２１０２は、ステップＳ２１０５で受信した「DPS_StartJob」を「1-up borderless」指定のフレーム印刷として処理する。仮にファイルの種類やファイルの枚数が既定の条件に合致しなかった場合には、画像出力装置２１０２は、この「DPS_StartJob」がフレーム印刷の指示でないと判定し、通常の印刷指示として、＜fileID＞に指定されたファイルを互いに重畳することなく、それぞれ別個の画像として印刷する。
【０１４１】
以上説明したように、フレーム印刷機能をサポートしている画像出力装置２１０２のフレーム印刷機能は、少なくともある既定の条件を満たしている場合にのみ実行されるものとし、かつフレーム印刷指示機能をサポートしている画像入力装置２１０１は、必ずその条件を満たしたフレーム印刷指示を行うものとする。これにより画像入力装置２１０１は、画像出力装置２１０２のCapabilityを取得することにより、その画像入力装置２１０１がフレーム印刷機能を有するかどうかを認識でき、逆に画像出力装置２１０２は画像入力装置２１０１から発行された「DPS_StartJob」の中身、及びそのコマンドで指定されたファイルのファイル情報を取得して解析することにより、フレーム印刷指示かどうかを判別できる。よって、フレーム印刷機能が既定されていない既存の印刷サービスにおいても、そのサービスを拡張することなくフレーム印刷機能を実現でき、またその機能をサポートしているか否かも、互いの装置で判別できる。
【０１４２】
図２０は、本実施の形態２に係る画像出力装置２１０２（ＰＤプリンタ）における、「DPS_StartJob」がフレーム印刷指示を含むか否かの判別処理を示すフローチャートである。図１９では、「1-up borderless」の場合に特化して説明したが、この図２０では、図１７の様に１６−ｕｐ指定の場合や、その他にも対応可能な様に、既定の条件に加え、以下の追加条件に基づいて判別する場合で説明する。ここでは前述の条件に加え、
・２枚以上のＮ−ｕｐ印刷時にもフレーム印刷が可能である。
【０１４３】
・２枚以上の画像それぞれ独立にＰＮＧ，ＪＰＥＧファイルが指定できる。
【０１４４】
・フレーム印刷を指定する「DPS_StartJob」の印刷用紙の枚数は１枚である。
【０１４５】
・フレーム印刷を指定する「DPS_StartJob」には、ＰＮＧ，ＪＰＥＧファイル以外のファイルが指定されない。この図２０のフローチャートで示す処理は、図１９のステップＳ２１０５で画像出力装置２１０２が「DPS_StartJob」を受信することにより開始され、図１９のステップＳ２１０６〜２１０７部分の繰り返し部分の詳細に相当する。
【０１４６】
まず最初にステップＳ２０１で、「DPS_StartJob」中の＜layout＞によって１ページ中に何枚の写真画像が存在するかの情報「Ｎ−ｕｐ数」を取得する。次にステップＳ２０２で、ＪＰＥＧファイルのカウントを「０」に初期化し、続いてステップＳ２０３で、ＰＮＧファイルのカウントを「０」に初期化してステップＳ２０４に進む。ステップＳ２０４では、「DPS_StartJob」に含まれる全てのprintInfoの解析が終了したかどうかを判定し、終了していない場合はステップＳ２０５へ進み、まだ解析していないprintInfo中の＜fileID＞に指定されたファイル番号を取得する。次にステップＳ２０６で、ステップＳ２０５で取得したファイル番号に基づいて「DPS_GetFileInfo」を発行し、それに応答して画像入力装置２１０１から返信される＜fileType＞を調べる。
【０１４７】
次にステップＳ２０７で、「DPS_GetFileInfo」返信中の＜fileType＞がＰＮＧファイルであるかどうかを判別する。ＰＮＧファイルでないときはステップＳ２１１に進み、ＰＮＧファイルの場合はステップＳ２０８へ進む。ステップＳ２０８では、この後に指定されるＪＰＥＧ画像に重畳するフレームの枚数を確認するためにＰＮＧファイルのカウントを１だけ増加させる。そしてステップＳ２０９で、ＰＮＧファイルのカウント値が「３」を超えたかどうかを確認する。もし「３」を超えていた場合は、既定の条件を満たさないのでステップＳ２１０に進み、すべてのファイルを合成せずに、それぞれ個別に印刷すると判断して、この判別処理を終了する。またステップＳ２０９で「３」を超えていなかった場合はステップＳ２０４へ進み、前述の処理を実行する。
【０１４８】
一方、ステップＳ２０７で、ＰＮＧファイルでない場合にはステップＳ２１１に進み、「DPS_GetFileInfo」返信中の＜fileType＞がＪＰＥＧファイルであるかどうかを判定する。ＪＰＥＧファイルでない場合は、ＪＰＥＧ／ＰＮＧ以外のファイルが指定されているため、上記４番目の追加条件を満たしていないためステップＳ２１０に進み、全てのファイルを合成せずに、それぞれ個別に印刷するとして判別処理を終了する。
【０１４９】
またステップＳ２１１でＪＰＥＧファイルである場合はステップＳ２１２に進み、１ページ中に印刷されるべきＪＰＥＧ画像の枚数を確認するためにＪＰＥＧファイルのカウント値を１だけ増加させる。次にステップＳ２１３で、ＪＰＥＧファイルのカウント値がＮ−ｕｐのＮの値を超えたかどうかを確認する。もしＮの値を超えていた場合には、これは複数ページに跨る印刷となるため、上記３番目の追加条件を満たさないのでステップＳ２１０に進み、全てのファイルを合成せずに、それぞれ個別に印刷するとして判別処理を終了する。またステップＳ２１３で、Ｎ値を超えていなかった場合にはステップＳ２０３に進み、前述の処理を繰り返す。
【０１５０】
こうしてステップＳ２０４でprintInfoの解析が終了するとステップＳ２１４に進み、今までに確認したＪＰＥＧファイルの枚数を確認するために、ＪＰＥＧファイルのカウント値を確認する。もしＪＰＥＧファイルのカウント値が「０」の場合には、ＪＰＥＧファイルが含まれず、上述の既定の条件を満たさないのでステップＳ２１０へ進み、全てのファイルを合成せずに、それぞれ個別に印刷すると判定して処理を終了する。もしＪＰＥＧファイルのカウント値が「０」以外であればステップＳ２１５に進み、ＰＮＧファイルとＪＰＥＧファイルとを合成してフレーム印刷を行う。
【０１５１】
図２１は、本発明の実施の形態２に係る画像入力装置２１０１による処理を説明するフローチャートで、この処理を実行するプログラムは、例えば前述のＤＳＣ３０１２の場合にはＲＯＭ３１０１に格納されている。
【０１５２】
この処理は画像入力装置２１０１でフレーム印刷の指示が入力されることにより開始される。まずステップＳ３０１で、画像出力装置２１０２に対してCapability(fileTypes)を問合せて、画像出力装置２１０２で処理可能なファイル情報を取得する。これに対する応答を受信するとステップＳ３０２で、その画像出力装置２１０２が複数の異なるフォーマットを処理できるかどうか、即ち、ここではＪＰＥＧ及びＰＮＧファイルを処理可能かどうかをみる。複数の異なるフォーマットを処理できる時はステップＳ３０３に進むが、そうでないときはステップＳ３１０に進み、表示部２７００にフレーム印刷が実行できない旨を表示してこの処理を終了する。次にステップＳ３０３で、画像出力装置２１０２がサポートしているレイアウト機能をCapability(layouts)により問い合せる。そしてステップＳ３０４で、画像出力装置２１０２からの応答に基づいて、その画像出力装置２１０２が、フレーム印刷の条件に合致するレイアウト機能を備えているかどうかを判定し、フレーム印刷の条件に合致するレイアウト機能を備えている時はステップＳ３０５に進むが、そうでないときはステップＳ３１０に進み、処理を終了する。
【０１５３】
ステップＳ３０５では、画像出力装置２１０２を使用してフレーム印刷が可能であると判定されているので、表示部２７００にフレーム印刷を指示するためのＵＩ画面を表示する。これによりユーザはステップＳ３０６で、このＵＩ画面を参照しながら、フレーム印刷したい複数の画像を選択し、更にこれら選択した画像のレイアウト（1-up, N-up等）を指定する。尚、ここでは、フレーム印刷時における画像の重ね合わせ順（優先順）を指定できるようにしても良い。そしてステップＳ３０６での画像選択及びレイアウト指示が完了するとステップＳ３０７に進み、これら指定された画像及びその設定条件が、前述したフレーム印刷のための指示条件を満足しているかどうかをみる。即ち、ここではＪＰＥＧファイルとＰＮＧファイルだけが指定されており、ＰＮＧファイルの数が所定数、印刷する用紙の枚数が１枚、１−ｕｐ，又はＮ−ｕｐが指定されているなどの条件を含む。この条件が満足されていないときはステップＳ３０５に戻り、条件が満足されていない旨を表示部２７００に表示して、再びユーザに画像の選択及び印刷条件の指定を促す。
【０１５４】
こうしてステップＳ３０７で、入力された条件が満足されるとステップＳ３０８に進み、印刷ジョブの開始コマンド（DPS_StartJob）を作成し、ステップＳ３０９で、その印刷ジョブ開始コマンドを画像出力装置２１０２に送信する。
【０１５５】
尚、このフローチャートでは、画像出力装置２１０２がプリンタの場合で説明したが、例えば画像出力装置２１０２が表示装置の場合にも同様にして実行できる。この場合には、例えば図１５の１７０７で示すような画像が、その表示装置の画面上に表示されることになる。
【０１５６】
以上説明したように本実施の形態２によれば、「DPS_StartJob」におけるファイル指定方法に関してより詳細な条件を設定し、その条件を満たした場合にのみフレーム印刷を行うように画像出力装置２１０２が動作することにより、フレーム印刷に対応していない画像入力装置２１０１から送付された通常印刷指示を、間違ってフレーム印刷指示とみなしてユーザの期待に沿わない印刷結果をもたらすという危険性を低減できる。
【０１５７】
尚、ステップＳ２１０で、全てのファイルを合成せずに、それぞれ個別に印刷するとしたが本発明はこれに限定されるものでなく、場合によっては条件に合致する部分のみフレーム合成を行い、合致しない部分については、それぞれ個別に印刷しても良い。
【０１５８】
また本実施の形態２では、フレーム印刷機能を規定する条件として、「DPS_GetFileInfo」で取得する「fileInfo」中の「fileType」を用いたが、必ずしもこれに限定するものではなく、例えば「DPS_GetFile」で取得したＰＮＧファイル中の透過色の設定チャンク「tRNS」２０１２に「完全不透明以外」の設定を発見した場合や、イメージデータ中のα値に「完全不透明以外」の設定を発見した場合、若しくはテキストデータチャンク「tEXT」２０１９中に特定の文字列（例：「FRAME」）を発見した場合等であっても良い。
【０１５９】
また本実施の形態２では、＜fileType＞がＰＮＧ→ＰＮＧ→ＰＮＧ→ＪＰＥＧという設定で合成画像を構成するようにしたが、逆にＪＰＥＧ→ＰＮＧ→ＰＮＧ→ＰＮＧという様に、ＪＰＥＧが最初に設定される様にしていても良い。
【０１６０】
また他にもフレーム画像としてＧＩＦファイル等を使用しても良い事はいうまでも無い。
【０１６１】
また本実施の形態２では、規定の条件としては、＜fileType＞と＜fileID＞の指定のみであったが、他にも＜paperSize＞等の他の項目を条件としても良い。特に＜paperSize＞に関しては、用紙サイズが大きくなればなる程、画像出力装置２１０２のＲＡＭ等のリソースを消費するので、よりフレーム印刷の処理負荷が大きくなる。よって、フレーム印刷機能は特定のサイズまでと限定したり、若しくは紙サイズ毎に重畳可能なＰＮＧファイルの枚数を規定しておく（例えば葉書サイズまでは３枚、Ａ４までは２枚、それを超えるサイズは１枚、等）ことも非常に有効である。またフレーム印刷時に、レイアウト可能な画像の枚数の上限値を設定しておく（例えば１６−ｕｐまで）ことも有効である。
【０１６２】
以上の様に、既存の印刷サービスのcapabilityとは別に条件を設定し、その条件を画像入力装置２１０１と画像出力装置２１０２とで事前に共有しておくことは有効である。
【０１６３】
また本実施の形態２は、例えば１６−ｕｐの指定時に、各ＪＰＥＧ画像に対してＰＮＧファイルを３枚合成する場合は、画像入力装置２１０１が発行する「DPS_StartJob」に含まれる＜printInfo＞数は６４（＝１６＋４８）個となる。しかし事実上は、画像出力装置２１０２は、ＰＮＧファイルをＪＰＥＧファイルの修飾情報とみなして１６枚の写真（ＪＰＥＧ）と４８枚の修飾情報（ＰＮＧ）で構成される「DPS_StartJob」を１ページのフレーム印刷指示と解釈することになる。これを利用して、画像入力装置２１０１から画像出力装置２１０２がフレーム印刷に対応しているかどうかを確認できる。つまり、画像入力装置２１０１が＜printInfo＞６４個を含むフレーム印刷指示「DPS_StartJob」を発行する。これに対して画像出力装置２１０２がフレーム印刷対応の場合には、印刷の進捗を示す＜progress＞は「001/001」（全体で１枚であり、現在１枚目を印刷中）となる筈であるが、画像出力装置２１０２がフレーム印刷に対応していない場合には、印刷の進捗を示す＜progress＞は「001/004」（全体で４枚であり、現在１枚目を印刷中）となる。従って、この応答を受信した画像出力装置２１０１は、その応答に基づいて、画像出力装置２１０２がフレーム印刷に対応しているか否かを容易に判定できることになる。
【０１６４】
上記追加条件として、「DPS_StartJob」が１ページを超えない内容としたのは、フレーム印刷時の＜progress＞の内容を一意に決定し、判別し易くするためである。同様の目的のために、＜printInfo＞の全数を規定する等、他の条件を用いても構わない。
【０１６５】
よって画像入力装置２１０１は「DPS_StartJob」発行後の＜progress＞内容を確認し、誤ってフレーム印刷に対応していない画像出力装置２１０２に対してフレーム印刷指示「DPS_StartJob」を発行してしまった場合には、速やかに「DPS_AbortJob」や印刷サービスの終了、その他の手段によって画像出力装置２１０２がユーザの望まない印刷を実行するのを防止できる。
【０１６６】
以上説明したように本実施の形態２によれば、画像出力装置２１０２がフレーム印刷の指示時にフレーム情報を写真枚数としてカウントしないようにすることにより、画像出力装置２１０１では、画像出力装置２１０２からの印刷進捗情報を用いてフレーム印刷に対応しているか否かを容易に判別できる。
【０１６７】
［他の実施の形態］
本発明の目的は前述したように、実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１６８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【０１６９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【図面の簡単な説明】
【０１７０】
【図１】本発明の実施の形態に係るＰＤプリンタの概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタの操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタの制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＤＳＣの構成を示すブロック図である。
【図５】本実施の形態に係るＰＤプリンタとデジタルカメラとの接続を説明する図である。
【図６】本実施の形態に係る印刷システムにおけるＰＤプリンタとＤＳＣとの間のコマンドのやり取りを説明する図である。
【図７】本実施の形態に係るＤＳＣから発行されるプリント開始コマンドの具体例を説明する図である。
【図８】本実施の形態に係るＰＤプリンタからＤＳＣに送信されるJobStatus（Ａ）とDeviceStatus（Ｂ）を説明する図である。
【図９】本実施の形態に係るＰＤプリンタのcapabilityのやり取りを説明する図で、（Ａ）はＤＳＣからＰＤプリンタへのcapabilityの要求コマンド例を示し、（Ｂ）はＰＤプリンタからＤＳＣへの応答コマンド例を示す図である。
【図１０】本実施の形態に係るＰＤプリンタからＤＳＣに対して通知するcapabilityのコードフォーマットを説明する図である。
【図１１】本実施の形態に係る印刷対象画像のファイル情報を取得する例を説明する図で、（Ａ）はＰＤプリンタからＤＳＣへのファイル要求コマンド例を示し、（Ｂ）はＤＳＣからＰＤプリンタへ画像ファイルを送信する場合のコマンド例を示す図である。
【図１２】本実施の形態１に係るダイレクト印刷システムにおける印刷Jobの発行から印刷データが生成されるまでの処理を説明するフローチャートである。
【図１３】本実施の形態１に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１４】本実施の形態１に係るＰＤプリンタにおけるレイアウト印刷、フレーム印刷処理を説明するフローチャートである。
【図１５】本発明の実施の形態２に係る構成及び処理形態を説明する図である。
【図１６】本実施の形態２に係る画像合成の一例（１−ｕｐ印刷）を説明する図である。
【図１７】実施の形態２に係る他の画像合成例（１枚の用紙に１６枚の写真印刷）を説明する図である。
【図１８】ＰＮＧ画像フォーマットを構成するデータチャンクの種類を説明する図である。
【図１９】本実施の形態２に係る画像入力装置と画像出力装置との間におけるフレーム印刷指示の流れを説明するフロー図である。
【図２０】本実施の形態２に係る画像出力装置（ＰＤプリンタ）における、「DPS_StartJob」がフレーム印刷指示を含むか否かの判別処理を示すフローチャートである。
【図２１】本実施の形態２に係る画像入力装置（カメラ）におけるフレーム印刷指示処理を示すフローチャートである。
【図１】
2005088572.tif 000003
【図２】
2005088572.tif 000004
【図３】
2005088572.tif 000005
【図４】
2005088572.tif 000006
【図５】
2005088572.tif 000007
【図６】
2005088572.tif 000008
【図７】
2005088572.tif 000009
【図８】
2005088572.tif 000010
【図９】
2005088572.tif 000011
【図１０】
2005088572.tif 000012
【図１１】
2005088572.tif 000013
【図１２】
2005088572.tif 000014
【図１３】
2005088572.tif 000015
【図１４】
2005088572.tif 000016
【図１５】
2005088572.tif 000017
【図１６】
2005088572.tif 000018
【図１７】
2005088572.tif 000019
【図１８】
2005088572.tif 000020
【図１９】
2005088572.tif 000021
【図２０】
2005088572.tif 000022
【図２１】
2005088572.tif 000023