以下、本発明の実施の形態に係る画像出力指示装置、画像出力装置、画像出力システム、画像出力指示方法および画像出力方法を、図面に基づいて説明する。画像出力システムは、ダイレクト印刷システムを例として説明する。画像出力指示装置および画像出力指示方法は、デジタルスチルカメラを例として説明する。画像出力装置および画像出力方法は、プリンタを例として説明する。
図1は、本発明の実施の形態に係るダイレクト印刷システムを示す斜視図である。ダイレクト印刷システムは、画像出力指示装置としてのデジタルスチルカメラ(DSC:Digital Still Camera)1と、画像出力装置としてのプリンタ2とを有する。DSC1とプリンタ2とは、USB(Universal Serial Bus)ケーブル3で接続される。
図2は、図1中のDSC1の構成を示すブロック図である。DSC1は、中央処理装置11(CPU:Central Processing Unit)と、フラッシュメモリ12と、I/O(Input/Output)ポート13と、これらを接続するシステムバス14とを有する。DSC1のI/Oポート13には、表示機器としての液晶モニタ15と、入力機器としての入力デバイス16と、撮像機器としてのCCD(Charge Coupled Device)17と、外部メモリ接続機器としてのカードリーダ18と、通信手段としてのUSB通信インタフェース(USB通信I/F)19とが接続される。
USB通信I/F19は、図示外のUSBコネクタを有する。USBコネクタには、USBケーブル3が接続される。USB通信I/F19は、USBコネクタから信号が入力されるとその信号からデータを抽出する。また、USB通信I/F19は、送信するデータに基づいて信号を生成し、この信号をUSBコネクタへ出力する。
カードリーダ18は、図示外の挿入部を有する。この挿入部には、カード形状に形成された半導体メモリ20を挿入することができる。カード形状に形成された半導体メモリ20としては、たとえばフラッシュメモリなどがある。
半導体メモリ20は、画像ファイル21やフレームファイル22などの各種のファイルを記憶する。
半導体メモリ20に記憶される画像ファイル21は、画像データを有する。この画像ファイル21の画像データは、たとえばJPEG(Joint Photographic Coding Experts Group)形式などに圧縮されているものであっても、ビットマップ形式などの非圧縮のものであってもよい。
図3は、図2中の半導体メモリ20に記憶される画像ファイル21の画像31の一例を示す図である。図4は、図2中の半導体メモリ20に記憶される画像ファイル21の他の画像32の例を示す図である。図3に示す画像31は、略正方形の外形の画像であり、その中央部に「○」が描画されている画像である。また、図3に示す画像31の画像ファイル21のファイルIDは、「00000001」である。図4に示す画像32は、図3に示す画像と同じサイズの略正方形の外形の画像であり、その中央部に「×」が描画されている画像である。また、図4に示す画像32の画像ファイル21のファイルIDは、「00000002」である。
そして、カードリーダ18は、たとえばCCD17で撮像した画像の画像データを含む画像ファイル21を、そのファイル名と対応付けて半導体メモリ20に書き込む。また、カードリーダ18は、ファイル名に基づいて、この半導体メモリ20から所定の画像ファイル21を読み出す。
図5は、図2中の半導体メモリ20に記憶されるフレームファイル22のデータ構造の一例を示す図である。図6は、図5に示すフレームファイル22のフレーム画像51を示す図である。フレームファイル22は、図5に示すように、ヘッダデータ41と、画像嵌込枠52,53のレイアウト情報としてのレイアウトデータ42と、フレーム画像データ43とを有する。また、図6に示すように、フレーム画像51は、2つの画像嵌込枠52,53を有する。
ヘッダデータ41は、[HEADER]の見出し語とそれに続くデータとで構成される。ヘッダデータ41には、フレームファイル22に関する情報が含まれている。たとえば、図5の例では、[HEADER]の見出し語に続けて、まず、フレームファイル22の改定管理番号(HdRevision = 02.00)と、フレームファイル22の作者の名前(HdAuthor = “xxxx”)と、フレームファイル22の著作権者の名前(HdCopyright = “xxxx”)とが記述されている。
引き続き、図5の例では、フレームファイル22の修正を許可するか否かに関する情報(HdChangeFlag = Possible(許可))と、フレームファイル22の検索語(HdKeyWord = “Christmas”,“Greeting”)と、フレームファイル22のタイトル(HdTitle = “SAMPLE”)と、フレームファイル22のコメント(HdComment = “SAMPLE”)と、フレーム画像51を表示あるいは印刷するときのフレームファイル22の向きに関する情報(HdDirection = Vertical)と、フレームファイル22に関連付けられる音声ファイルのファイル名およびパス(HdSound = “..EPUDL/GSOUND.PCM”)と、フレームファイル22のキャパシティ(データサイズ)(HdCapacity 1024000)と、フレーム画像51のサムネイル画像を有するファイルのファイル名およびパス(HdThumbnail = “..EPUDL/IMAGE/001UDL.USF”)と、フレーム画像51を印刷したときにマッチする用紙のサイズ(HdPhysicalPaperSize = R89)と、その用紙に印刷するときの余白のサイズを示すマージン(HdMargines 3,3,3,3)とが記述されている。
レイアウトデータ42は、[PAGE]の見出し語とそれに続くデータとで構成される。レイアウトデータ42には、フレーム画像51を表示あるいは印刷するためのフレーム枠に関する情報と、画像を嵌め込む画像嵌込枠52,53に関する情報と、が含まれる。
たとえば、図5の例では、フレーム枠に関する情報として、「DrawFrame(10,20,300,200)」と記述されている。これは、図6に示すように、横長の長方形のフレーム画像51を、その左上の隅の座標(x,y)が(10,20)となり、且つ、その右下の隅の座標(x,y)が(300,200)となるように表示あるいは印刷することを指定している。また、図5の例では、このフレーム枠に関する情報に続けて、2つの画像嵌込枠52,53に関する情報が、[Frame]の見出しに続けて記述されている。
画像嵌込枠52に関する情報は、「FrameID =1」および「Draw Picture(””,50,100,150,120)」とで構成される。「Draw Picture(””,50,100,150,120)」は、左上の隅の座標が(50,100)となり、且つ、その右下の隅の座標が(150,120)となるように画像嵌込枠52を設定することを意味する。また、「FrameID =1」は、この画像嵌込枠52のフレームIDが「1」であることを意味する。
画像嵌込枠53に関する情報は、「FrameID =2」および「Draw Picture(””,160,100,260,120)」とで構成される。「Draw Picture(””,160,100,260,120)」は、左上の隅の座標が(160,100)となり、且つ、その右下の隅の座標が(260,120)となるように画像嵌込枠53を設定することを意味する。また、「FrameID =2」は、この画像嵌込枠53のフレームIDが「2」であることを意味する。
フレーム画像データ43は、画像嵌込枠52,53内が透明なフレーム画像51のデータである。
図7は、図2中のフラッシュメモリ12の記憶内容を示す図である。図8は、図1のダイレクト印刷システムに実現される機能を示すブロック図である。
図7に示すように、DSC1のフラッシュメモリ12には、印刷オペレーション生成プログラム61と、PTP(Picture Transfer Protocol)通信プログラム62と、USBスティルイメージクラスプログラム63とが記憶される。
印刷オペレーション生成プログラム61は、中央処理装置11に実行されることで、出力指示生成手段としての図8に示す印刷OP(オペレーション)生成部65を実現する。印刷OP生成部65は、選択した画像ファイル21の画像を印刷させるスタートプリントオペレーション(画像出力指示)を生成する。
図9は、図8中の印刷OP生成部65がフレーム挿入印刷の場合に生成するスタートプリントオペレーション71の一例を示す図である。スタートプリントオペレーション71は、選択した画像ファイル21のファイルIDを有する。複数の画像ファイル21が選択された場合には、スタートプリントオペレーション71は、その選択された複数の画像ファイル21のファイルIDを有する。
また、スタートプリントオペレーション71は、XML(eXtensible Markup Language)形式のデータとして生成される。つまり、スタートプリントオペレーション71は、そのオペレーションがリクエスト(要求)であることを示す一対のリクエストタグ<Request>,</Request>
を有する。そして、その一対のリクエストタグの間には、そのリクエストが印刷ジョブ開始のリクエストであることを示す一対のタグ<Job>,</Job>がはさまれている。
さらに、スタートプリントオペレーション71には、画像ファイルを特定するタグ<Image>,</Image>により、ファイルIDで画像ファイル21が指定される。図9の例では、スタートプリントオペレーション71には、フレームファイル22の「FFFF0001」、画像ファイル21の「00000001」および画像ファイル21の「00000002」の3つのファイルIDがその順番で記述される。
図7のPTP通信プログラム62は、中央処理装置11に実行されることで、図8に示すPTP通信部66を実現する。PTP通信部66は、後述するプリンタ2のPTP通信部106との間で、ファイルやデータ(各種のオペレーションとそれに対する応答)を送受する。
図7のUSBスティルイメージクラスプログラム63は、中央処理装置11に実行されることで、図8に示すUSBスティルイメージクラス通信部67を実現する。USBスティルイメージクラス通信部67は、USBホストとの間でデータを送受する。
図10は、図1中のプリンタ2のハードウェア構成を示す図である。プリンタ2は、中央処理装置81と、プログラムを記憶するフラッシュメモリ82と、中央処理装置81がプログラムの実行の際に利用するRAM(Random Access Memory)83と、I/Oポート84と、これらを接続するシステムバス85とを有する。プリンタ2のI/Oポート84には、受信手段としてのUSB通信I/F86と、出力手段としてのプリントエンジン87とが接続される。
プリントエンジン87は、出力画像としての印刷画像を用紙に印刷する。
プリンタ2のUSB通信I/F86は、DSC1のUSB通信I/F19と同様の機能を有するものであり、その説明を省略する。ただし、プリンタ2のUSB通信I/F86は、USBホストとして機能し、DSC1のUSB通信I/F19は、USBデバイスとして機能する。
図11は、図10中のフラッシュメモリ82の記憶内容を示す図である。プリンタ2のフラッシュメモリ82には、オペレーション解釈プログラム91と、ファイル取得プログラム92と、印刷画像生成プログラム93と、デコードプログラム94と、印刷制御プログラム95と、PTP通信プログラム96と、USBスティルイメージクラスプログラム97とが記憶される。以下、図8を参照しつつ、これらのプログラムについて説明する。
オペレーション解釈プログラム91は、中央処理装置81に実行されることで図8に示すOP(オペレーション)解釈部101を実現する。OP解釈部101は、XML形式のデータとして記述された各種のオペレーションが入力されると、そのオペレーションに対応付けられた処理を実行する。
ファイル取得プログラム92は、中央処理装置81に実行されることで図8に示すファイル取得部103を実現する。ファイル取得部103は、取得するファイルIDが指定されると、そのファイルIDを指定したファイル取得オペレーションを生成する。
印刷画像生成プログラム93は、中央処理装置81に実行されることで、出力画像生成手段としての図8に示す印刷画像生成部102を実現する。印刷画像生成部102は、印刷画像を生成する。印刷画像は、各用紙に印刷される画像であり、たとえばフレーム画像51の画像嵌込枠52,53に、画像ファイル21の画像が嵌め込まれている画像である。
デコードプログラム94は、中央処理装置81に実行されることで、デコーダ104を実現する。デコーダ104は、たとえばJPEG形式などに符号化されている画像データを復号する。
印刷制御プログラム95は、中央処理装置81に実行されることで、印刷制御部105を実現する。印刷制御部105は、印刷画像に基づいてプリントエンジン87を制御し、その印刷画像を用紙に印刷する。
PTP通信プログラム96は、中央処理装置81に実行されることでPTP通信部106を実現する。USBスティルイメージクラスプログラム97は、中央処理装置81に実行されることでUSBスティルイメージクラス通信部107を実現する。これらは、図7に基づいてDSC1に実現される同名のものと同じ機能を奏するものであり、説明を省略する。ただし、DSC1のUSBスティルイメージクラス通信部67は、USBデバイスとして機能し、プリンタ2のUSBスティルイメージクラス通信部107は、USBホストとして機能する。
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。この動作の説明では、DSC1の半導体メモリ20に、画像ファイル21と、フレームファイル22とが記憶されているものとして説明する。
なお、この半導体メモリ20に記憶されている画像ファイル21は、DSC1で撮像した画像を格納するものであっても、インターネットなどを介してダウンロードした画像を格納するものであってもよい。また、半導体メモリ20に記憶されているフレームファイル22は、パーソナルコンピュータなどを用いてユーザが独自に作成したフレーム画像51を格納するものであっても、インターネットなどを介して外部からダウンロードしたものであってもよい。
図12は、図1中のDSC1とプリンタ2との間の通信シーケンスを示す図である。また、図8に示すように、DSC1のUSB通信I/F19とプリンタ2のUSB通信I/F86とは、USBケーブル3にて接続される。DSC1では、印刷OP生成部65と、PTP通信部66と、USBスティルイメージクラス通信部67とが実現される。プリンタ2では、OP解釈部101と、ファイル取得部103と、印刷画像生成部102と、デコーダ104と、印刷制御部105と、PTP通信部106と、USBスティルイメージクラス通信部107とが実現される。
DSC1とプリンタ2とは、それらのUSB通信I/F19,86同士がUSBケーブル3にて接続されると、コネクションを確立する。具体的には、USBホストとして機能するプリンタ2のUSB通信I/F86は、USBデバイスとして機能するDSC1のUSB通信I/F19へ、USBのディスクリプタの送信要求を送信する。DSC1のUSB通信I/F19は、このディスクリプタの送信要求に応じて、DSC1のディスクリプタをプリンタ2のUSB通信I/F86へ送信する。これにより、USBのコンフィグレーション処理が完了し、DSC1とプリンタ2との間にデータの通信路が形成される(ステップS1)。
次に、DSC1のPTP通信部66とプリンタ2のPTP通信部106とは、DSC1とプリンタ2との間のデータの通信路を使用して互いを検出し、PTPに基づく所定の接続処理を実行する(ステップS2)。また、DSC1の印刷OP生成部65とプリンタ2のOP解釈部101とは、予め定められた所定のディスカバリファイルを互いに送受し、互いを検出する(ステップS3)。
以上のDSC1とプリンタ2とのコネクション確立処理が完了した後、印刷処理の際には、DSC1の印刷OP生成部65は、プリントサービス送信指示オペレーションを生成して、DSC1のPTP通信部66へ出力する。DSC1のPTP通信部66は、このプリントサービス送信指示オペレーションを、DSC1のUSBスティルイメージクラス通信部67、DSC1のUSB通信I/F19、USBケーブル3、プリンタ2のUSB通信I/F86およびプリンタ2のUSBスティルイメージクラス通信部107を介して、プリンタ2のPTP通信部106へ送信する(ステップS4)。プリンタ2のPTP通信部106は、受信したプリントサービス送信指示オペレーションをOP解釈部101へ出力する。
OP解釈部101は、プリントサービス送信指示オペレーションを受信すると、プリンタ2がダイレクト印刷においてサービス可能なプリントサービスのデータを生成し、この生成したデータをプリンタ2のPTP通信部106へ出力する。このようなプリントサービスとしては、たとえばフレーム画像を用いたフレーム挿入印刷などがある。
OP解釈部101からプリントサービスのデータが入力されると、プリンタ2のPTP通信部106は、プリントサービス送信指示オペレーションの場合とは逆となる経路にて、つまりプリンタ2のUSBスティルイメージクラス通信部107、プリンタ2のUSB通信I/F86、USBケーブル3、DSC1のUSB通信I/F19およびDSC1のUSBスティルイメージクラス通信部67を経由する経路にて、DSC1のPTP通信部66へプリントサービスのデータを送信する(ステップS5)。DSC1のPTP通信部66は、受信したプリントサービスのデータを印刷OP生成部65へ出力する。
印刷OP生成部65は、プリンタ2から、それが対応可能なサービスを示すプリントサービスのデータを受信した後、画像の選択および印刷の設定処理を開始する(ステップS6)。この画像の選択および印刷の設定処理によって、スタートプリントオペレーション71が生成される。
図13は、図8中の印刷OP生成部65の印刷設定処理を示すフローチャートである。この印刷設定処理では、フレーム画像51の画像嵌込枠52,53に画像を嵌め込む場合と、フレーム画像51を用いない場合とで互いに異なる設定処理を実行し、それぞれの場合に応じたスタートプリントオペレーション71を生成する。
印刷設定処理において、印刷OP生成部65は、まず、プリンタ2から受信したプリントサービスに基づいて、プリンタ2がフレーム挿入印刷に対応しているか否かを判断する(ステップS21)。プリンタ2がフレーム挿入印刷に対応している場合には、印刷OP生成部65は、さらに、フレーム挿入印刷をするか否かをユーザに問い合わせて判断する(ステップS22)。具体的には、印刷OP生成部65は、フレーム挿入印刷をするか否かを問い合わせるメッセージを液晶モニタ15に表示し、その表示状態において入力デバイス16から入力される入力データに基づいて判断する。
そして、印刷OP生成部65は、プリンタ2がフレーム挿入印刷に対応し、且つ、ユーザがフレーム挿入印刷を選択した場合(ステップS21およびS22でともにYesの場合)には、フレーム挿入印刷のための印刷設定処理を開始する。それ以外の場合には、印刷OP生成部65は、フレーム画像51を用いない通常の印刷設定処理を開始する。以下においては、まず、フレーム画像51を用いた印刷処理について説明し、次に、フレーム画像51を用いない通常の印刷処理について説明する。
フレーム画像51を用いる印刷処理では、印刷OP生成部65は、まず、フレーム画像51の選択処理を行う(ステップS23)。具体的には、印刷OP生成部65は、半導体メモリ20からフレームファイル22のファイル名を読み出し、この読み出したファイル名のリストを液晶モニタ15に表示する。入力デバイス16は、ユーザの操作に応じた入力データを出力する。そして、印刷OP生成部65は、リストを表示している状態での入力データに基づいて表示しているリストの中から1つのファイル名を選択すると、そのファイル名のフレームファイル22からフレーム画像データ43を読み込み、このフレーム画像データ43に基づくフレーム画像51を液晶モニタ15に表示する。
また、印刷OP生成部65は、フレーム画像51を表示している状態での入力データに基づいてそのフレーム画像51を印刷に係るフレーム画像51として選択する(ステップS24)。たとえば、印刷OP生成部65は、図5に示すフレームファイル22のファイル名を液晶モニタ15に表示した後、そのファイル名が選択されると図6に示すフレーム画像51を液晶モニタ15に表示し、さらに、この表示しているフレーム画像51のフレームファイル22を選択する。
なお、フレーム画像51を液晶モニタ15に表示している状態で、そのフレーム画像51を選択しない操作が入力デバイス16に対してなされた場合には、印刷OP生成部65は、再びフレームファイル22のファイル名のリストを表示し、フレームファイル22の選択処理を継続する。
フレーム画像51を選択した後、印刷OP生成部65は、フレームファイル22の最初の画像嵌込枠52に嵌め込む画像を選択する(ステップS25)。
具体的には、印刷OP生成部65は、半導体メモリ20から画像ファイル21のファイル名を読み出し、この読み出したファイル名のリストを液晶モニタ15に表示する。入力デバイス16は、ユーザの操作に応じた入力データを出力する。そして、印刷OP生成部65は、リストを表示している状態での入力データに基づいて表示しているリストの中から1つのファイル名を選択すると、そのファイル名の画像ファイル21から画像データを読み込み、この画像データに基づく画像を液晶モニタ15に表示する。
また、印刷OP生成部65は、その画像を印刷に係る画像として選択する。たとえば、印刷OP生成部65は、図3に示す画像31のファイル名および図4に示す画像32のファイル名を液晶モニタ15に表示した後、画像31のファイル名が選択されると、図3に示す画像31を液晶モニタ15に表示し、さらに、この表示している図3の画像31の画像ファイル21を嵌込み画像として選択する。
なお、画像ファイル21の画像を液晶モニタ15に表示している状態で、その画像を選択しない操作が入力デバイス16に対してなされた場合には、印刷OP生成部65は、再び画像ファイル21のファイル名のリストを表示し、嵌め込み画像の選択処理を継続する。
画像嵌込枠52に嵌め込む画像を選択した後、印刷OP生成部65は、嵌込み画像の選択が、フレームファイル22のすべての画像嵌込枠52,53に関して選択し終えたか否かを判断する(ステップS26)。そして、印刷OP生成部65は、すべての画像嵌込枠52,53に関して選択し終えていない場合には、別の画像嵌込枠53に嵌め込む画像の選択処理を実行する(ステップS27)。この画像嵌込枠53に嵌め込む画像の選択処理は、画像嵌込枠52に嵌め込む画像の選択処理と同様である。
たとえば、図6に示すフレーム画像51は、2つの画像嵌込枠52,53を有する。また、図6において左側の画像嵌込枠52には、図5に示すようにフレームIDとして「1」が対応付けられている。更に、図6において右側の画像嵌込枠53には、図5に示すようにフレームIDとして「2」が対応付けられている。このような場合には、印刷OP生成部65は、そのフレームIDの順番(昇順)にしたがって、最初の画像の選択処理(ステップS25)によって、フレームID「1」が対応付けられている左側の画像嵌込枠52に嵌め込む画像を最初に選択し、次の画像の選択処理(ステップS27)によって、フレームID「2」が対応付けられている右側の画像嵌込枠53に嵌め込む画像を選択する。
なお、図6において右側の画像嵌込枠53の画像を、最初の画像の選択処理(ステップS25)において選択し、左側の画像嵌込枠52の画像を、後の画像の選択処理(ステップS27)において選択するようにしてもよい。
また、2つ目以降の画像嵌込枠53に嵌め込む画像の選択処理(ステップS27)において表示する画像ファイル21のファイル名のリストは、最初の画像嵌込枠52に嵌め込む画像の選択処理(ステップS25)において表示する画像ファイル21のファイル名のリストと同一であっても、異なっていてもよい。たとえば、2つ目以降の画像嵌込枠53に嵌め込む画像の選択処理(ステップS27)において、既に選択されているファイル名を削除したリストを表示することで、同一の画像が1つのフレーム画像51に複数回嵌め込まれてしまうことを予防することができる。他にもたとえば、2つ目以降の画像嵌込枠53に嵌め込む画像の選択処理(ステップS27)において表示する画像ファイル21のファイル名のリストを最初のときと同一とすることで、1つの画像を1つのフレーム画像51に複数回嵌め込むことが可能となる。
フレームファイル22のすべての画像嵌込枠52,53に対して嵌め込む画像を選択すると、印刷OP生成部65は、スタートプリントオペレーション71を生成する(ステップS28)。このスタートプリントオペレーション71には、選択したフレームファイル22のファイルIDと、選択した画像ファイル21のファイルIDとが記述される。フレームファイル22のファイルIDは、画像ファイル21のファイルIDより前に、スタートプリントオペレーション71において記述される。フレームファイル22のファイルIDの後に続けて、複数の画像ファイル21のファイルIDが、画像嵌込枠52,53のフレームIDの順番(昇順)にしたがって並べて記述される。
たとえば、図6に示すフレーム画像51において、画像嵌込枠52(フレームID=1)に嵌め込む画像として図3に示す画像31を選択し、画像嵌込枠53(フレームID=2)に嵌め込む画像として図4に示す画像32を選択した場合、印刷OP生成部65は、図9に示すスタートプリントオペレーション71を生成する。
この図9のスタートプリントオペレーション71は、フレームファイル22のファイルID「FFFF0001」と、図3に示す画像31の画像ファイル21のファイルID「00000001」と、図4に示す画像32の画像ファイル21のファイルID「00000002」とが、その順番で記述される。つまり、スタートプリントオペレーション71の先頭には、選択されたフレームファイル22のファイルIDが、画像データファイルのうちの最初のファイルとして記述され、そのフレームファイル22のファイルIDの後に、画像嵌込枠52,53のフレームIDの順番(昇順)にしたがって、各画像嵌込枠52,53に割り当てられた画像ファイル21のファイルIDが順番に記述されている。
なお、フレームIDの順番とは異なる順番にて複数の画像嵌込枠52,53に嵌め込む複数の画像を選択した場合においても、印刷OP生成部65は、このスタートプリントオペレーション71においては、その選択した複数の画像の画像ファイル21が複数の画像嵌込枠52,53のフレームIDの順番にしたがった順番(昇順)に並ぶように、それらのファイルIDを記述する。
一方、フレーム画像51を用いない印刷処理では、印刷OP生成部65は、まず、画像を選択する(ステップS31)。具体的には、印刷OP生成部65は、まず、半導体メモリ20に記憶されている画像ファイル21のファイル名のリストを液晶モニタ15に表示し、次に、入力デバイス16からの入力データに基づいてこのリストの中から選択したファイル名の画像を液晶モニタ15に表示する。これにより、印刷OP生成部65は、画像を選択する。また、印刷OP生成部65は、1つの画像を選択し終えたら、再度ファイル名のリストを液晶モニタ15に表示する。これにより、複数の画像を選択することができる。
また、入力デバイス16から画像の選択を終了する旨の入力データが入力される(ステップS32)と、印刷OP生成部65は、印刷条件を選択する(ステップS33)。具体的にはたとえば、印刷OP生成部65は、用紙のサイズ(A4、L版など)や種類(光沢紙、普通紙など)、1枚の用紙に印刷する画像の数の候補リスト(たとえば1up,2up,4upなど)、印刷品質(標準画質、高画質、APF(Auto Photo Fine)処理などのエフェクト処理の有無など)などの印刷条件を選択する。
画像および印刷条件の選択が終了すると、印刷OP生成部65は、スタートプリントオペレーション71を生成する(ステップS34)。このスタートプリントオペレーション71には、選択した画像ファイル21のファイルIDと、選択した印刷条件とが記述される。複数の画像ファイル21のファイルIDを選択した場合、印刷OP生成部65は、その複数のファイルIDを、選択した順番に並べてスタートプリントオペレーション71に記述する。
このようにフレーム挿入印刷のためのスタートプリントオペレーション71、あるいは、通常の画像印刷のためのスタートプリントオペレーション71を生成した後、印刷OP生成部65は、この生成したスタートプリントオペレーション71をDSC1のPTP通信部66へ出力する(ステップS36)。DSC1のPTP通信部66は、スタートプリントオペレーション71をプリンタ2のPTP通信部106へ送信する(図12のステップ7)。プリンタ2のPTP通信部106は、受信したスタートプリントオペレーション71をOP解釈部101へ出力する。
OP解釈部101は、XML形式のデータとして記述された各種のオペレーションが入力されると、そのオペレーションに対応付けられた処理を実行する。スタートプリントオペレーション71が入力された場合には、OP解釈部101は、印刷画像生成部102に印刷処理の開始を指示する。これにより、印刷処理が開始される(図12のステップS8)。
図14は、図8中の印刷画像生成部102の印刷画像生成処理を示すフローチャートである。印刷画像生成部102は、まず、スタートプリントオペレーション71の最初に記述されているファイルIDのファイルを取得する(ステップS41)。具体的には、印刷画像生成部102は、スタートプリントオペレーション71から最初のファイルIDを抽出し、このファイルIDのファイルの取得をファイル取得部103に指示する。ファイル取得部103は、指定されたファイルIDのファイルを取得するファイル取得オペレーションをPTP通信部106へ出力する。図9のスタートプリントオペレーション71の場合には、ファイル取得部103は、この最初のファイル取得オペレーションでは、ファイルID「FFFF0001」を指定することになる。
プリンタ2のPTP通信部106は、ファイル取得オペレーションが入力された場合、そのオペレーションをPTPによるファイル取得コマンドへ変換して、DSC1のPTP通信部66へ送信する(図12のステップS9)。DSC1のPTP通信部66は、このPTPによるファイル取得コマンドを受信すると、そのコマンドに指定されたファイルIDのファイルを半導体メモリ20から読み込み、読み込んだファイルを、プリンタ2のPTP通信部106へ送信する(図12のステップS10)。プリンタ2のPTP通信部106は、受信したファイルをRAM83に保存する。図9のスタートプリントオペレーション71の場合には、ファイルID「FFFF0001」のフレームファイル22が、RAM83に保存されることになる。
スタートプリントオペレーション71の最初に記述されているファイルIDのファイルを取得すると、印刷画像生成部102は、各用紙に印刷する画像のレイアウトを決定する(図14のステップS42)。印刷画像生成部102は、このレイアウトの決定のために、取得したファイルと、スタートプリントオペレーション71とを使用する。
具体的にはたとえば、印刷画像生成部102は、まず、取得したファイルがフレームファイル22であるか否かを判断する。
そして、取得したファイルがフレームファイル22である場合には、印刷画像生成部102は、そのフレームファイル22に記述されているレイアウト情報に基づいて、用紙に印刷する印刷画像のレイアウトを決定する。この場合のレイアウトでは、印刷画像生成部102は、フレームファイル22のレイアウトデータ42などに基づいて、フレーム画像51および画像嵌込枠52,53の印刷画像におけるレイアウトを決定する。フレームファイル22では、1枚の用紙には、1つのフレーム画像51が印刷される。したがって、用紙1枚に印刷する画像ファイル21の画像の数は、フレーム画像51に割り付けられている画像嵌込枠52,53の数、つまり図6の例では2となる。
取得したファイルがフレームファイル22でない場合には、印刷画像生成部102は、スタートプリントオペレーション71に指定される印刷条件に基づいて、用紙に印刷する印刷画像のレイアウトを決定する。たとえば、スタートプリントオペレーション71において1枚の用紙に印刷する画像の数として「2up」が指定されている場合には、印刷画像生成部102は、1枚の用紙に2つの画像を印刷するレイアウトを決定する。
用紙に印刷する画像のレイアウトを決定すると、印刷画像生成部102は、スタートプリントオペレーション71での順番に基づいて、そのレイアウトで画像を印刷するために必要な数の画像ファイル21を取得する(図14のステップS43)。
たとえば、図6のフレーム画像51は2つの画像嵌込枠52,53を有する。したがって、図6のフレーム画像51の場合には、印刷画像生成部102は、スタートプリントオペレーション71の二番目のファイルIDのファイルと、三番目のファイルIDのファイルとの2つの画像ファイル21を取得する。
なお、各画像ファイル21の実際の取得処理は、スタートプリントオペレーション71の最初のファイルIDのファイル(フレームファイル22)を取得する場合と同様に、プリンタ2のPTP通信部106により実行される。プリンタ2のPTP通信部106は、ファイル取得部103のファイル取得オペレーションに基づいて、PTPによるファイル取得コマンドをDSC1のPTP通信部66へ送信し(図12のステップS11)、その応答として画像ファイル21を受信する(図12のステップS12)。また、プリンタ2のPTP通信部106は、取得した画像ファイル21をRAM83に書き込む。
RAM83に画像ファイル21が書き込まれると、印刷画像生成部102は、その画像ファイル21の画像データが符号化されているか否かを判断し、符号化されている場合には、デコーダ104へデコードを指示する。デコーダ104は、RAM83に書き込まれている画像ファイル21の画像データを復号する。
また、1枚の用紙の印刷に必要な画像ファイル21の取得処理とデコード処理とが完了すると、印刷画像生成部102は、画像の印刷を開始する(図14のステップS44)。具体的には、印刷画像生成部102は、先に決定したレイアウトの下で、画像ファイル21の画像を、スタートプリントオペレーション71におけるファイルIDの順番にしたがってフレーム画像51の画像嵌込枠52,53に嵌め込んだ印刷画像を生成する。
また、印刷画像生成部102は、複数の画像嵌込枠52,53を有するフレーム画像51に画像ファイル21の画像を嵌め込んだ画像を印刷する場合には、スタートプリントオペレーション71において記述されているファイルIDの順番と、フレームファイル22内の画像嵌込枠52,53のフレームIDの順番とを合わせて、複数の画像ファイル21を複数の画像嵌込枠52,53に割り当て、各画像嵌込枠52,53に割り当てた画像ファイル21の画像をその画像嵌込枠52,53へ嵌め込んで印刷画像とする。
そして、印刷画像生成部102は、生成した印刷画像を印刷制御部105へ出力する。印刷制御部105は、印刷画像に基づいてプリントエンジン87を制御し、その印刷画像を用紙に印刷する。
図15は、図9のスタートプリントオペレーション71にしたがって生成される印刷画像を示す図である。図9では、フレームファイル22のファイルID「FFFF0001」の次に記述されているファイルID「00000001」の画像31(図3参照)が、フレームIDが「1」である画像嵌込枠52に嵌め込まれ、その次に記述されているファイルID「00000002」の画像32(図4参照)が、フレームIDが「2」である画像嵌込枠53に嵌め込まれている。
このように、たとえば図9に示すスタートプリントオペレーション71に基づいて、図15に示す印刷画像が用紙に印刷される。また、フレーム挿入印刷でない場合には、印刷条件にしたがって画像を割り付けた印刷画像が用紙に印刷される。
また、印刷画像生成部102は、スタートプリントオペレーション71に未印刷の画像ファイル21が残っているか否かを判断する(図14のステップS45)。そして、スタートプリントオペレーション71に未印刷の画像ファイル21が残っている場合には、印刷画像生成部102は、その未印刷の画像ファイル21について、上述した画像ファイル21の取得処理から印刷画像の生成処理までの処理(図14のステップS43〜S45)を実行する。また、未印刷の画像ファイル21がなくなったら、印刷画像生成部102は、印刷画像の生成処理を終了する。
以上のように、この実施の形態1では、DSC1は、プリンタ2へ複数の画像嵌込枠52,53に予め対応付けられているフレームIDの順番に基づいて、複数の画像嵌込枠52,53に嵌め込む複数の画像ファイル32の嵌め込みを指示し、プリンタ2は、複数の画像嵌込枠52,53に予め対応付けられているフレームIDの順番に基づいて、複数の画像嵌込枠52,53を有するフレーム画像51に対して適切に画像を嵌め込んで印刷する。その結果、複数の画像嵌込枠52,53を有するフレーム画像51に対しても適切に画像を嵌め込んで、用紙に印刷することができる。つまり、DSC1により、画像嵌込枠52,53へ嵌め込む画像を確実に決定することができる。
また、この実施の形態1では、DSC1においてフレーム画像51の画像嵌込枠52,53に画像を嵌め込んだ画像を生成することなく、プリンタ2は、フレーム画像51を用いない通常の印刷の場合と共通の印刷処理手順(たとえば、印刷に係るファイルのファイルIDの指定など)によって、フレーム挿入印刷を実行することができる。
しかも、フレームファイル22が画像ファイル21としてスタートプリントオペレーション71において指定されるため、この実施の形態1でのフレーム挿入印刷のためのスタートプリントオペレーション71には、フレーム画像51を用いない通常の印刷の場合のスタートプリントオペレーション71と比べた場合に、フレーム挿入印刷のための専用の情報が新たに付加されてない。
上述した実施の形態は、本発明の好適な実施の形態の例であるが、本発明はこれに限定されるものではなく、種々の変形、変更が可能である。
たとえば、上述した実施の形態では、フレームファイル22は、画像ファイル21とともにDSC1の半導体メモリ20に記憶されている。この他にもたとえば、フレームファイル22は、プリンタ2側(内蔵メモリやメモリカードスロットに挿入されたメモリカード)に記憶されていても、あるいはプリンタ2がアクセス可能なネットワーク上のサーバなどの装置に記憶されていてもよい。
上述した実施の形態では、スタートプリントオペレーション71では、フレームファイル22および画像ファイル21を特定するためのファイル特定情報として、ファイルIDを使用している。この他、このファイルIDやURLをファイル特定情報としてスタートプリントオペレーション71に記述するようにしてもよい。
上述した実施の形態では、スタートプリントオペレーション71の最初に、フレームファイル22のファイルIDを記述している。この他にもたとえば、スタートプリントオペレーション71においてフレームファイル22のファイルIDであることを明示し、プリンタ2はその明示に基づいてフレーム挿入印刷のスタートプリントオペレーション71であると判断したり、複数のファイルIDの中からフレームファイル22のファイルIDを特定したりするようにしてもよい。
上述した実施の形態では、複数の画像ファイル21は、スタートプリントオペレーション71において、画像嵌込枠52,53のフレームIDの順番(昇順)に並べて記述される。この他にもたとえば、スタートプリントオペレーション71において各画像ファイル21と画像嵌込枠52,53のフレームIDとの対応関係を明示し、プリンタ2はその明示に基づいて各画像ファイル21の画像を画像嵌込枠52,53に嵌め込むようにしてもよい。また、スタートプリントオペレーション71において画像ファイル21毎に印刷順を明示し、プリンタ2はその明示に基づいて各画像ファイル21の画像嵌込枠52,53への嵌め込み順を決定するようにしてもよい。
上述した実施の形態では、プリンタが、画像ファイル21の画像およびフレーム画像51から印刷画像を生成し、この印刷画像を用紙に印刷している。この他にもたとえば、DSCに表示装置を接続し、この表示装置が、画像ファイル21の画像およびフレーム画像51から画像を生成し、この画像を表示画面に表示するようにしてもよい。
上述した実施の形態では、DSC3を例として画像出力指示装置を説明している。画像出力指示装置は、他にもたとえば、携帯電話機、PDA(Personal Digital Assistants)などの情報端末であってもよい。
上述した実施の形態では、スタートプリントオペレーション71などを送信する手段として、PTP通信部と、USBスティルイメージクラスと、USB通信I/Fとで構成されるものを利用している。この他にもたとえば、サブクラスとしてSCSIコマンドを指定したUSBマスストレージクラスと、USB通信I/Fとで構成されるものを、オペレーションなどを送信する手段として利用してもよい。さらに他にもたとえば、オペレーションなどを送信する手段として、USBなどの有線通信路を利用するのではなく、無線通信路を利用するものを利用してもよい。
上述した実施の形態では、DSC1からプリンタ2へスタートプリントオペレーション71を送信し、プリンタ2がそのスタートプリントオペレーション71で指定された画像ファイル21を読み込んでいる。この他にもたとえば、DSC2が、プリンタ2へ画像ファイル21を自発的に送信するようにしてもよい。
上述した実施の形態では、フレームIDは、昇順の数字とされているが、アルファベット(A,B,C,・・・等)や、アルファベットと数字を含む文字列としてもよい。また、画像嵌込枠52,53への画像ファイル21の割り当てを、フレームIDの昇順で行っているが降順としてもよい。なお、アルファベットの場合、昇順ではA,B,C,・・・の順番となる。
上述した実施の形態では、1つのフレームファイル22内にレイアウトデータとフレーム画像データが含まれるが、レイアウトデータとフレーム画像データとを別々のファイルとしてものよい。その場合、レイアウトデータ内で指定されたフレーム画像データのファイルがプリンタにより、レイアウトデータとは別に取得される。
1 DSC(画像出力指示装置)、2 プリンタ(画像出力装置)、19 通信手段(通信手段)、21 画像ファイル、22 フレームファイル、31,32 画像ファイルの画像、42 レイアウトデータ(画像嵌込枠のレイアウト情報)、51 フレーム画像、52,53 画像嵌込枠、65 印刷OP生成部(出力指示生成手段)、71 スタートプリントオペレーション(画像出力指示)、86 USB通信I/F(受信手段)、87 プリントエンジン(出力手段)、102 印刷画像生成部(出力画像生成手段)