以下、図面を参照して画像処理装置の実施の形態を詳細に説明する。
[第1の実施の形態]
図1には画像処理装置として動作するコンピュータ10が示されている。図1は、コンピュータ10の構成の一例を示す図である。
本実施の形態のコンピュータ10は、CPU(Central Processing Unit)12、ROM(Read Only Memory)14、RAM(Random Access Memory)16、表示部18、操作部20、HDD(Hard Disk Drive)22、及び通信IF(Interface)24がバス26を介して接続されて構成されている。
CPU12は、ROM14やHDD16に記憶されているプログラム(後述する画像ファイルに含まれる画像データの画像を表示するための画像処理プログラムも含む)を実行し、コンピュータ10全体の動作を制御する。ROM14には、CPU12が実行するプログラムやCPU12の処理に必要なデータ等が記憶されている。RAM16は、ワークメモリ等として使用される。
HDD22には、CPU12が実行するプログラムや各種データが記憶されている。また、HDD22には、1つの画像を表わす画像データを有する画像ファイル(詳細は後述)を記憶する記憶領域も設けられている。なお、画像ファイルの画像データは、画像読取装置で原稿を読み取って得られた画像データであってもよいし、撮像装置により撮像して得られた画像データであってもよい。また、コンピュータ10にインストールされているアプリケーションソフトで作成された画像データであってもよいし、外部のコンピュータから通信IF24を介して取得した画像ファイルの画像データであってもよい。画像ファイルの形式は特に限定されず、例えば、Tiff形式であってもよいし、Exif形式であってもよい。
なお、CPU12が実行するプログラムを記憶するための記憶媒体は、HDD22やROM14に限定されない。例えば、フレキシブルディスクやDVDディスク、光磁気ディスクやUSBメモリ(ユニバーサルシリアルバスメモリ)等(不図示)であってもよいし、通信IF24に接続された他の装置の記憶装置であってもよい。
表示部18は、例えば、液晶ディスプレイ等により構成され、CPU12の制御により各種画像、後述の表示画面30、及びメッセージ等を表示する。また、操作部20は、例えば、キーボードやマウス等により構成され、利用者が操作部20を操作することより各種情報が指定される。
通信IF24は、ネットワークや公衆回線等の通信手段を介して他の装置とデータの送受信を行なうためのインタフェースである。
次に、本実施の形態に係るコンピュータ10の作用について説明する。
利用者が操作部20を操作することにより、CPU12が画像処理プログラムの実行を開始する。ここでは、まず、画像処理プログラムをCPU12が実行することにより表示される表示ウィンドウ(表示画面)について説明する。
図2、及び図3は、画像処理プログラムをCPU12が実行することにより表示される表示画面30の一例である。この表示画面30には、ツールバー32と、全体サムネイルエリア34と、表示&編集履歴サムネイルエリア36と、詳細表示エリア38とを含んで構成されている。なお、本実施の形態では、画像ファイルの画像データが表わす画像全体の縮小画像を「全体サムネイル」と呼称し、画像データが表わす画像全体のうち、詳細表示エリア38に表示された表示画像60の位置(領域)の画像を縮小した縮小画像であって、表示&編集履歴サムネイルエリアに表示する縮小画像を「表示サムネイル」と呼称する。
ツールバー32は、画像処理プログラムが提供する様々な機能を示すボタン画像が並べられたエリアである。本実施の形態に係るツールバー32には、開くボタン40、倍率変更ボタン群41、編集ボタン群42、アンドゥボタン44,リドゥボタン45、表示サムネイルに追加ボタン46、及び閉じるボタン48の各ボタン画像(以下、単にボタンという場合もある)が配置されている。
開くボタン40は、利用者が表示画面30に表示させたい画像ファイルを指定するためのボタンであって、この利用者が開くボタン40にカーソルを合わせて操作部20のマウスボタンをクリックすると、表示させたい画像データの画像ファイルを指定するための指定画面が表示される。利用者がこの指定画面で画像ファイルを指定すると、該指定された画像ファイルに基づいて、全体サムネイルエリア34、表示&編集履歴サムネイルエリア36、及び詳細表示エリア38への画像の表示が行われる。なお、指定された画像ファイルの画像データ全体で表わされる1つの画像を、全体画像という。
なお、ここでは、表示画面30に表示されたボタン画像にカーソルを合わせてマウスボタンをクリックすることによりボタン画像に紐付けられた機能を実行させる例について説明するが、例えば、表示部18がタッチパネルディスプレイである場合には、利用者の指先等で接触選択する等によりボタン画像に紐付けられた機能を実行させるようにしてもよい。以下、ボタン画像やサムネイルを、マウスのクリックや指先接触して選択することを単に「選択」という。
閉じるボタン48は、表示画面30を閉じるためのボタンであり、利用者により閉じるボタン48が選択されると、表示画面30が閉じて表示が終了する。
倍率変更ボタン群41は、詳細表示エリア38に表示される表示画像60の表示倍率を変更するためのボタンである。詳細表示エリア38自体のサイズに変更がなければ、表示倍率の変更により画像の表示領域が変更されることになる。倍率変更ボタン群41には、表示倍率を低くするボタンと表示倍率を高くするボタンとが含まれる。また、表示倍率を指定するプルダウンメニューも設けられている。
編集ボタン群42は、詳細表示エリアに表示された表示画像60或いは画像データが表わす画像全体に対して編集を行なうためのボタンである。例えば、画像データが表わす画像全体を回転させる回転ボタン、画像全体の傾きを補正する傾き補正ボタン、画像データが表わす画像の中の利用者が指定した特定の位置に承認印のイメージを配置する承認印ボタン等がある。
アンドゥボタン44は、直前の編集処理を取り消して、編集後の画像データを編集前の状態に戻すための取り消しボタンであり、リドゥボタン45は、アンドゥボタン44により取り消した編集処理をもう一度やり直して編集後の画像データに戻すためのやり直しボタンである。
表示サムネイルに追加ボタン(以下、単に追加ボタンという)46は、詳細表示エリア38に表示されている表示画像60を指定するためのボタンである。追加ボタン46が選択されると、該選択したときに詳細表示エリア38に表示されている表示画像60が指定され、該指定された表示画像の全体画像における位置と全体画像の画像データとに基づいて、全体画像における該表示画像の位置の画像を縮小した表示サムネイルが生成され、表示&編集履歴サムネイルエリア36に表示される。また、詳細は後述するが、画像データが表わす画像における該指定された表示画像60の位置を示す位置情報が画像ファイルに追加される。なお、以下では、表示画像60の指定を「表示サムネイルの追加」という場合もある。
全体サムネイルエリア34は、全体画像を縮小した全体サムネイル50を表示するためのエリアである。図2及び図3に示す例では、高さ方向に長い長尺状の全体画像を縮小した全体サムネイル50が表示されている。
詳細表示エリア38には、全体画像の一部或いは全体が表示される。表示倍率は、利用者が、上記ツールバー32の倍率変更ボタン群41を操作することにより、画像データが表わす全体画像の一部を拡大して表示したり、一部或いは全体を縮小して表示したりすることができる。また、詳細表示エリア38には、縦方向のスクロールバー38A、横方向のスクロールバー38Bが設けられており、これらスクロールバー38A、38Bを利用者が操作することにより、詳細表示エリア38に表示される画像の位置(表示領域と言い換えても良い)が変更される。
表示&編集履歴サムネイルエリア36は、詳細表示エリア38に表示された表示画像のうち利用者が追加ボタン46を選択して指定した表示画像に対応する表示サムネイルを表示するためのエリアである。なお、画像データを編集した場合に、表示&編集履歴サムネイルエリア36に編集履歴が表示されるよう構成してもよいが、この編集履歴については第2の実施の形態で詳述する。ここで、利用者により追加ボタン46が一度も選択されたことがない状態においては、図2に示すように、表示&編集履歴サムネイルエリア36には、表示サムネイルが1つも表示されないが、利用者により過去に追加ボタン46が選択されたことがある場合には、図3に示すように、表示&編集履歴サムネイルエリア36に、1つ以上の表示サムネイルが表示される。
次に、画像処理プログラムの処理の流れについて説明する。図4は、画像処理プログラムの処理ルーチンの流れを示すフローチャートである。
ステップ100では、画像処理プログラムの実行が開始されると、表示部18に表示画面30を表示する。利用者は、HDD22等に保存されている画像ファイルを指定する。該表示画面30の詳細表示エリア38に、利用者により指定された画像ファイルに含まれる画像データが表わす全体画像の一部又は全体を表示する。詳細表示エリア38に表示される表示領域は、利用者が、スクロールバー38A,38B、及び倍率変更ボタン群41を操作することで変化する。
ステップ102では、表示した画像データに関連付けられた位置情報があるか否かを判断する。この判断は、該画像データの画像ファイルを確認することにより判断する。
図5は、画像ファイルのデータ構造の一例を示す図である。
画像ファイルは、1つの画像データにつき1つ作成されるファイルであって、画像ファイルの汎用的な情報(例えば、画像データが表わす全体画像の幅及び高さを示す情報、解像度を示す情報、ファイルサイズ等)を示す画像情報と、画像データと、を含んで構成される。また、画像ファイルには、利用者が追加ボタン46を選択したときに詳細表示エリア38に表示されている表示画像60に関する情報(以下、表示サムネイル情報)も含まれる。このように、本実施の形態では、画像情報、画像データ、及び表示サムネイル情報を含めて1つの画像ファイルを構成することにより、これら情報を関連付けるようにしている。
表示サムネイル情報には、追加された表示サムネイルの個数(利用者が指定した表示画像60の個数と言い換えても良い)を示す情報と、追加ボタン46により指定された表示画像60の位置を示す位置情報とが含まれる。ただし、表示サムネイルがまだ1つも追加されていない状態では、表示サムネイルの個数は0であり、表示サムネイル情報には何らの位置情報も含まれていない。
なお、ここでは、画像情報及び表示サムネイルの個数の情報が含まれる画像ファイルについて説明するが、あくまで一例であって、画像情報及び表示サムネイルの個数の情報が画像ファイルに含まれていなくても良い。
ところで、詳細表示エリア38のサイズ及び詳細表示エリア38における表示倍率が固定であり変更不能である場合には、表示画像60の幅及び高さは固定となるため、位置情報には、例えば、全体画像の4つの頂点の予め定められた頂点の座標値を(0,0)としたときの表示画像60の4つの頂点のいずれかのうち予め定められた頂点の座標値(X,Y)を示す情報が含まれていればよい。
また、詳細表示エリア38のサイズが可変であったり、本実施の形態のように詳細表示エリア38における表示倍率が変更可能に構成されていたりする場合には、表示画像60の幅及び高さは可変となるため、位置情報には、全体画像の4つの頂点の予め定められた頂点の座標値を(0,0)としたときの表示画像60の4つの頂点のいずれかのうち予め定められた頂点の座標値(X1,Y1)を示す情報と、該頂点に対して対角線上にある他の頂点の座標値(X2,Y2)を示す情報とが含まれる。
なお、表示画像60の幅及び高さが可変か固定かに関わらず、上記2つの頂点の座標値を示す情報を位置情報として含めても良い。
更にまた、全全体画像の4つの頂点の予め定められた頂点の座標値を(0,0)としたときの表示画像60の4つの頂点のいずれかのうち予め定められた頂点の座標値(X,Y)と、表示画像60のサイズ(すなわち幅及び高さ)を示す情報とを、表示画像60の位置情報としてもよい。
そして、本実施の形態では、画像ファイルの表示サムネイル情報に位置情報が含まれており表示サムネイルの個数が0でなければ、ステップ102では肯定判断され、画像ファイルの表示サムネイル情報に位置情報が含まれておらず表示サムネイルの個数が0であれば、否定判断される。なお、表示サムネイル情報に表示サムネイルの個数の情報が含まれていない構成とする場合には、位置情報の有無で判断される。
ステップ102で否定判断された場合には、ステップ104で全体サムネイルを全体サムネイルエリア34に表示する。表示サムネイルは表示されない。従って、図2に示す表示状態となる。
また、ステップ102で肯定判断された場合には、ステップ106に進む。
ステップ106では、全体サムネイル50の、画像ファイルに含まれる位置情報に対応する位置に、枠画像を重畳して全体サムネイルエリア34に表示する。この枠画像は、矩形の枠を表わした画像であって、矩形の枠の内側部分に全体サムネイル50のイメージが視認可能な画像となっている。これにより、全体サムネイル50における、表示画像60に対応する領域の画像が枠画像で囲まれた状態で表示される。本実施の形態では、枠画像を、全体サムネイル50において位置情報に対応する位置に重畳させる予め定められた画像(以下、位置画像ともいう)の一例として用いている。
なお、画像ファイルの表示サムネイル情報に、位置情報が複数含まれている場合には、各々の位置情報に対応する枠画像の各々を全体サムネイル50に重畳する。なお、このとき、複数の枠画像の各々は互いに異なる種類の枠画像となるようにする。例えば、色が互いに異なる枠画像としてもよいし、枠画像(枠線)の太さが異なる枠画像としてもよいし、枠線の線種(例えば、実線、破線、一転鎖線等)が異なる枠画像としてもよい。或いは、枠画像を点滅させて表示させ、点滅間隔を枠画像毎に異ならせたりしてもよい。
ステップ108では、画像ファイルに含まれる位置情報と画像データとに基づいて、全体画像における該位置情報が示す位置の画像を縮小した表示サムネイルを表わす画像データ(以下、全体画像の画像データと区別するため「表示サムネイル画像データ」と呼称する)を生成し、該表示サムネイル画像データが表わす表示サムネイルを、全体サムネイル50に重畳した枠画像と同じ種類の枠画像で囲って表示する。
この結果、図3に示すように、表示画面30の全体サムネイルエリア34に枠画像が重畳された全体サムネイル50が表示され、詳細表示エリア38に表示画像60が表示されると共に、表示&編集履歴サムネイルエリア36に、表示サムネイルが枠画像で囲まれた状態で表示される。図3に示すように、全体サムネイルエリア34に表示された全体サムネイル50には、3つの枠画像52、54、56が重畳されている。そして、表示&編集履歴サムネイルエリア36には、3つの表示サムネイル702、704、706が表示されている。また、表示サムネイル702に対して、枠画像52と同じ種類の枠画像72が表示され、表示サムネイル704に対して、枠画像54と同じ種類の枠画像74が表示され、表示サムネイル706に対して、枠画像56と同じ種類の枠画像76が表示されている。このように、本実施の形態では、全体サムネイルに重畳された枠画像と表示サムネイルの各々とが対応していることを利用者が確認できる表示形態で表示される。
ステップ108の処理後、及びステップ104の処理後は、ステップ110に進む。
ステップ110では、表示サムネイルの追加指定があったか否かを判断する。すなわち、利用者により追加ボタン46が選択された場合には、表示サムネイルの追加指定があったと判断し(肯定判断)、追加ボタン46が選択されなかった場合には、表示サムネイルの追加指定はないと判断する(否定判断)。
ステップ110で否定判断した場合には、ステップ118で、利用者により表示画面30の表示を終了させるための閉じるボタン48が選択されたか否かを判断する。ここで否定判断した場合には、ステップ110に戻り、肯定判断した場合には、表示画面30の表示を終了し、本処理ルーチンを終了する。
また、ステップ110で肯定判断した場合には、ステップ112で、利用者が追加ボタン46を選択したときに詳細表示エリア38に表示されている表示画像の全体画像における位置を示す位置情報を、画像データに関連付ける。具体的には、画像データが含まれる画像ファイルの表示サムネイル情報に、表示画像の位置情報を追加することにより関連付ける。また、更に、表示サムネイル情報に含まれる「表示サムネイルの個数」の情報を1増加させ変更する。
ステップ114では、全体サムネイルの、上記関連付けた位置情報に対応する位置に、枠画像を追加的に重畳して表示する。追加する枠画像は、既に重畳表示されている枠画像とは種類が異なる(色、線種、及び点滅状態のいずれかが異なる等)枠画像となるようにする。
ステップ116では、上記新たに関連付けた位置情報と画像データとに基づいて、全体画像における該関連付けた位置情報が示す位置の画像を縮小した表示サムネイルを表わす表示サムネイル画像データを生成し、該表示サムネイル画像データが表わす表示サムネイルを、全体サムネイル50に重畳した枠画像と同じ種類の枠画像で囲って表示する。既に表示&編集履歴サムネイルエリア36に表示されている表示サムネイルは消さずに、新たに作成した表示サムネイルを追加的に表示するものとする。表示位置は、例えば、図3を例に挙げると、追加ボタン46により追加した時期が早い順(表示画像の指定順)に表示する場合には、表示サムネイル703の下に新たな表示サムネイルを追加して表示するようにしてもよい。また、位置情報のY座標値に従って表示する場合には、全体画像のY方向の先頭位置からY座標値が小さい順に表示サムネイルを並べて表示してもよいし、X座標値に従って表示する場合には、全体画像のX方向の先頭位置からX座標値が小さい順に表示サムネイルを並べて表示してもよい。
ステップ116の処理の後は、ステップ110に戻る。
なお、ここでは、ステップ106の処理の後に、ステップ108の処理を行なう例について説明したが、ステップ106の処理とステップ108の処理を、並列に行なってもよいし、ステップ108の処理を先に行ない、ステップ106の処理を後に行なってもよい。また、ここでは、ステップ114の処理の後に、ステップ116の処理を行なう例について説明したが、ステップ114の処理とステップ116の処理を、並列に行なってもよいし、ステップ116の処理を先に行ない、ステップ114の処理を後に行なってもよい。
また、上記実施の形態では、画像ファイルのデータ構造として図5に示すデータ構造を例に挙げて説明したが、これに限定されるものではない。例えば、図6に示すように、画像ファイルが、画像情報、表示サムネイル情報、及び画像データの他に、表示サムネイル画像データにより構成されていてもよい。すなわち、追加ボタン46が選択され、表示サムネイルを追加表示する際に生成された表示サムネイル画像データを、表示画面30の表示終了と同時に削除するのではなく、画像ファイルに追加して保存しておくのである。
このようなデータ構造を用いる場合には、上記ステップ108においては、表示サムネイル画像データを生成することなく、画像ファイルに含まれる表示サムネイル画像データに基づいて表示サムネイルが表示される。
図5に示すデータ構造では、画像ファイルのデータ量は小さくなるものの、表示の都度、表示サムネイル画像データを生成する必要があるが、図6に示すデータ構造では、一旦表示サムネイル画像データが生成されれば、表示の都度、表示サムネイル画像データを生成する必要がなくなり、表示に要する時間が短くなる。
更にまた、上記実施の形態では、全体サムネイルに重畳された枠画像と表示サムネイルの各々とが対応していることが確認できる表示形態として、全体サムネイルや表示サムネイルに対して同種の枠画像を重畳表示する表示形態を例に挙げて説明したが、これに限定されない。
例えば、全体サムネイルに重畳する位置画像として、位置情報に対応する位置に全体サムネイルの画像が視認できる色つきの半透明な透明画像を重畳し、表示サムネイルに対して、全体サムネイルに重畳した透明画像と同じ色の透明画像を重畳して表示する表示形態としてもよい。また、対応する枠画像及び表示サムネイルの各々の近傍に同じ識別情報を表わす文字画像を表示するようにしてもよい。
また、利用者がマウスカーソルを表示&編集履歴サムネイルエリア36に表示された表示サムネイルのいずれかに合わせてクリックする等して、表示サムネイルを利用者が選択した場合に、該選択された表示サムネイルに対応する位置情報と、該位置情報に関連付けられた画像データ(すなわち全体画像の画像データ)に基づいて、全体画像における該位置情報が示す位置の画像を、詳細表示エリア38に表示するようにしてもよい。
図7は、利用者が表示サムネイルを選択した場合に表示画像を表示させる処理ルーチンのフローチャートである。図7において、ステップ100〜ステップ118までの処理は図4のフローチャートと同様であるため説明を省略する。
ステップ118で否定判断した場合には、ステップ120に進む。ステップ120では、表示サムネイルが利用者により選択されたか否かを判断する。
ステップ120で否定判断した場合には、ステップ118に戻り、ステップ120で肯定判断した場合には、ステップ122に進む。
ステップ122では、選択された表示サムネイルに対応する位置情報(該表示サムネイル画像データを生成するときに用いられ、画像データに関連付けられた位置情報)と、全体画像の画像データとに基づいて、全体画像における該位置情報が示す位置における画像を、詳細表示エリア38に表示する。すなわち、利用者が過去に詳細表示エリア38に表示した位置の画像が、詳細表示エリア38に表示される。
ステップ122の処理後は、ステップ110に戻る。
なお、本実施の形態では、画像データと位置情報とを1つの画像ファイルに含めて構成することにより、画像データと位置情報とを関連付けるようにしたが、これに限定されるものではない。例えば、画像ファイルのファイル名と位置情報とを対応付けて登録したテーブルをHDD等の記憶手段に記憶しておき、表示の際にこのテーブルを参照して全体サムネイルに枠画像を重畳して表示したり、表示サムネイルを表示したりするようにしてもよい。また、表示サムネイル画像データを画像ファイルとは別の記憶領域に記憶して管理する場合には、該記憶領域の情報も該テーブルに登録しておき、これを参照して表示サムネイル画像データを読み出し表示サムネイルの表示に用いるようにしてもよい。また、全体サムネイルを表わす画像データも、表示サムネイル画像データと同様に記憶して管理し表示に用いるようにしてもよい。
[第2の実施の形態]
詳細表示エリア38に何らかの表示画像60が表示されている状態で、編集ボタン群42のいずれかの編集ボタンが選択されると、画像データが編集される。
図8は、編集ボタンが選択されたときに実行される編集処理ルーチンのフローチャートである。編集処理ルーチンも、CPU12が画像処理プログラムを実行することにより実現される機能の1つである。
ステップ200では、編集前後の画像データの各々を関連付けて保存する。具体的には、元の画像ファイル(画像ファイルF1とする)の画像データは編集せずにそのまま保持し、この画像ファイルF1とは別に、編集後の画像データを含む新たな画像ファイル(画像ファイルF2とする)を作成する。そして、画像ファイルF1、F2の各々に、相手画像ファイルの記憶領域を示すアドレス(ファイルパス)の情報を保存することにより、互いを関連付ける。この場合、画像ファイルF1は、編集前の画像データを含む画像ファイルであり、新たに作成された画像ファイルF2は、編集後の画像データを含む画像ファイルとなる。
図9に、本実施の形態に係る画像ファイルのデータ構造の一例を示す。図5に示すデータ構造との違いは、編集前画像ファイルパスと編集後画像ファイルパスの情報を含んで構成されている点である。画像データに対して何らの編集もされない状態では、編集後画像ファイルパス及び編集前画像ファイルパスはNULLであるが、編集が実行されると実際のファイルパス(アドレス)がセットされる。
例えば、上記既存の画像ファイルF1の場合には、編集後の画像ファイルパスに、新たに作成された画像ファイルF2のファイルパスがセットされる。一方、新たに作成された画像ファイルF2の場合には、編集前の画像ファイルパスに、画像ファイルパスF1のファイルパスがセットされる。なお、編集後の画像ファイルの表示サムネイル情報は、編集前の画像ファイルの表示サムネイル情報と同じとする。
何度も編集処理が実行されると、編集処理を実行する度に新たな画像ファイルが作成される。そして、編集前画像ファイルパスと編集後画像ファイルパスとにより、各画像ファイルはその前後の画像ファイルと関連付けられ、図10に示すように、編集順に数珠繋ぎにされる。
ステップ202では、編集後の表示サムネイルの表示サムネイル画像データを作成した後、編集前の表示サムネイルと編集後の表示サムネイルとを並べて表示する。図11は、表示&編集履歴サムネイルエリア36における、表示サムネイルを表示した状態を模式的に示す図である。
図11(A)は、何らの編集処理も行われていない状態における画像データに基づいて表示サムネイルを表示した状態を示す図である。Currentの表題が表示されたタブが付された小画面(以下、単にCurrentタブの小画面と呼称する、他のタブが付された小画面についても同様に呼称)に2つの表示サムネイルが表示されている。図11(A)の表示状態においては、保存されている画像ファイルは1つのみであり、この画像ファイルを前述と同様便宜的に画像ファイルF1と呼称し、該画像ファイルF1に含まれる画像データを画像データd1と呼称する。
この状態から、例えば全体を左に90度回転させる編集を行なった場合、上記ステップ200の処理により新たな画像ファイルが作成される。この画像ファイルF2と呼称し、該画像ファイルF2に含まれる画像データを画像データd2と呼称する。
続いて、上記ステップ202の処理により、編集後の表示サムネイルの表示サムネイル画像データを作成した後、編集前の表示サムネイルと編集後の表示サムネイルとを並べて表示する。例えば、図11(B)に示すように、表示&編集履歴サムネイルエリア36のUndo-1タブの小画面に編集前の画像ファイルF1の画像データd1に基づく各表示サムネイルを表示し、Currentタブの小画面に編集後の画像ファイルF2の画像データd2に基づく各表示サムネイルを表示する。画像ファイルF2の画像データd2に基づく各表示サムネイルは、編集後の画像データd2が表わす全体画像における、位置情報が示す位置の画像を縮小したものである。
また、編集前の画像データが表わす全体画像のうち該画像データの画像ファイルに含まれる位置情報が示す位置の画像を縮小した編集前の表示サムネイルと、編集後の画像データが表わす全体画像のうち編集前の表示サムネイルの位置と同じ位置の画像を縮小した編集後の表示サムネイルとが並んで表示されるように制御する。
この状態から更に編集ボタン群42のいずれかのボタンが選択されて画像データが編集された場合には、上記と同様に、新たな画像ファイルが生成される。この画像ファイルF3と呼称し、該画像ファイルF3に含まれる画像データを画像データd3と呼称する。
そして、編集後の表示サムネイルの表示サムネイル画像データを作成した後、編集前の表示サムネイルと編集後の表示サムネイルとを並べて表示する。例えば、図11(C)に示すように、表示&編集履歴サムネイルエリア36にUndo-2タブの小画面を生成してUndo-1タブの小画面の隣に表示し、該Undo-2タブの小画面に画像ファイルF1の画像データd1に基づく各表示サムネイルを表示し、該Undo-1タブの小画面に画像ファイルF2の画像データd2に基づく各表示サムネイルを表示し、Currentタブの小画面に画像ファイルF3の画像データd3に基づく各表示サムネイルを表示する。これにより、編集順に並んだ状態で表示サムネイルが表示されることになる。
すなわち、本実施の形態では、Currentタブの小画面には、現在の画像データに基づく表示サムネイルが表示され、Undo-nタブの小画面には、現在の画像データを編集する前の画像データに基づく表示サムネイルが表示される。更に、Undo-nのnで表わされる数字が大きくなるほど、編集履歴が古い画像データに基づく表示サムネイルが表示される。
ここで、アンドゥボタン44が選択された場合には、図12(A)に示す処理ルーチンが実行される。ステップ300で、表示サムネイルの表示をRedo側に1つずらす。具体的には、図11(C)の状態から、図11(D)に示すように、Redo-1タブの小画面をCurrentタブの小画面の隣であってUndoタブ側とは逆の側に表示し、Redo-1タブの小画面に画像ファイルF3の画像データd3に基づく表示サムネイルを表示し、Currentタブの小画面に画像ファイルF2の画像データd2に基づく各表示サムネイルを表示し、Undo-1タブの小画面に画像ファイルF1の画像データd1に基づく各表示サムネイルを表示する。なお、Undo-2タブの小画面は消去してもよいし、小画面は残したままで、表示サムネイルの表示のみを消去するようにしてもよい。
更に、リドゥボタン45が選択された場合には、図12(B)に示す処理ルーチンが実行される。ステップ350で、表示サムネイルの表示をUndo側に1つずらす。具体的には、図11(D)の状態から図11(C)の状態に表示を変更する。
なお、上記では説明を省略したが、全体サムネイルエリア34に表示される全体サムネイルは、表示&編集履歴サムネイルエリア36の表示の変更に伴って、Currentタブの小画面に表示する表示サムネイルを表わす表示サムネイル画像データの元となった画像データが表わす全体画像を縮小したものに変更される。
また、第1の実施の形態で説明したように、本実施の形態においても、図13に示すように、各画像ファイルに表示サムネイル画像データを含めるように構成してもよい。
また、編集内容及び編集位置を示す編集情報を画像ファイルに含めることにより、編集情報を画像データに関連付け、編集情報を用いて、編集履歴が把握できるように表示サムネイルの表示を制御するようにしてもよい。図14は、図8に示した処理ルーチンのフローチャートの変形例である。
ステップ200では、編集前後の画像データの各々を関連付けて保存する。ここでの処理は、図8を用いて説明した通りであるため、説明を省略する。
ステップ201では、編集内容と編集位置を示す編集情報を生成し、画像データに関連付ける。生成した編集情報は、画像ファイルに保存することにより画像データに関連付ける。ここで、編集情報の具体例を図15、及び図16を用いて説明する。
図15は、編集情報を含む画像ファイルのデータ構造の一例を示す図である。
そして、図16は、画像データの編集履歴と画像ファイルとの関係の一例を模式的に示した図である。図16に示す例において、各画像ファイルは以下の画像データを含んで構成されている。
・画像ファイルF1:未編集状態の画像データd1を含む画像ファイル
・画像ファイルF2:画像データd1の全体に対して傾き補正を行なって得られた画像データd2を含む画像ファイル
・画像ファイルF3:画像データd2の表示サムネイル2の領域に切り取り編集を行なって得られた画像データd3を含む画像ファイル
そして、各画像ファイルの編集情報には、編集前画像ファイルパスに保存されている画像ファイルの画像データから、当該画像ファイルの画像データに編集したときの編集内容及び編集位置を示す第1の編集情報「アンドゥ」と、当該画像ファイルの画像データから、編集後画像ファイルパスに保存されている画像ファイルの画像データに編集したときの編集内容及び編集位置を示す第2の編集情報「リドゥ」とが保存される。
ここで、図15に示す編集情報は、画像ファイルF2に含まれる編集情報であって、「傾き補正」を示す編集内容情報、及び「全体」を示す編集位置情報からなる第1の編集情報と、「切り取り」を示す編集内容情報、及び「表示サムネイル2の位置」を示す編集位置情報からなる第2の編集情報とを含んで構成されている。
なお、画像ファイルF1及び画像ファイルF2のように、編集前画像ファイルパス及び編集後画像ファイルパスのいずれか一方がNULLの場合には、NULLでないほうの画像ファイルパスに保存されている画像ファイルに対応する編集情報が保存される。
すなわち、図16に示す画像ファイルF1の編集情報は、「傾き補正」を示す編集内容情報と「全体」を示す編集位置情報とからなる第2の編集情報で構成され、第1の編集情報は含まない。また、図16に示す画像ファイルF3の編集情報は、「切り取り」を示す編集内容情報と「表示サムネイル2の位置」を示す編集位置情報とからなる第1の編集情報で構成され、第2の編集情報は含まない。
ステップ202では、編集後の表示サムネイルの表示サムネイル画像データを作成した後、編集前の表示サムネイルと編集後の表示サムネイルとを並べて表示する。本例では、編集位置に応じた表示形態で表示する。
図17に、表示&編集履歴サムネイルエリア36における、編集位置に応じた表示サムネイルの表示例を示す。
まず、図17(A)は、画像データに対して何ら編集が行われていない初期状態における表示サムネイルの表示例である。
ここで、画像全体に対して傾き補正が行われると、各表示サムネイルに対応する位置の画像の各々の傾きが補正されることとなるため、編集後の画像データに基づいて、表示サムネイル情報に含まれる各位置情報が示す位置の各表示サムネイルを表わす表示サムネイル画像データが生成される。そして、編集前後の表示サムネイル画像データに基づいて、図17(B)に示すように、編集前の表示サムネイルと、編集後の全体画像における該編集前の表示サムネイルと同じ位置の画像を縮小した編集後の表示サムネイルとが対応するように並べて表示される。Currentタブの小画面の表示サムネイルが傾き補正後の表示サムネイルであり、Undo-1タブの小画面の表示サムネイルが傾き補正前の表示サムネイルである。
次に、全体画像の一部分に捺印やスタンプなどの特定画像を重畳する編集処理(以下、スタンプ処理)が行われると、該特定画像が重畳された部分だけが編集されることとなるため、編集後の画像データに基づいて、該編集された位置を含む画像の新たな表示サムネイルを表わす表示サムネイル画像データを生成し、図17(C)に示すように、編集前の表示サムネイルと該新たな表示サムネイルとを並べて表示する。Undo-1タブの小画面の表示サムネイルがスタンプ処理前の表示サムネイルであり、Currentタブの小画面の表示サムネイルが、スタンプ処理後の表示サムネイルである。なお、図示されるように、本実施の形態では、スタンプ処理されなかった位置の表示サムネイルも、Currentタブの小画面に表示される。すなわち、本実施の形態では、Currentタブの小画面には、常に画像データに関連付けられた位置情報が示す位置の表示サムネイルが表示されるように制御している。
その後、アンドゥボタン44が選択された場合には、現在の画像データに基づく表示サムネイルが編集後の画像データに基づく表示サムネイルとなるように表示を変更する。すなわち、図17(C)に示すCurrentタブの小画面に表示されている表示サムネイルが、図17(D)に示すように、Redo-1タブの小画面に表示されるように表示を変更する。なお、図17(D)に示すように、Redo-1タブの小画面に表示される表示サムネイルは、スタンプ処理が実行された位置の表示サムネイルだけである。スタンプ処理が実行されなかった位置の表示サムネイルは、そのままCurrentタブの小画面に表示されることとなる。
また、編集内容を表わした編集画像が、編集位置に応じた編集後の表示サムネイルに対応して表示されるように制御するようにしてもよい。
図18は、表示&編集履歴サムネイルエリア36に、編集画像が編集位置に応じた表示サムネイルに対応して表示されるように制御する場合の表示例を示す図である。ここでも、図17を用いて説明した編集と同じ編集が順に実行されるものとして説明する。
図18(A)は、画像データに対して何ら編集が行われていない初期状態における表示サムネイルの表示例である。
ここで、画像全体に対して傾き補正が行われると、各表示サムネイルに対応する位置の画像の各々の傾きが補正されることとなるため、編集後の画像データに基づいて、表示サムネイル情報に含まれる各位置情報が示す位置の各表示サムネイルを表わす表示サムネイル画像データが生成される。そして、編集前後の表示サムネイル画像データに基づいて、図18(B)に示すように、編集前の表示サムネイルと、編集後の全体画像における該編集前の表示サムネイルと同じ位置の画像を縮小した編集後の表示サムネイルとが対応するように並べて表示される。更に、傾き補正を示す編集画像の一例としてのアイコン80を、編集後の表示サムネイルが表示されるCurrentタブのタブ部分(表題部分)に、表示する。タブ部分にアイコン80を表示することにより、画像全体に対して傾き補正という編集が実行されたことが確認できる。
次に、全体画像の一部分にスタンプ処理が行われると、特定画像が重畳された部分だけが編集されることとなるため、編集後の画像データに基づいて、該編集された位置を含む画像の新たな表示サムネイルを表わす表示サムネイル画像データを生成し、図18(C)に示すように、編集前の表示サムネイルと該新たな表示サムネイルとを並べて表示する。更に、スタンプ処理を示す編集画像の一例としてのアイコン82を、編集位置に該当する編集後の表示サムネイルに重畳して表示する。編集後の表示サムネイルに対してアイコン82を重畳表示することにより、該表示サムネイルが示す領域に対してスタンプ処理という編集が実行されたことが確認できる。
その後、アンドゥボタン44が選択された場合には、現在の画像データに基づく表示サムネイルが編集後の画像データに基づく表示サムネイルとなるように表示を変更する。すなわち、図18(C)に示す表示状態から、図18(D)に示す表示状態に変更する。アイコン80、82の表示位置に変更はない。
なお、編集位置が画像全体の場合の編集画像の表示位置は、上記例に限定されるものではなく、例えば、小画面の下に表示されるようにしてもよく、特に限定されない。また、編集位置が画像全体ではなく画像の一部であった場合には、上記例では、該編集位置に対応する表示サムネイルに対して編集画像を重畳させて表示するようにしたが、これに限定されるものではなく、例えば、重畳させずに該表示サムネイルの近傍に表示するようにしてもよい。
ところで、図17に示す例では、図18に示すように、編集内容を表わした編集画像は表示されないため、画像データに関連付けられる編集情報に編集内容を含めなくても良い。
また、第1の実施の形態で説明したように、本例においても、図19に示すように、各画像ファイルに表示サムネイル画像データを含めるように構成してもよい。
また、回転処理等の編集によって、全体サムネイルが横長になった場合には、図20に示すように、全体サムネイルエリア34の配置を変更するようにしてもよい。すなわち、全体サムネイルエリア34、表示&編集履歴サムネイルエリア36、及び詳細表示エリア38の配置は、図2等に示す配置に限定されるものではない。
なお、本実施の形態では、画像データ、位置情報、及び編集情報を1つの画像ファイルに含めて構成することにより、画像データ、位置情報、及び編集情報を関連付けるようにしたが、これに限定されるものではない。例えば、画像ファイルのファイル名、位置情報、及び編集情報を対応付けて登録したテーブルをHDD等の記憶手段に記憶しておき、表示の際にこのテーブルを参照して全体サムネイルに枠画像を重畳して表示したり、編集前後の表示サムネイル並べて表示したりするようにしてもよい。また、表示サムネイル画像データを画像ファイルとは別の記憶領域に記憶して管理する場合には、該記憶領域の情報も該テーブルにファイル名と対応付けて登録しておき、これを参照して表示サムネイルの表示に用いるようにしてもよい。また、全体サムネイルを表わす画像データも、表示サムネイル画像データと同様に記憶して管理するようにしてもよい。
更にまた、編集前後の画像データ同士を関連付けるため、各画像ファイルに編集前画像ファイルパス、及び編集後画像ファイルパスの情報を含めて構成するようにしたが、これに限定されるものではなく、各画像ファイルの記憶領域を示す情報の各々を編集順に対応付けて登録したテーブルをHDD等の記憶手段に記憶しておくことにより、関連付けてもよい。
更にまた、印刷処理を編集処理の1つとして考えてもよい。この場合には、印刷部数やカラー白黒等の印刷条件を編集内容として編集情報に含める。また印刷位置は編集位置として編集情報に含める。該編集情報は画像データに関連付けられる。
更にまた、表示&編集履歴サムネイルエリア36に表示される表示サムネイルのうち、編集画像の一例としての印刷アイコンを、印刷した位置に対応する位置に表示するようにしてもよい。そして、例えば、この表示サムネイルを選択した場合に、登録されている印刷条件に従って該表示サムネイルが示す位置の画像が印刷されるように制御するようにしてもよい。
[その他、様々な実施の形態]
また、上記第1及び第2の実施の形態では、表示画面30として例示したように、ツールバー32、全体サムネイルエリア34、表示&編集履歴サムネイルエリア36、及び詳細表示エリア38を有する表示画面30を例に挙げて説明したが、これに限定されるものではない。
例えば、表示画面30とは別の画面で画像データを編集する毎に、そのときの表示されている表示画像の位置情報と、編集情報と、表示サムネイル画像データとを作成して画像データに関連付けて記憶しておき、後から表示画面30を立ち上げて閲覧するようにしてもよい。
また、上記表示サムネイルの追加指定、表示、及び画像データに対する編集作業の各々が可能な表示画面30に代えて、サムネイルの追加指定、表示、編集の各々を異なる画面で行うようにしてもよい。
ここで、全体サムネイル及び表示サムネイルの様々な表示例を具体的に説明する。
まず、図示は省略するが、追加ボタン46を有し、表示サムネイルの追加指定が可能な指定画面を表示し、予め利用者に表示サムネイルの追加指定を行なわせる。元の画像データと、追加指定された表示画像の位置情報とに基づき、表示サムネイル画像データが生成され、予め定められた記憶領域に記憶(保存)される。表示サムネイル画像データを、画像ファイルに含めて記憶するようにしてもよい。また、全体サムネイル画像データも、表示サムネイル画像データと同様に記憶(保存)し管理する。全体サムネイル及び表示サムネイルの画像データは、画像データ及び位置情報に関連付けられた状態(前述したように、画像ファイルに含める、或いはテーブル管理する)で管理される。以下、全体サムネイル、及び表示サムネイルを区別しない場合には、単にサムネイルと呼称する。
次に、利用者が操作部20を操作して、サムネイルを表示するための画面を表示させるための命令を入力する。これにより、コンピュータ10は、保存された全体サムネイル画像データが表わす全体サムネイルを、例えば、図21に示す表示画面に表示する。図21に示す例では、4つの画像データに対応する4つの全体サムネイルが表示されている。そして、いずれかの全体サムネイルが選択された場合に、新たな表示画面を開いて、該表示画面に該全体サムネイルの元となった画像データに関連付けられた表示サムネイルを並べて表示する(図示省略)。なお、図21では、全体サムネイルに対する枠画像等の位置画像の表示が省略されているが、位置画像を全体サムネイルに重畳して表示するようにしてもよい。
また、全体サムネイルと表示サムネイルとを別々に表示するのではなく、図22等に示すように、それぞれを予め定められた方向にずらした状態で重ねて表示し、該重ねて表示されたサムネイル群に対して利用者の操作部20を操作してマウスカーソル等で指示することで、最上面に配置されるサムネイルを切替えるように表示してもよい。
まず、図22(A)に示すように、各サムネイルが1つ下のサムネイルに対して左斜め上方向にずれた状態で、全体サムネイルと表示サムネイルとを重ねて表示する。なお、初期状態においては、全体サムネイルが最上層となるように表示してもよい。
そして、利用者が操作部20を操作して、マウスカーソル88を該表示されたサムネイル群に載せて指定したときに、サムネイル切り替え用の矢印画像90、92を表示する。タッチパネルディスプレイの場合には、利用者の指先接触により該矢印画像90、92を表示させるようにしてもよい。
利用者がマウスカーソル88を矢印画像90に合わせてクリックすると、最上層のサムネイルが最下層に移動し、クリックする前に最上層だったサムネイルの1つ下のサムネイルを最上層にして利用者が視認可能となるように表示制御する。また、利用者がマウスカーソル88を矢印画像92に合わせてクリックすると、最下層のサムネイルが最上層に移動するように表示制御する。なお、ここでは、クリック操作を例示したが、ホイールやフリック等の操作に応じて上記表示の切り替えが行われるようにしてもよい。
また、図23(A)に示すように、全体サムネイルを最上層にした状態で、画像データ毎のサムネイル群が複数表示されている状態において、いずれか1つのサムネイル群が、マウスカーソルを動かすことにより指定された場合に、図23(B)に示すように、ウィンドウ94がポップアップし、該ウィンドウの予め定められたエリア96に、該指定されたサムネイル群を構成する表示サムネイルを並べて表示するようにしてもよい。また、表示エリアに並べきらないサムネイルがある場合には、エリア95にサムネイル群として重ねて表示する。そして、エリア95のサムネイル群の先頭サムネイルをクリックする等して指定することで、該指定したときに既にエリア96に表示されている1つのサムネイルを、サムネイル群の最下層に重ねて配置されるようにし、該指定したときにサムネイル群の最上層に位置していたサムネイルがエリア96に表示されるように制御する。これにより、ページをめくるようにサムネイルの表示の切り替えが行われる。
更にまた、図23(A)と同様に図24(A)に示す状態から、いずれか1つのサムネイル群が、マウスカーソルを動かすことにより指定された場合に、図24(B)に示すように、表示サムネイルを、表示サムネイルの位置情報が示す位置に対応する位置に配置して表示する。表示サムネイル以外の箇所は表示しない。
以上様々な表示例を説明したが、こうした表示例を第1の実施の形態及び第2の実施の形態で例示した表示画面30の表示&編集履歴サムネイルエリア36での表示に適用してもよい。
また、ここでは、利用者がマウスカーソル等を動かして指定することにより、サムネイルの表示を切替える例について説明したが、予め定められた時間が経過する毎に表示が切り替わるようにしてもよい。
なお、第1及び第2の実施の形態では、利用者が追加ボタン46を選択することにより表示画像を指定して(第1の指定)、表示サムネイルを表示する例について説明したが、これに限定されるものではない。利用者が予め定められた時間以上表示画面30の詳細表示エリア38に同じ位置の表示画像(同じエリアの表示画像)を表示したことをもって、表示画像を指定するようにしてもよい(第2の指定)。
また、利用者が画像データを編集したことをもって、該編集を行なったときに詳細表示エリア38に表示されている表示画像を指定するようにしてもよい(第3の指定)。
また、表示画像の指定を、第1の指定、第2の指定、及び第3の指定のいずれで行なってもよいように構成してもよい。第1の指定、第2の指定、及び第3の指定の少なくとも1つの指定が可能に構成してもよい。また、指定方法を利用者が設定可能に構成してもよい。
更にまた、指定した表示画面の位置情報をテンプレートとして登録しておき、他の画像データ(画像ファイル)に対しても適用可能に構成してもよい。例えば、表示画面30に、テンプレートとして位置情報の登録の指示を行なう位置情報登録ボタンと、登録したテンプレートを指定して使用するためのテンプレート使用ボタンとを設ける。
位置情報登録ボタンが選択され位置情報登録指示を受け付けた場合に、図25に示す処理ルーチンが起動する。
ステップ300では、位置情報登録指示を受け付けた後に、表示サムネイルが指定されたか否かを判定する。ここで肯定判定された場合には、ステップ302で、指定された表示サムネイルの位置情報をテンプレートとして登録する。
次に、利用者が指定した画像ファイルを開いた(例えば、第1及び第2の実施の形態で説明したように、表示画面30に表示した)場合に、図26の処理ルーチンを起動する。
ステップ400では、テンプレート使用ボタンが選択され、テンプレートが指定されたか否かを判定する。ここで肯定判定された場合には、ステップ402で、指定されたテンプレートに基づいて表示する。すなわち、全体サムネイルにおける該指定されたテンプレートが示す位置情報の位置に位置画像を表示すると共に、表示&編集履歴サムネイルエリア36に該位置情報の位置の画像を縮小した表示サムネイルを表示し、該位置情報の位置の画像を詳細表示エリア38に表示する。
また、ステップ400で否定判定した場合には、テンプレートを用いずに画像ファイルの画像データを表示する(例えば図4で示す処理ルーチン参照)。
なお、ここでは、位置情報登録ボタンを選択した後に、表示サムネイルを指定して位置情報をテンプレートとして登録する例について説明したが、これに限定されず。位置情報登録ボタンを選択するだけで、該表示している画像データに関連付けられている位置情報の全てがテンプレートとして登録されるようにしてもよい。
また、ここでは、位置情報をテンプレートとして登録する例について説明したが、画像データに、画像データを印刷したときの印刷条件をテンプレートとして登録するようにしてもよい。印刷条件としては、印刷したエリア、印刷部数、白黒かカラーかの指定等が例として挙げられる。そして、他の画像データを印刷する際に、利用者が登録したテンプレートを指定する。コンピュータ10は、指定されたテンプレートが示す印刷条件に応じて印刷する。なお、テンプレートを利用者単位で登録するようにしてもよい。利用者は、自身が登録したテンプレートの使用は可能であるが、他の利用者が登録したテンプレートは使用不能となるよう構成する。また、利用者同士がテンプレートの共有が可能なように構成してもよい。
更にまた、利用者が指定した表示画像の位置(領域)及び印刷条件の少なくとも一方の履歴を利用者毎に記録しておき、該記録をヒストグラム化して、頻度の高い位置(領域)及び印刷情報の少なくとも一方を、上記テンプレートと同様に使用して、表示或いは印刷するようにしてもよい。なお、ここでは、利用者毎としたが、利用者を分けずに記録してヒストグラム化して用いてもよい。
また、上記各実施の形態では、画像データの全体を表わす全体画像の一例として、画像データが表わす画像全体を縮小した全体サムネイルを例に挙げて説明したが、これに限定されるものではなく、例えば、縮小処理や拡大処理が施されていない、画像データが表わす画像そのものを、画像データの全体を表わす全体画像としてもよい。また、画像データが表わす画像全体を拡大したものであってもよい。