図1は、本実施例に係るプリンタ1の機能構成を示すブロック図である。プリンタ1は、それぞれ後述するように、操作パネル10と、スキャン機構30と、プリント機構40と、メイン制御部50とを備えて構成されている。即ち、プリンタ1は、少なくとも、原稿から画像を読み取ってディジタルデータ化するスキャナ機能と、読み取られたディジタルデータを印刷用紙に印刷するプリンタ機能(コピー機能)とを備える。さらに、プリンタ1は、例えば、ディジタルカメラやパーソナルコンピュータ等のホストコンピュータ装置PCから通信ケーブルCNを介して画像データを受信し、印刷する機能も備える。また、後述のように、プリンタ1は、オーダーシート64のマーク位置に基づいて、メモリカード59から画像データを読み込んで印刷することができる。この機能を、本実施例では、「オーダーシート印刷」と呼ぶ。
操作パネル10は、視認性及び操作性を考慮して、プリンタ1の表面に設けられるもので、情報入力部10A及び情報出力部10Bを備えたマンマシンインターフェースとなっている。情報入力部10Aには、図4と共に後述する各種ボタン類11,13や印刷メニュー12等の複数の情報入力手段が含まれている。情報出力部10Bには、例えば、ディスプレイ21やランプ22が含まれている。
スキャン機構30は、例えば、プリンタ1の上部に設けられる。スキャン機構30は、光源31と、受光部32と、受光部32を所定方向に移動させるための走査部33とを備えている。このスキャン機構30と、後述する原稿台35及び原稿台カバー34と、スキャナ制御部53とによりスキャナ装置が構成される。このスキャナ装置は、「画像データ生成手段」の一例に該当する。受光部32は、例えば、RGBのカラーフィルタをそれぞれ備える複数のラインCCD(Charge Coupled Device)から構成することができる。但し、カラーフィルタの種類はRGBに限られない。光源31からの光は、原稿の表面で反射して物体色を含んだ反射光となる。この反射光は、レンズや反射鏡等を介して受光部32に到達し、受光部32により電気信号に変換される。スキャナ装置の光学系構造としては、上記に限らず種々のものを採用できる。例えば、原稿台35の画像読取面よりも短いCCDと、複数枚の反射鏡及びレンズからなる縮小光学系を用いてもよいし、画像読取面と略同じ長さのCCDを用いてもよい。あるいは、回折格子等の分光素子を用いて構成することも可能である。
プリント機構40は、例えば、プリンタ1の下部に設けられる。プリント機構40は、プリントヘッド41と、プリントヘッド41を所定方向に移動させるための走査部42と、印刷用紙を搬送する用紙搬送部43とを備えている。このプリント機構40と、後述する給紙トレイ44及び排紙トレイ45と、プリンタ制御部57とにより、プリンタ装置が構成される。プリントヘッド41は、例えば、シアン、マゼンタ、イエロー、ブラック等の各色のインク滴を吐出するための多数のノズルと、各ノズルからインク滴をそれぞれ吐出させる駆動素子等とを備えて構成される。走査部(キャリッジ)42は、キャリッジモータ等を備えており、プリントヘッド41を印刷用紙の搬送方向(副走査方向)と直交する主走査方向に往復移動させる。用紙搬送部43は、紙端検出センサや紙送りモータ等を備えており、印刷用紙を所定量ずつ搬送する。プリント機構40は、例えば、1文字ずつ印刷可能なシリアル型印刷エンジンや、1行ずつ印刷可能なライン型印刷エンジンとして構成することができる。なお、プリント機構40をページプリンタとして構成することも可能である。
メイン制御部50は、例えば、演算処理装置(CPU等)やメモリ装置(ROM、RAM等)、入出力回路等を備えたマイクロコンピュータシステムとして構成される。また、メイン制御部50は、特定の処理を実行するための専用ハードウェア回路(ASIC(Application Specific Integrated Circuit )を備えることもできる。メイン制御部50は、それぞれ後述するように、オーダーシート発行部51と、オーダーシート解析部52と、スキャナ制御部53と、スキャンデータ記憶部54と、画像処理部55と、印刷イメージデータ記憶部56と、プリンタ制御部57と、カードインターフェース(以下、I/F)58と、データ管理部60と、画像情報リスト記憶部61と、抜き差し検出部62と、外部インターフェース(以下、外部I/F)63を備えている。これら各機能は、ハードウェア回路またはソフトウェアのいずれかで、あるいはハードウェア回路とソフトウェアとの協働により実現される。
オーダーシート発行部51は、オーダーシート印刷に用いるためのオーダーシート64をプリント機構40を介して印刷出力させるものである。オーダーシート印刷とは、メモリカード59に記録されている複数の画像データ(1つの場合もあり得る)の中から印刷を希望する1つまたは複数の画像データを、オーダーシート64を介してユーザに選択させ、この画像選択済のオーダーシート64をスキャナ機能を利用して読み込むことにより、選択された画像のデータをメモリカード59から読み出して、自動的に印刷を行う機能である。オーダーシート発行部51は、印刷メニュー12を介してオーダーシート印刷が指定されると、画像情報リスト61を参照してオーダーシート64を生成するためのデータまたは指示を生成し、画像処理部55に入力する。これにより、オーダーシート用印刷データが生成され、プリント機構40からオーダーシート64が出力される。
オーダーシート解析部52は、スキャン機構30を介してオーダーシート64のシート画像が読み取られると、この読み取られたシート画像を解析し、ユーザにより選択された画像を特定する。オーダーシート解析部52は、画像情報リストT1を参照することにより、オーダーシート64で選択された画像データを特定する。画像の特定結果は、画像処理部55に入力される。画像処理部55は、ユーザにより選択された画像データをメモリカード59から読み出し、印刷データを生成する。なお、これに限らず、例えば、オーダーシート解析部52がメモリカード59から画像データを読み出して画像処理部55に入力するようにしてもよい。
スキャナ制御部53は、例えば、カラーコピーボタン11Aまたはモノクロコピーボタン11Bのいずれかにより印刷実行が指示されると、スキャン機構30を駆動させて原稿台35に置かれた原稿の画像を読み取らせるものである。スキャナ制御部53は、読み取られた画像データ(スキャンデータ)をスキャンデータ記憶部54に記憶させる。このスキャンデータ記憶部54は、例えば、RAM等のメモリ装置から構成される。スキャンデータ記憶部54に記憶された画像データは、カードI/F58を介してメモリカード59に書き込むことができる。この機能を、本実施例では、「スキャンtoメモリ」機能と称する。また、オーダーシート印刷時に、オーダーシート64は原稿台35上に載置され、その表面の画像(シート画像)がディジタルデータとして読み取られる。ディジタル化されたシート画像は、スキャンデータ記憶部54を介してオーダーシート解析部52に利用される。シート画像は、モノクロ画像データとして読み取られれば足りるが、これに限らず、カラー画像データとしてシート画像を読み取ってもよい。
画像処理部55は、例えば、スキャンデータ記憶部54に記憶されたスキャンデータを読み込んで、所定の画像処理を行うことにより、印刷用のイメージデータを生成する。あるいは、画像処理部55は、オーダーシート解析部52からの通知に従って、オーダーシート64用の印刷データを生成する。画像処理部55によって生成された印刷イメージデータは、印刷イメージデータ記憶部56に記憶される。印刷イメージデータ記憶部56は、例えば、RAM等のメモリ装置から構成することができる。画像処理部55は、例えば、RGB表色系からCMYK表色系への色変換処理、拡大処理、縮小処理、回転処理、各種補正処理、ハーフトーン処理等を行うことにより、プリントヘッド41を駆動させる印刷イメージデータを生成する。プリンタ制御部57は、印刷イメージデータ記憶部56から印刷イメージデータを取得して、プリントヘッド41に転送し、所定の印刷を実行させる。また、プリンタ制御部57は、走査部42及び用紙搬送部43の作動も制御する。
カードI/F58は、例えば、メモリカード59が着脱可能に装着されるカードスロット及びI/F回路等から構成される。データ管理部60は、カードI/F58を介してメモリカード59にアクセスし、画像データ等を管理する。カードI/F58を介してメモリカード59から画像データやヘッダ情報等を読み出すことができ、また、カードI/F58を介してメモリカード59に画像データやヘッダ情報等を書き込むことができる。メモリカード59は、例えば、半導体メモリ等の記憶装置を備えた比較的小型で着脱自在な画像記録媒体である。なお、メモリカード59は、接触式の画像記録媒体に限らず、非接触式の画像記録媒体として構成してもよいし、プリンタ1に内蔵されたハードディスク装置(不図示)をメモリカード59に代えて用いてもよい。ここで、メモリカード59には、各画像毎のデータファイルが記憶されており、各画像データファイルは、ヘッダ情報、サムネイル画像データ、本画像データをそれぞれ備えている。ディジタルカメラで被写体を撮像すると、高解像度の本画像データが得られる。サムネイル画像データは、本画像データを間引くことにより低解像度の小画像データとして生成される。本画像データとサムネイル画像データとは対応付けられてメモリカード59に記録されている。
データ管理部60は、メモリカード59に記録されている画像データを管理するもので、ファイル管理システムを備えている。データ管理部60は、メモリカード59に記録されている画像データの属性(ファイル名、ファイルパス、データサイズ等)を把握し、これらの情報に基づいて画像データを管理するための画像情報リストT1を生成する。生成された画像情報リストT1は、画像情報リスト記憶部61に記憶される。画像情報リスト記憶部61は、例えば、RAMやフラッシュメモリ等に構築される。また、データ管理部60は、ある所定のタイミングで、メモリカード59の最新の記憶構成に基づいて、画像情報リストT1を更新させる。所定のタイミングについては後述するが、例えば、メモリカード59の装着時、メモリカード59内の画像データへの編集作業時、メモリカード59に記録された画像データに基づく印刷時等を挙げることができる。
抜き差し検出部62は、カードI/F58にメモリカード59が装着されたか否かを監視するものである。抜き差し検出部62は、例えば、I/F回路の信号電圧の変化に基づいてメモリカード59の有無を検出できる。あるいは、抜き差し検出部62は、機械式スイッチによりメモリカード59の存在を検出することもできる。抜き差し検出部62は、メモリカード59の装着を検出すると、データ管理部60に通知する。この通知を受けて、データ管理部60は、メモリカード59にアクセスし、メモリカード59内に記録されている画像データに基づいて、画像情報リストT1を生成する。
次に、図2及び図3に基づいて、プリンタ1の外観構成を説明する。図2は、原稿台カバー34を閉じた状態を示す。プリンタ1の上部にはスキャン機構30が設けられ、プリンタ1の下部にはプリント機構40が設けられている。また、プリンタ1の上部前面側には、操作パネル10が設けられている。さらに、プリンタ1の背面側には給紙トレイ44が、プリンタ1の下部前面側には排紙トレイ45が、それぞれ設けられている。このように、プリンタ1は、同一筐体にスキャン機構30及びプリント機構40を内蔵させた複合機として構成されている。
図3は、原稿台カバー34を開けた状態を示す。原稿台カバー34を開けると、プリンタ1の上部には、原稿台35が出現する。この原稿台35は、例えば、透明なガラス材料から平板状に形成されており、原稿台35の下側には光源31や受光部32等が配置されている。ユーザは、原稿台35上に位置合わせして原稿2を下向きに載置し、原稿台カバー34を閉じてスキャン開始を指示する。画像の読み取りが完了すると、ユーザは、原稿台カバー34を開けて原稿台35から原稿2を取り除き、新しい原稿2を原稿台35に載せる。オーダーシート印刷時には、ユーザによる画像選択済のオーダーシート64が原稿台35に下向きに置かれ、シート画像が読み取られる。
図4は、操作パネル10の外観を示す説明図である。操作パネル10の中央部には、例えば、液晶表示装置から構成されるディスプレイ21が設けられている。このディスプレイ21は、例えば、7行16桁(全角時)の表示能力を有する。ディスプレイ21の一方の側(図中右側)には、実行指示関係(スタート関係)の各種ボタン11A〜11Cと、メニュー操作関係の各種ボタン13A〜13Eとがそれぞれ配置されている。ディスプレイ21の他方の側(図中左側)には、スタンドアローンで実行可能な各種の処理態様モードを選択するための各種ボタン14A〜14Eと、給紙/排紙ボタン15と、電源ボタン16と、エラー通知用のランプ22とがそれぞれ配置されている。
各ボタン等の機能を説明すると、カラーコピーボタン11Aは、カラーコピーの実行を指示するためのものである。モノクロコピーボタン11Bは、モノクロコピーの実行を指示するためのものである。カラーコピーボタン11A及びモノクロコピーボタン11Bは、コピー動作の開始を指示する実行指示機能と、コピー対象の画像の種別(カラー画像かモノクロ画像か)を選択する選択機能との両者を実現している。ストップボタン11Cは、処理を終了させるものである。メニューボタン13Aは、ディスプレイ21に表示させるメニューを選択するものである。エンターボタン13Bは、選択した指示内容を確定させるためのものである。キャンセルボタン13Cは、選択した指示内容を取り消すものである。十字キーボタン13Dは、ディスプレイ21に表示されたメニューの各項目の表示内容を切替操作するものである。
本実施例のプリンタ1は、ローカルコピー、メモリカード印刷、フィルム印刷、スキャン、スキャンtoメモリ等の複数の処理態様を備える。コピーボタン14Aは、ローカルコピーを選択するものである。メモリカード印刷ボタン14Bは、プリンタ1に装着されたメモリカードから画像データを読み出して印刷させるモードを選択するものである。フィルム印刷ボタン14Cは、例えば、35mmフィルムやスライドフィルム等のフィルムから画像を読み取って印刷させるモードを選択するものである。スキャンモードボタン14Dは、原稿から読み取った画像をプリンタ1に装着されたメモリカードに記録したり、ホストコンピュータに送信等するモードを選択するためのボタンである。各種設定ボタン14Eは、例えば、ディスプレイ21のコントラスト調整、プリントヘッド41のクリーニング及びノズルチェック、インク残量の詳細表示、インクカートリッジの交換等を行うものである。なお、スキャンtoメモリ専用のモード選択ボタンを設けることもできるし、あるいは、印刷メニュー12からスキャンtoメモリ機能を呼び出すようにすることもできる。
また、給紙/排紙ボタン15は、給紙動作及び排紙動作を指示するものである。電源ボタン16は、プリンタ1への給電を制御するものである。ランプ22は、エラー発生時に点灯させることにより、ユーザの注意を喚起するためのものである。
図5は、オーダーシート64の構成を模式的に示す説明図である。オーダーシート64は、以下に説明するように複数の領域から構成されている。第1のガイド欄100は、オーダーシート64の最上部に設けられており、所望の画像を選択する方法をユーザに案内するものである。第1のガイド欄100の隣には、チェックサム表示欄101が設けられている。チェックサム表示欄101には、オーダーシート64にサムネイル画像が印刷される各画像データ全体のチェックサム値が、例えば黒四角形等のような図形により記号化されて印刷されている。この印刷されたチェックサム値とプリンタ1側で算出するチェックサム値とを比較することにより、メモリカード59とオーダーシート64とが対応しているか否かを判定できる。
第1のガイド欄100の下側には、複数のサムネイル表示欄110が設けられる。各サムネイル表示欄110には、それぞれ所定数のサムネイル画像111が表示される(1つのみ符号を付す)。各サムネイル画像111には、マーク部112と、連番113と、記録日時114とがそれぞれ対応付けられて印刷されている。各サムネイル画像111に対応付けられたマーク部112を鉛筆やペン等で塗りつぶすことにより、そのサムネイル画像111に相当する画像データ(本画像データ)が選択されるようになっている。図中では、2番目、5番目及び7番目の画像が選択された様子が示されている。
サムネイル画像表示欄110の下側には、第2のガイド欄120が設けられている。第2のガイド欄120は、印刷用紙の指定方法をユーザに案内するものである。第2のガイド欄120の隣には、用紙を選択するためのマーク部121と、複数の用紙種類122とが印刷されている。ユーザは、所望の種類の印刷用紙に対応するマーク部121をペン等で塗りつぶすことにより、その印刷用紙を指定することができる。
オーダーシート64の下部には、第3のガイド欄130が設けられている。第3のガイド欄130は、マーク済のオーダーシート64を用いて印刷を開始させるための方法をユーザに案内する。メモリカード59に記録されている画像データが多い場合、1枚のオーダーシート64に全てのサムネイル画像を印刷するのは難しい。この場合は、複数枚のオーダーシート64が出力され、各オーダーシート64にはそれぞれ他のシートと区別するためのページ番号が付与される。
図6は、メモリカード59内のディレクトリ構造の概略を示す説明図である。メモリカード59には、複数のディレクトリ「Dir A」、「Dir B」及び「EPSCAN」を形成可能である。そして、メモリカード59には、複数の画像データ(ファイルとも呼ぶ)「pictA1.jpg」、「pictA2.jpg」、「pictB1.jpg」等を記憶させることができる。また、メモリカード59には、画像データ以外のデータ「readme.txt」等も記憶可能である。画像情報リストT1には、メモリカード59に記憶されている全てのファイルのうち、画像ファイルのみが抽出されて登録される。ディレクトリ「EPSCAN」には、「スキャンtoメモリ機能」の実行時に、スキャン機構30から読み取られた画像データが格納される。即ち、「EPSCAN」ディレクトリは、内部ファイルシステムから画像記録媒体に画像データを書き込むための所定の格納領域である。なお、メモリカード59内の記憶領域は、画像データを記憶するための実データ領域と、記憶された画像データを管理するための管理情報を記憶する管理領域とに大別することができる。管理情報は、例えば、FAT等として知られているように、実データ領域に記憶されている画像データのファイル名、ファイルパス、日付(撮影日)等を含むことができる。
ここで、スキャンされた画像データが記憶される特定のディレクトリ「EPSCAN」内の画像データについて画像情報リストT1を生成させる方法としては、以下に述べる2つの方法を挙げることができる。第1の方法は、メモリカード59の管理情報(例えば、FAT)に基づいて、ディレクトリ「EPSCAN」の位置を特定し、次に、ディレクトリ「EPSCAN」内に記憶されている各画像データのヘッダ情報から必要な情報をそれぞれ取得する方法である。第2の方法は、メモリカード59の管理情報(例えば、FAT)に基づいて、ディレクトリ「EPSCAN」の位置と、このディレクトリ「EPSCAN」内に記憶されている各画像データのファイル名及びファイルパス等の情報を取得する方法である。
なお、メモリカード59内の全てのディレクトリを対象として画像情報リストT1を生成する方法として、2つの方法を挙げることができる。第1の方法は、メモリカード59の管理情報(例えば、FAT)に基づいて、全てのディレクトリ及びこれら各ディレクトリ内に存在する画像データのファイル名及びファイルパス等を取得する方法である。第2の方法は、メモリカード59内に記憶されている全ての画像データについて、そのヘッダ情報をそれぞれ取得する方法である。
図7は、データ管理部60により生成され、画像情報リスト記憶部61に記憶される画像情報リストT1の構成を示す説明図である。画像情報リストT1は、メモリカード59に記録されている画像データをプリンタ1が内部的に管理するための情報(あるいは画像管理テーブル)である。画像情報リストT1は、識別コード(ID)と、各識別コードに対応付けられた画像ファイル情報とから構成されている。メモリカード59に記憶されている各画像データ毎に、そのメモリカード59内で一意に定まる識別コードが対応付けられる。各画像ファイル情報は、各画像データにそれぞれ対応する。各画像ファイル情報は、それぞれ画像情報構造体T11から構成される。
画像情報構造体T11は、画像データの各種属性情報を配列した小テーブルである。画像情報構造体T11は、例えば、画像データのファイル名と、メモリカード59内の画像データにアクセスするためのフルパスファイル名と、記録の日付及び時刻と、ファイルアトリビュートと、その他付属情報とから構成される。従って、識別コードを検索キーとして画像情報リストT1を検索すれば、その識別コードに対応する画像情報構造体T11を呼び出すことができ、この画像情報構造体T11を参照することにより、所望の画像データのファイル名や格納場所等を把握することができる。
図8は、印刷リスト情報T2の構造を示す説明図である。印刷リスト情報T2を参照することにより、そこに記載された画像データがメモリカード59内から読み出され、読み出された画像データに基づいて印刷用データが生成される。印刷リスト情報T2は、例えば、識別コード(JID)と、識別コードに対応付けられた印刷ファイル情報と、印刷ジョブ全体に適用される印刷設定情報とから構成されている。各印刷ファイル情報は、印刷ファイル情報構造体T21から構成される。印刷ファイル情報構造体T21は、印刷用画像識別コード(以下、IDX)及びファイル毎の設定情報とから構成されている。通常のメモリカード印刷の場合、IDXには、画像リスト情報T1の識別コードがセットされる。従って、印刷ファイル情報構造体T21のIDXに基づいて画像情報リストT1を検索することにより、印刷されるべき画像データを特定してメモリカード59から読み出すことができる。なお、後述のように、画像情報サブリストT3が用意される場合は、IDXにはサブIDがセットされる。ファイル毎の設定情報とは、例えば、印刷時の色合い等のファイル毎の印刷設定情報を示す。印刷ジョブ全体の印刷設定情報には、例えば、用紙サイズの指定、レイアウト、回転処理の有無等が含まれる。
図9は、画像情報サブリスト(以下サブリスト)T3の構造を示す説明図である。サブリストT3は、例えば、ある特定の期間または特定日に記録された画像データのみを抽出して印刷したり、特定のフォルダに格納された画像データのみを抽出して印刷するような場合に使用される。サブリストT3は、識別コード(SID)及び画像ファイル情報サブID(以下、サブID)とから構成されている。ここで、サブリストT3の識別コードSIDそれ自体は、単に順番を示すだけのものである。サブIDには、画像情報リストT1の識別コード、即ち、目的とする画像データを特定する識別コードがセットされる。サブリストT3が生成される場合は、印刷ファイル情報構造体T21のIDXには、サブIDがセットされるようになっている。従って、ある特定の画像データ群のみを印刷するためにサブリストT3が用意された場合、印刷リスト情報T2から読み出したIDXに基づいてサブリストT3のサブIDを引き出し、このサブIDに基づいて画像情報リストT1を検索することにより、目的とする画像データの情報を得ることができる。画像情報リストT1と印刷情報リストT2との間にサブリストT3を介在させることにより、ASCIIコードに従った順序(ASCIIソート順)のみに従った印刷以外に、種々の条件(期間やフォルダ名等)で画像を印刷することができる。オーダーシート印刷の場合も、このサブリストT3を利用することにより、オーダーシート64上でマークされた画像のみを抽出して印刷することができる。
図10は、プリンタ1のファームウェア構造に着目したブロック図である。ファームウェア200は、例えば、ユーザインターフェース(以下、UI)を担当するUI層210と、サービス層220と、ファンクション層230と、データパスコントローラ(以下、DPC)240とデータパス250とから構成することができる。
UI層210は、操作パネル10を介して、ユーザから入力された情報を受け付け、または、ユーザに向けて情報を提供する。サービス層220は、各種印刷モードの実行に際して主導的な役割を果たすものである。サービス層220は、UI層210から入力された情報をファンクション層230に伝達する。また、サービス層220は、UI層210に各種の応答や通知を行う。ファンクション層230は、各印刷モードの機能毎にそれぞれ用意される。ファンクション層230は、サービス層220から入力された要求を解釈し、実行可能なコマンドに変換してDPC240に伝達する。DPC240は、ファンクション層230から入力された要求を、それぞれ所定のデータパスに引き渡す。データパスとしては、例えば、コピーパス251と、ジョブ登録パス252と、印刷パス253とを挙げることができる。
デバイスハーネス300は、物理的なデバイス400をファームウェア200に対して論理的に認識させるためのものである。デバイス400には、例えば、メモリカードデバイス410と、プリンタデバイス420と、ファイルリストマネージャ430とを含めることができる。メモリカードデバイス410は、メモリカード59に対応する。プリンタデバイス420は、プリンタ1のプリンタ機能に対応する。デバイスハーネス300には、例えば、メモリカードデバイスハーネス310と、プリンタデバイスハーネス320とを設けることができる。メモリカードデバイスハーネス310は、メモリカードデバイス410に、プリンタデバイスハーネス320は、プリンタデバイス420にそれぞれ対応する。ファイルリストマネージャ430は、サービス層220からの要求に従って、画像情報リストT1の作成や削除を行う。
図10に基づいて、プリンタ1にメモリカード59を装着し、メモリカード59に記憶されている画像データを呼び出して印刷する場合の流れを説明する。まず、プリンタ1にメモリカード59が装着されると、物理的存在であるメモリカードデバイス410から論理的存在であるメモリカードデバイスハーネス310に通知される(S1)。メモリカードデバイスハーネス310は、サービス層220に対し、カード挿入イベントの発生を通知する(S2)。カード挿入イベントの通知を受けたサービス層220は、ファイルリストマネージャ430に対し、画像情報リストT1の作成を要求する(S3)。ファイルリストマネージャ430は、サービス層220からの指示に応じて、メモリカード59内に記憶されている画像データを検索し、画像情報リストT1を生成する。生成された画像情報リストT1は、画像情報リスト記憶部61に記憶される。
ユーザは、操作パネル10を介して、メモリカード59に記憶されている画像データを選択すると共に、印刷条件を入力する。そして、ユーザは、指定した画像データの印刷実行を指示する。このユーザによる指示は、UI層210を介してサービス層220に入力される(S4)。サービス層220は、印刷要求を所定のファンクション層230(この場合は、メモリカード印刷用のファンクション層)に入力する(S5)。ファンクション層230は、DPC240に印刷ジョブの登録を要求する(S6)。DPC240は、印刷ジョブの登録要求を受け取ると、ジョブ登録データパスにより新たな印刷ジョブを登録させる(S7)。印刷ジョブが登録されて待ち行列に置かれると、DPC240は、印刷データパス253に印刷開始を要求する(S8)。印刷データパス253は、ファイルリストマネージャ430及びメモリカードデバイス410から、印刷すべき画像データ及びその画像データに関するファイル情報を取得し(S9)、印刷を開始する(S10)。
図11に基づいて、プリンタ1からメモリカード59を取り外した場合の処理概要を説明する。ユーザによって、プリンタ1からメモリカード59が取り外されると、メモリカードデバイス410からメモリカードデバイスハーネス310に対し、メモリカード59が取り外された旨が通知される(S11)。メモリカードデバイスハーネス310は、サービス層220に対し、メモリカード59が取り外された事を通知する(S12)。
サービス層220は、カード抜きイベントの通知を受領すると、ファイルリストマネージャ430に対し、画像情報リストT1の破棄を要求する(S13)。ファイルリストマネージャ430は、画像情報リスト記憶部61に記憶されている画像情報リストT1を破棄する。
図12に基づいて、画像情報リストT1を更新させる場合の処理概要を説明する。上述したように、プリンタ1は、その内部にスキャン機構30を備えており、また、プリンタ1はホストコンピュータPCに接続可能である。そして、プリンタ1に装着されたメモリカード59に対し、プリンタ内部のスキャナ機能とプリンタ外部のホストコンピュータPCから、それぞれ画像データを書き込むことができるようになっている。但し、プリンタ内部のスキャナ機能(内部ファイルシステム)とプリンタ外部のホストコンピュータPC(外部ファイルシステム)とは、同時にメモリカード59にアクセスすることはできず、いずれか一方のみがアクセス可能である(アクセスの排他制御)。
例えば、プリンタ内部のスキャナ機能またはホストコンピュータPCのいずれか一方から、メモリカード59に画像データ(画像ファイル)が書き込まれると(S20)、このファイル書込みはメモリカードデバイス410により検知され、メモリカードデバイスハーネス310に通知される(S21)。メモリカードデバイスハーネス310は、サービス層220に対し、ファイル書込みイベントの発生を通知する(S22)。
サービス層220は、ファイル書込みイベントの発生通知を受領した後、所定のタイミングが到来すると、ファイルリストマネージャ430に対し、画像情報リストT1の更新を要求する(S23)。即ち、ファイル書込みイベントの発生と画像情報リストT1の更新とは同期しておらず、画像情報リストT1の更新は非同期で実行される。換言すれば、ファイル書込みイベントの検知は、画像情報リストT1の更新を行うための前提条件となっており、所定のタイミングの到来が画像情報リストT1の更新実行条件となっている。所定のタイミングとしては、例えば、後述のように、メモリカード59に記憶された画像データに基づいて印刷開始を指示する時を挙げることができる。
図13は、画像情報リストT1に関して、サービス層220が実行する処理の概要を示す説明図である。サービス層220は、メモリカード59がプリンタ1に装着され、カードI/F58とメモリカード59とが接続されると、画像情報リストT1の作成をファイルリストマネージャ430に要求する(S30)。また、サービス層220は、メモリカード59がプリンタ1から取り外され、メモリカード59とカードI/F58との接続が解除されると、ファイルリストマネージャ430に対し、画像情報リストT1の破棄を要求する(S40)。さらに、サービス層220は、プリンタ内部のスキャナ機能またはホストコンピュータPCからメモリカード59に画像データが書き込まれると、画像情報リストT1の更新を要求すべき事を記憶する(S50)。この時点では、画像情報リストT1の更新は行われない。そして、ユーザによってメモリカード59に記憶された画像データの印刷開始が指示されると、サービス層220は、ファイルリストマネージャ430に画像情報リストT1の更新を要求する(S60)。
画像情報リストT1の作成処理(S30)、画像情報リストT1の更新要求の記憶処理(S50)及び画像情報リストT1の更新要求処理(S60)の詳細については、それぞれ後述する。なお、画像情報リストT1の破棄処理(S40)は、画像情報リスト記憶部61に記憶されている画像情報リストT1を破棄するだけなので、詳細を割愛する。
次に、サービス層220の各処理内容の詳細を説明する前に、ファンクション層230及びデバイスハーネス300の処理概要を先に説明する。
図14は、「スキャンtoメモリ機能」を実行するファンクション層230の概略処理を示すフローチャートである。「スキャンtoメモリ機能」がユーザにより指示された場合に、「スキャンtoメモリ機能」ファンクション層230が呼び出されて起動する。まず、プリンタ内部のスキャナ機能は、プリンタ1のローカルメモリ(RAM等)に対するアクセス権を取得し、ロックをかけ、スキャン機構30によって読み取られた画像データのローカルメモリへの書込みを開始する(S71)。ローカルメモリは、スキャンされた画像データをメモリカード59の所定領域(ディレクトリ「EPSCAN」)に書き込むためのデータバッファとして機能する。
ローカルメモリへのスキャンデータの書込み開始は、メモリカードデバイスハーネス310に通知される(S72)。次に、ファンクション層230は、DPC240に対し、「スキャンtoメモリ機能」の実行を指示する(S73)。DPC240は、所定のデータパスに指示を出すことにより、「スキャンtoメモリ機能」を実行させる。スキャンデータのメモリカード59への格納が完了し、DPC240から処理完了通知を受信すると(S74:YES)、ファンクション層230は、処理を終了する。
次に、図15は、メモリカードデバイスハーネス310の概略処理を示すフローチャートである。メモリカードデバイスハーネス310は、メモリカードデバイス410からの通知に基づいて、メモリカード59へのファイル書込みイベントが発生したか否かを判定する(S81)。ファイル書込みイベントが発生した場合(S81:YES)、メモリカードデバイスハーネス310は、このファイル書込みイベントが、スキャナ機能によるローカルメモリへの書込みイベントであるか否かを判定する(S82)。
図14中のS72によってファンクション層230からメモリカードデバイスハーネス310にローカルメモリへのファイル書込みが通知されている場合は(S82:YES)、内部ファイルシステムによる書込みモード(ローカルモードと呼ぶこともできる)の場合である。上述のように、「スキャンtoメモリ機能」によりメモリカード59に画像データを書き込む場合は、予め指定されている所定のディレクトリ「EPSCAN」に画像データが格納される。プリンタ内部のスキャナ機能によってメモリカード59に書き込まれる画像データは、所定のディレクトリ「EPSCAN」のみに存在し、それ以外の場所に書き込まれることはない。
従って、所定のディレクトリ「EPSCAN」のみを対象として、画像情報リストT1を得ることができる。例えば、所定のディレクトリ「EPSCAN」に関する管理情報をメモリカード59内の管理領域から取得することにより、「スキャンtoメモリ機能」終了後の最新の状態に基づいた画像情報リストT1を得ることができる。あるいは、所定のディレクトリ「EPSCAN」に記憶された各画像データのヘッダ情報をそれぞれ取得することにより、画像情報リストT1を得ることができる。
即ち、上述したように、ディレクトリ「EPSCAN」の位置だけをメモリカード59内の管理情報(例えば、FAT)から調べて特定し、このディレクトリ「EPSCAN」内に記憶された各画像データのヘッダ情報をそれぞれ調べてファイル名やファイルパス等を取得することにより、画像情報リストT1を得ることができる。あるいは、メモリカード59内の管理情報(例えば、FAT)に基づいて、ディレクトリ「EPSCAN」の位置、及び、このディレクトリ「EPSCAN」内に記憶されている各画像データのファイル名やファイルパス等を取得することにより、画像情報リストT1を得ることができる。いずれの方法を採用してもよい。
そこで、メモリカードデバイスハーネス310は、サービス層220に対し、メモリカード59の全ディレクトリ構造のうち所定のディレクトリのみが更新されたことを示す「一部更新」を通知する(S83)。
これに対し、ホストコンピュータPCからメモリカード59に画像データが書き込まれる場合は(S82:NO)、ホストコンピュータPCがメモリカード59のどのディレクトリに画像データを書き込んだかを、プリンタ1側で把握することができない。ホストコンピュータ1は、外部I/F63を介してメモリカード59に直接的にアクセスし、メモリカード59に画像データを書き込むことができるためである。従って、ホストコンピュータPCがメモリカード59に画像データを書き込んだ場合は、メモリカード59の記憶領域のいずれに画像データが格納されたか不明であるため、メモリカード59の全ディレクトリを対象とすることにより、ホストコンピュータPCによる画像データ書込み後の最新状態に基づいた画像情報リストT1を得ることができる。そこで、メモリカードデバイスハーネス310は、サービス層220に対し、メモリカード59の全ディレクトリを対象として画像情報リストT1を更新すべき旨を示す「全部更新」を通知する(S84)。
次に、図16は、図13中の画像情報リスト作成要求処理の概略を示すフローチャートである。画像情報リスト作成要求処理は、メモリカード59がプリンタ1に装着されると実行される。まず、サービス層220は、ファイルリストマネージャ430に対し、画像情報リストT1の作成を要求し(S31)、次に、更新有無判定フラグに「更新必要」をセットしてメインルーチンに戻る(S32)。
図17は、図13中の画像情報リスト更新要求の記憶処理の概略を示すフローチャートである。この処理では、まず最初に、メモリカードデバイスハーネス310からの通知(図15中のS83またはS84)に基づいて、「全部更新」か「一部更新」かを判定する(S51)。「全部更新」が通知されている場合は、ホストコンピュータPCによってメモリカード59のどこかに画像データが書き込まれた場合であり、新たに書き込まれた画像データの所在が不明な場合である。そこで、サービス層220は、更新モードフラグに「全部更新」をセットし、メインルーチンに戻る(S52)。
これに対し、メモリカードデバイスハーネス310から「一部更新」が通知されている場合は、プリンタ内部のスキャナ機能により既知の所定のディレクトリ「EPSCAN」に画像データが書き込まれた場合である。従って、所定のディレクトリ「EPSCAN」のみを対象とすれば、メモリカード59の最新の状態を反映させた画像情報リストT1を得ることができる。
次に、サービス層220は、次に、更新モードフラグを検査し、更新モードフラグに「全部更新」が既にセットされているか否かを判定する(S53)。そして、更新モードフラグに「全部更新」がセットされていない場合(S53:NO)、サービス層220は、更新モードフラグに「一部更新」をセットする(S54)。メモリカードデバイスハーネス310から「一部更新」が通知されているのも拘わらず、更新モードフラグを検査するのは、先にホストコンピュータPCからメモリカード59に画像データを書込み、その後で、「スキャンtoメモリ機能」により別の画像データがメモリカード59に書き込まれる場合を考慮するためである。この場合、もしもS53の判定ステップが存在しないと、後から行われた「スキャンtoメモリ機能」により、メモリカードデバイスハーネス310からサービス層220に「一部更新」が通知される。従って、ファイルリストマネージャ430は、所定のディレクトリ「EPSCAN」のみを対象として(例えば、再検索して)画像情報リストT1を生成することになり、ホストコンピュータPCにより書き込まれた画像データの存在が画像情報リストT1に反映されないことになる。そこで、本実施例では、内部ファイルシステムによりメモリカード59に画像データが書き込まれた場合(あるいは、画像データの書込み先が既知の場合)でも、画像情報リストT1の更新前に、外部ファイルシステムによりメモリカード59に画像データが書き込まれたか否か、あるいは、画像データの書込み先が未知である操作が加えられたか否かを判定することにより、画像情報リストT1の信頼性を高くしている。
図18は、図13中の画像情報リスト更新要求の記憶処理の概略を示すフローチャートである。サービス層220は、まず最初に、更新有無判定フラグに「更新必要」がセットされているか否かを判定する(S61)。更新有無判定フラグは、画像情報リストT1の更新を行う必要があるか否かを示す情報である。更新有無判定フラグに「更新必要」がセットされていない場合(S61:NO)、サービス層220は、本処理を終了し、メインルーチンに戻る。
一方、更新有無判定フラグに「更新必要」がセットされている場合(S61:YES)、サービス層220は、更新モードフラグに「一部更新」がセットされているか否かを判定する(S62)。更新モードフラグに「一部更新」がセットされている場合、サービス層220は、予め指定されている所定のディレクトリ「EPSCAN」のみを対象として画像情報リストT1を生成するように、ファイルリストマネージャ430に要求し(S63)、メインルーチンに戻る。これに対し、更新モードフラグに「一部更新」がセットされていない場合(S62:NO)、即ち、更新モードフラグに「全部更新」がセットされている場合、サービス層220は、メモリカード59内の全ディレクトリを対象として画像情報リストT1を生成するように、ファイルリストマネージャ430に要求し(S64)、メインルーチンに戻る。
次に、図19は、オーダーシート発行処理を示すフローチャートである。まず、ユーザが印刷メニュー12を介してオーダーシート印刷を選択し、オーダーシートの発行を指示したか否かを判定する(S91)。オーダーシート発行が要求された場合(S91:YES)、オーダーシート発行部51は、画像情報リスト記憶部61から画像情報リストT1を読み込み(S92)、メモリカード識別用のチェックサム値を計算する(S93)。オーダーシート発行部51は、オーダーシート発行に必要なデータ(チェックサム値、サムネイル画像を取得するためのパス情報等)を画像処理部55に引き渡す。画像処理部55は、これらのデータに基づいてオーダーシート用の印刷データを生成する(S94)。なお、画像処理部55が、画像情報リストT1を直接参照することによってオーダーシート用印刷データを生成してもよい。オーダーシート用印刷データが生成されると、プリンタ制御部57は、プリント機構40の駆動を制御することにより、オーダーシート64を印刷する(S95)。複数枚のオーダーシート64が発行される場合は、全ページの印刷が完了するまで印刷が行われる(S96)。
図20は、印刷処理を示すフローチャートである。まず、画像処理部55は、印刷リスト情報T2が存在するか否かを判定する(S101)。印刷リスト情報T2が存在する場合は(S101:YES)、印刷リスト情報T2を読み込み(S102)、サブリストT3及び画像情報リストT1を参照して、印刷対象となっている画像データを特定する(S103)。そして、画像処理部55は(あるいはオーダーシート解析部52は)、ユーザの選択した画像データをメモリカード59から読出し(S104)、読み出した画像データに基づいて印刷データを生成する(S105)。この印刷データは、印刷イメージデータ記憶部56に記憶され、プリンタ制御部57により印刷される(S106)。ユーザにより選択された画像データがユーザ指定の印刷用紙に全て印刷されるまで、画像データの読出し、印刷データの生成及び印刷が繰り返される(S107)。
図21は、オーダーシート印刷処理を示す。本処理に入る前に、ユーザは、オーダーシート64のマーク部112,121を適宜マークすることにより、印刷を希望する画像及び印刷方法(用紙種)を選択する。ユーザは、選択済のオーダーシート64を原稿台35に載せて原稿台カバー34を閉じ、印刷メニュー12からオーダーシート64の読み込みを指示する。
ユーザが画像読取りを指示すると、スキャン機構30を介してオーダーシート64のシート画像が例えばモノクロ2値画像として読み取られる(S111)。オーダーシート解析部52は、例えば、パターンマッチング等の画像解析手法を用いて、シート画像の内容を解析し(S112)、いずれの画像がユーザに選択されたか、どの種類の印刷用紙がユーザに選択されたかを検出する。また、オーダーシート解析部52は、チェックサム表示欄101に記号化して印刷されたチェックサム値を復元する。
次に、オーダーシート解析部52は、画像情報リストT1に記載されている各画像データのファイル名に基づいて、1つのチェックサム値を計算し(S113)、この算出されたチェックサム値がチェックサム表示欄101に印刷されているチェックサム値と一致するか否かを判定する(S114)。両チェックサム値が一致しない場合は(S114:NO)、例えば、別のメモリカードに交換された場合のように、読み取られたオーダーシート64と現在のメモリカード59とが対応していない場合なので、エラー処理を行い、処理を終了する(S116)。
両チェックサム値が一致する場合、オーダーシート解析部52は、オーダーシート64を介して選択された画像データを、オーダーシート64を介して選択された印刷用紙に印刷させるための印刷リストT2を生成する(S115)。これにより生成された印刷リストT2に基づいて、図20と共に述べた印刷処理が行われる。
このように、本実施例によれば、メモリカード59がプリンタ1に装着された場合に限らず、所定のタイミングで画像情報リストT1を更新できるようにした。従って、最新の画像情報リストT1が必要となるタイミングで、画像情報リストT1を更新させることができ、メモリカード59に記憶されている最新の画像データに基づいて印刷を行うことができ、使い勝手が向上する。
また、本実施例では、メモリカード59に画像データが書き込まれるたびに画像情報リストT1の更新を行うのではなく、メモリカード59に画像データが書き込まれた後で、所定のタイミング(一例として、メモリカード59に格納されている画像データの印刷開始を指示する場合)が到来した場合に、画像情報リストT1を更新するようにした。従って、プリンタ1の処理負荷を増大させることなく、必要な場合にのみ最新の画像情報リストT1を得ることができる。
図23〜図27に基づいて、本発明の第3実施例を説明する。本実施例では、プリンタ1に一体的に設けられたスキャナからメモリカード59内の画像データが変更(例えば、追加または削除)された場合は、この変更された部分について画像情報リストT1を部分的に更新する。また、本実施例では、外部のホストコンピュータPCからメモリカード59内の画像が変更された場合は、画像情報リストT1を更新させることなく、そのまま維持させる。
図23は、画像情報リストT1の更新処理の概要を示すフローチャートである。まず、プリンタ1は、例えば、メモリカードのデバイスハーネス310によって、メモリカード59にファイル変更イベントが発生したか否かを監視している(S121)。ここで、ファイル変更イベントとしては、例えば、画像データの追加、画像データの削除を挙げることができる。
ファイル変更イベントが検出されると(S121:YES)、そのファイル変更がプリンタ1の有するスキャナによって行われたものであるか否かを判定する(S122)。スキャナによるファイル変更の場合(S122:YES)、変更されたファイルについて画像情報リストT1を更新する(S123)。この更新は、さらに後述するように、部分的に行われる点に注意すべきである。これに対し、スキャナによるファイル変更ではない場合(S122:NO)、即ち、ホストコンピュータがプリンタ1を介してメモリカード59の画像データを変更した場合は、画像情報リストT1を更新せず、そのまま維持する(S124)。
図24は、変更された画像データについて画像情報リストT1を部分的に限定的に更新する場合の機能構成を示す模式図である。図24は、例えば、スキャナからメモリカード59に画像データを追加する場合の一例である。
ファイルライタ510は、メモリカード59へのファイル書込みを行う機能である。ファイルネームクリエイタ520は、ファイルライタ510から渡された情報に基づいて、ファイル名及びファイルパス(図24中では、ファイル名及びファイルパスを「ファイル名」として表示)を生成する機能である。ファイル情報530は、スキャナによって追加されたファイル(画像データ)を一時的に管理するものである。ファイルシステムマネージャ540は、ファイルライタ510からの要求に応じて、プリンタ1のローカルメモリに蓄積された新たな画像データを、メモリカード59のファイルシステム550を介して、メモリカード59の所定の場所に記憶させるものである。
動作の詳細はさらに後述するが、「スキャンtoメモリ」を実行するファンクション210が呼び出されて、スキャナによって追加する予定の画像数nがファンクション210に入力されると、この画像追加枚数nは、ファンクション210からファイルライタ510に通知される(P1)。
ファイルライタ510は、例えば、2つのカウンタX,Y(不図示)を用いることにより、メモリカード59内で一意に特定可能なファイル名及びファイルパスを生成するための基礎情報(x、y)をそれぞれ生成する。例えば、「A:\EPSCAN\x\EPSy.jpg」のように、xは(サブ)ディレクトリ名を、yは画像データのファイル名をそれぞれ構成する情報である。具体的には、例えば、「A:\EPSCAN\001\EPS001.jpg」、「A:\EPSCAN\002\EPS002.jpg」等のように、x、yを用いてファイル名及びファイルパスを生成することができる。
ファイルライタ510が、基礎情報x、yをファイルネームクリエイタ520に入力すると(P2)、ファイルネームクリエイタ520は、上記のようなファイル名及びファイルパスを生成して、ファイルライタ510に返す(P3)。
ファイルライタ510は、ファイルネームクリエイタ520から受け取ったファイル名及びファイルパスが使用可能であるか否かを、ファイルシステムマネージャ540に問い合わせる(P4)。ファイルシステムマネージャ540は、メモリカード59のファイルシステムを参照し、ファイルライタ510から入力されたファイル名及びファイルパスが既に使用されているか否かを確認し、その結果を返す。
そのファイル名及びファイルパスが使用できない場合、ファイルライタ510は、カウンタX,Yの値を変更して新たな基礎情報x、yを生成し、再びファイルネームクリエイタ520に入力する。
そのファイル名及びファイルパスが使用できる場合、ファイルライタ510は、プリンタ1のスキャナによって読み取られてローカルメモリに記憶された画像データの追加を、ファイルシステムマネージャ540に要求する(P5)。ファイルシステムマネージャ540は、要求された画像データを指定されたファイル名及びファイルパスに従って、メモリカード59内に記憶させる。
ファイルライタ510は、画像データの追加記憶を完了するたびに、追加した画像データの基礎情報x、yをファイル情報530に登録する(P6)。ファイルライタ510は、ユーザにより指定された枚数nだけ、上述のようにファイル名及びファイルパスを生成し、メモリカード59に追加記憶させる。なお、ユーザが「スキャンtoメモリ機能」を途中で中断させる場合もある。この場合は、最初に指定された追加枚数nと異なる数の画像データがメモリカード59に追加記憶される。
予め指定された枚数nだけ新たな画像データをメモリカード59に追加した場合、または、「スキャンtoメモリ機能」が中断された場合には、スキャナからメモリカード59への画像データの追加が完了した旨が、ファイルライタ510からファンクション210に通知される(P7)。
ファンクション210は、追加された画像データのファイル名及びファイルパスをファイルライタ510に要求する(P8)。ファイルライタ510は、この要求に応じて、ファイル情報530に記憶されている各画像データの基礎情報x、yをそれぞれ読出し(P9)、ファイルネームクリエイタ520に入力して(P10)、各画像データのファイル名及びファイルパスをそれぞれ取得する(P11)。ファイルライタ510は、スキャナによって追加された各画像データのファイル名及びファイルパスを、ファンクション210に入力する(P12)。
ファンクション210は、追加された画像データの数N(0≦N≦n)を確認し、メモリカード59に追加されたN個の画像データの各ファイル名及び各ファイルパスを、画像情報リストT1に追加するように、ファイルリストマネージャ430に対して要求する(P13)。この要求には、画像情報リストT1に記録するための他の属性情報(日付等)を含めることができる。
ファンクション210からの要求を受けて、ファイルリストマネージャ430は、新たに追加された各画像データのファイル名及びファイルパスを、画像情報リストT1に追記させる(P14)。次に、画像情報リストT1へのファイル名等の追記完了後、ファンクション210は、ソーティングの実行をファイルリストマネージャ430に要求する(P15)。この要求を受けたファイルリストマネージャ430は、画像情報リストT1に記録されているファイル名を、例えば、アスキーコード順に並べ替える(S16)。
このように、ホストコンピュータを介さずに、内部的な画像入力手段であるスキャナからメモリカード59に画像データを直接的に追加して記録させる場合は、この追加された画像データの分だけ、画像情報リストT1に情報が追記される。そして、追加された画像データの情報を追記した後で、画像情報リストT1は更新される。
図25は、「スキャンtoメモリ機能」を用いた場合における画像情報リストの更新処理を示すフローチャートである。
ユーザが「スキャンtoメモリ機能」を選択すると、「スキャンtoメモリ」のファンクション210が起動する(S131)。ユーザは、プリンタ1のユーザインターフェースを介して、スキャナから追加する予定の画像数nを入力する(S132)。プリンタ1は、ファイル名及びファイルパスを生成する(S133)。また、プリンタ1は、スキャナから読み取った画像データに所定の処理(色変換や圧縮等)を行い、ローカルメモリに保存する(S134)。なお、ファイル名の生成と画像データの蓄積との実行順序は、問わない。
画像データの蓄積が正常に完了した場合(S135:YES)、プリンタ1は、メモリカード59に追加記憶された画像データを特定するための基礎情報x、yをファイル情報530に記憶し(S136)、「スキャンtoメモリ機能」による全ファイルの作成(追加記憶)が完了したか否かを判定する(S137)。プリンタ1は、全ファイルの作成を完了していない場合(S137:NO)、プリンタ1は、ユーザにより指定された画像追加枚数nを1つだけデクリメントし(S138)、S133に戻る。
このように、S133〜S138の処理を繰り返した結果、「スキャンtoメモリ機能」による全てのファイル作成が完了すると(S137:YES)、プリンタ1は、ファイル情報530を参照することにより、メモリカード59に追加して記憶された画像データが存在するか否かを判定する(S139)。前記S135で「NO」と判定されたときは、例えば、ユーザによって「スキャンtoメモリ機能」の実行が中断等された場合なので、S139に移る。
メモリカード59に画像データが追加されている場合(S139:YES)、プリンタ1は、新規に追加されたファイル(画像データ)について、ファイル名及びファイルパスを取得し(S140)、この取得したファイル名及びファイルパスを画像情報リストT1に順次登録していく(S141)。そして、プリンタ1は、画像情報リストT1を所定の規則に従って並べ替え(S142)、ファイルチェックサムを更新し(S143)、ユーザインターフェースの表示情報を更新させる(S144)。なお、表示情報の更新ステップは省略してもよい。
図26は、メモリカード59に記憶されている画像データを削除する場合の処理概要を示すフローチャートである。まず、ユーザは、プリンタ1のユーザインターフェースを介して、削除対象の画像データを指定する(S151)。
プリンタ1は、メモリカード59にアクセスし、ユーザにより指定された画像データをメモリカード59から削除させる(S152)。そして、プリンタ1は、削除した画像データを特定するための基礎情報x、yをファイル情報530に一時的に記憶させ(S153)、削除処理が完了したか否かを判定する(S154)。削除処理が完了するまで、S151〜S154の処理が繰り返される。
そして、削除処理が完了すると(S154:YES)、メモリカード59に記憶されていた全ての画像データが削除されたか否かを判定する(S155)。メモリカード59に一つ以上の画像データが残されている場合(S155:NO)、プリンタ1は、ファイル情報530を参照することにより、削除された画像データを画像情報リストT1から削除させ(S156)、削除後に画像情報リストT1を並べ替える(S157)。そして、プリンタ1は、ファイルチェックサムを計算し直して更新し(S158)、ユーザインターフェースの表示情報を更新させる(S159)。前記同様に、ユーザインターフェースの表示情報更新ステップは省略してもよい。
一方、ユーザによってメモリカード59内の全ての画像データが削除された場合(S155:YES)、画像情報リストT1を保持する必要が無くなったため、プリンタ1は、画像情報リストT1を破棄する(S160)。なお、図中では、ユーザが1枚ずつ画像データを選択して削除するかのように示しているが、ファイルの全削除を選択するモードを設け、全削除モードが指定された場合は、メモリカード59内の画像データを個々に選択することなく、一括して削除できるように構成することができる。
このようにして、メモリカード59から画像データが削除された場合、削除された画像データは、画像情報リストT1から消去される。従って、メモリカード59の挿抜に拘わらず、その削除された画像データをユーザが選択することはできない。
図27は、画像情報リストT1を作成する処理の概要を示すフローチャートである。この処理は、例えば、メモリカード59がプリンタ1に装着された場合に実行される(S171:YES)。
プリンタ1は、メモリカード59の装着を検出すると、メモリカード59内の各画像データのヘッダ情報をそれぞれ取得する(S172)。このヘッダ情報には、例えば、ファイルサイズや色空間を指定する情報等が含まれている。
プリンタ1は、その画像データのファイルサイズが、予め設定された第1のサイズ以上であるか否かを判定し(S173)、第1のサイズ以上の画像データについては、画像情報リストへの登録を行わない(S173:YES)。第1のサイズは、例えば、6000ピクセル×4500ピクセル程度に設定することができる。プリンタ1のメモリ資源には限りがあるため、大きすぎる画像データは画像情報リストT1への登録を行わず、プリンタ1の処理が低下するのを未然に防止している。
次に、プリンタ1は、その画像データのファイルサイズが、予め設定された第2のサイズ以下であるか否かを判定し(S174)、第2サイズ以下の画像データについては、画像情報リストT1への登録を行わない(S174:YES)。
EXIF形式の場合は、一つのファイル内に本画像データとサムネイル画像データとが含まれているので、S174のチェックを行う必要はない。しかし、それ以外の形式の場合、サムネイル画像データと本画像データとがそれぞれ別々のファイルとして、メモリカード59内に記憶されていることがある。そこで、本画像データとサムネイル画像データとがそれぞれ別ファイルとして記憶されている場合に、サムネイル画像データの画像情報リストT1への登録を禁止する。第2のサイズは、例えば、160ピクセル×120ピクセル程度に設定することができる。
従って、画像情報リストT1には、その画像データのサイズが、第1のサイズ未満であって、かつ、第2のサイズ以上の場合に、登録され得る。
次に、プリンタ1は、その画像データについて指定されている色空間に、対応可能か否かを判定する(S175)。例えば、ディジタルカメラによっては、そのベンダー毎に独自のカラープロファイルを設定している場合があり、その独自のカラープロファイルにプリンタ1が対応できない場合は、高品質の印刷を行うことができない可能性がある。そこで、プリンタ1は、対応可能な色空間が指定されている画像データのみを画像情報リストT1に登録する(S176)。
そして、プリンタ1は、メモリカード59内の全ての画像データについて、画像情報リストT1への登録の可否の検査が終了したか否かを判定し(S177)、終了していない場合は、次のファイルに移動して(S178)、上述したS172〜S176の処理を繰り返す。このように、プリンタ1は、画像データのヘッダ情報を利用して、画像情報リストT1を作成することができる。