JP4250238B2 - ファイル管理装置、ファイル管理方法および記憶媒体 - Google Patents
ファイル管理装置、ファイル管理方法および記憶媒体 Download PDFInfo
- Publication number
- JP4250238B2 JP4250238B2 JP32095198A JP32095198A JP4250238B2 JP 4250238 B2 JP4250238 B2 JP 4250238B2 JP 32095198 A JP32095198 A JP 32095198A JP 32095198 A JP32095198 A JP 32095198A JP 4250238 B2 JP4250238 B2 JP 4250238B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- image
- information
- footer
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storing Facsimile Image Data (AREA)
Description
【発明の属する技術分野】
本発明は、画像ファイルなどのファイルを管理するファイル管理装置、ファイル管理方法および記憶媒体に関する。
【0002】
【従来の技術】
従来より、画像処理装置において、デジタルカメラ等の外部の画像記憶装置からカラー画像を画像処理装置に読み込み、それら読み込んだ画像をファイルとして保存することが行われてきた。また、それら画像に対して撮影日時やコメントを付加し、画像を表示する際に撮影日時やコメントも同時に表示したり、複数の画像の中から、ある特定の撮影日時情報を持つ画像や、特定のコメントを含む画像を画像検索することが行われてきた。
【0003】
その際、扱うことができる画像は、JPEG形式やEXIF形式等の特定のフォーマット(さらにはこれらの準じたもの)に限定し、それらのフォーマットの画像を取り扱う場合には、その画像ファイルフォーマットで規定されている仕様に従って、撮影日時やコメントを付加し、それらを編集、参照するというのが一般的であった。
【0004】
しかしながら、近年の情報処理機器の普及によって、画像処理装置が扱わなければならない画像ファイルの種類は多様化している。この多様化は種々の問題を引き起こしている。
例えばインターネットでダウンロードしてきたGIF形式の画像ファイルを扱う場合は、コメント付加に関するGIF形式の仕様が、画像ファイルとしては一般的なJPEG形式やEXIF形式と異なるため、コメントを付加する際の処理を別に用意しなければならなかった。
【0005】
また、BMP形式の画像ファイルの場合は、BMP形式は画像ファイルに対して撮影日時やコメントを付加する仕様を有さないため、撮影日時などのコメント情報を付加することを諦めるか、付加情報を管理する別のファイルを用意する必要が有った。しかし、この場合、BMP形式の画像ファイルを複製する場合、付加情報も同時に複製しなければならないなど、複数の画像を管理する上で問題があった。
【0006】
即ち、従来では、全ての画像ファイルフォーマットに共通のコメントなどに関する付加情報についての統一的な仕様が存在しなかった。
一方、異なる画像ファイルフォーマット間での画像ファイル自体の変換法も存在する。従って、標準でないコメント形式を有する画像ファイルを標準的なコメント形式を有する画像ファイルフォーマットに変換することにより、コメント情報のフォーマットを事後に統一化することも考えられないことではない。しかし、このフォーマット変換を行うためには、変換前の画像ファイルの形式がGIF形式やBMP形式であった場合に、それら画像ファイルをJPEG形式やEXIF形式に変換して保存する際に画像情報の一部が失われることがあるため、特定のパターンの画像ファイルでは画像が劣化してしまい、オリジナル画像と変換後の画像が全く異なる画像になってしまう問題があった。即ち、画像ファイルを標準的な画像ファイルフォーマットへの変換を行うことによってコメント情報を統一的に扱えるようにすると、別の問題を引き起こしてしまうのである。
【0007】
以上のように、現存する多様な画像ファイルフォーマットに対して、撮影日時やコメント等の情報を統一的な手段で付加するのは不可能であった。
本発明は、ファイルに対して、サムネイル画像若しくは撮影日時やコメント等の拡張情報を付加するための、ファイルの種類に依存しない統一的な管理方法および装置を提案するものである。
【0008】
本発明の他の目的は、ファイルの種類に依存しないで拡張情報を付加することができるのみならず、既存のオペレーティングシステムのファイル管理と互換性を有するようなファイル管理方法および装置を提案するものである。
【0009】
【課題を解決するための手段】
上記課題を達成するために、請求項1に係るところのファイル管理装置は、
メモリに記憶された画像ファイルを演算処理部が処理することによって管理するファイル管理装置において、
前記画像ファイルに関する拡張情報と、当該拡張情報の先頭位置を指定するポインタ情報とを取得する取得手段と、
前記拡張情報と前記ポインタ情報とが前記画像ファイルの末尾に続くファイルであって、前記ポインタ情報が該ファイルの末尾の位置にあるファイルを前記メモリに登録する登録手段と
を具備することを特徴とする。
【0011】
上記課題は請求項6に記載されたファイル管理方法によっても達成される。このファイル管理方法は、メモリに記憶された画像ファイルを演算処理部が処理することによって管理するファイル管理方法において、
前記画像ファイルに関する拡張情報と、当該拡張情報の先頭位置を指定するポインタ情報とを取得する取得工程と、
前記拡張情報と前記ポインタ情報とが前記画像ファイルの末尾に続くファイルであって、前記ポインタ情報が該ファイルの末尾の位置にあるファイルを前記メモリに登録する登録工程と
を具備する。
【0019】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施形態を詳細にかつ具体的に説明する。
〈ハードウエア構成〉
図1は、本発明が適用された情報処理装置、即ち、パソコンやワークステーションの構成を示すブロック図である。同図において、1は中央演算処理装置(CPU)であり、2は読み出し専用メモリ(ROM)であり、3は読み書き可能なメモリ(RAM)であり、4は外部に増設された読み出し専用メモリ(外部ROM)であり、5はキーボード制御装置(KBC)であり、6はキーボード(KB)であり、7は表示制御装置(CRTC)であり、8は表示装置(CRT)であり、9は周辺装置制御装置(PKC)であり、10は外部記憶装置(FDおよびHD)であり、11はリアルタイムクロック(RTC)であり、12はそれら装置間のデータの送受信を行うためのシステムバスである。
【0020】
本情報処理装置のプログラムは、ROM2あるいはRAM3上に存在する。CPU1は、システムバス12を通じてプログラムをROM2あるいはRAM3から逐次読み出しつつ、目的の処理を行う。
〈ファイル管理の概要〉
本発明が適用された図1のパソコンシステムにおける画像ファイルの管理の概要を説明する。
【0021】
図2は、このパソコンシステムのソフト構成を示す。即ち、本システムでは、・サムネイル画像付加機能
・サムネイル画像参照
・撮影日時参照機能
・コメント修正機能
・コメント参照機能など
が用意されている。これらの機能はオペレーティングシステム(例えば、WINDOWSやMACシステムなどのオペレーティングシステム)に付加される。即ち、図2において、拡張機能モジュールは、オペレーティングシステムに組み込まれると、オペレーティングシステムのディレクトリ参照機能に上記機能を付加すべく、例えば、コメントを参照するか否かを問うダイアログ、コメントを修正するか否かを問うダイアログや、サムネイル画像を付加するか否かを問うダイアログや、サムネイル画像を参照するか否かを問うダイアログや、撮影日時を参照するか否かを問うダイアログ等を表示し、これらのダイアログを解して入力されたユーザ応答を後述の制御手順に従って処理することができる。
【0022】
尚、この拡張モジュールは、当初からオペレーティングシステムに組み込まれていても良いし、または、フロッピディスクなどの記憶媒体に記憶しておき、このディスクを解して新たにインストールしても良い。
尚、この拡張機能が一旦インストールされると、任意のアプリケーションプログラムは、上記機能を実行するためのシステムコールを生成することが許され、そのようなシステムコールが発行されると、オペレーティングシステムと拡張機能モジュールがそのシステムコールを実行する。
【0023】
図3は、上記拡張機能によって実演される上記機能の概略を示す。
図中、オリジナル画像ファイルは、通常の例えばBMP形式やJPG形式等の公知の画像ファイルである。本拡張機能は、このような画像ファイルに、フッタブロックを付加する(フッタブロックを付加された画像ファイルを「フッタ付き画像ファイル」と呼ぶ)。上記機能は、フッタブロックが付加された画像ファイルに対して実現可能となる。即ち、フッタ付き画像ファイルに対して、サムネイル画像が付加され、あるいは、または、更に、コメントが付加される。付加されたサムネイル画像やコメントは、参照され、あるいは修正可能となる。
【0024】
図4は、フッタ付き画像ファイルの構造を説明する。即ち、フッタ付き画像ファイルは2つのブロックからなり、これらのブロックは、
・オリジナル画像ブロック(Bo)、
・フッタブロック(Bf)
である。記憶装置中のフッタ付き画像ファイルの先頭アドレスと大きさは、当該の画像ファイルのディレクトリによって与えられる。
【0025】
フッタ付き画像ファイルにサムネイル画像が付加されると、そのサムネイル画像は、図5に示すように、「サムネイル画像ブロックBt 」に含まれ、このサムネイル画像ブロックBtが上記オリジナル画像ブロックBoとフッタブロックBfとの間に付加される。
サムネイル画像ブロックBt は、オリジナル画像に依存するので、その大きさは可変であり、フッタブロックBfは、後述するように可変長のコメントフィールドを含むので、その大きさは可変である。
【0026】
図6にフッタブロックBfの構成を示す。即ち、フッタブロックBfは、
・IDフィールドFi(4バイト): 当該フッタブロックの識別子を格納。フッタブロックについては“DSIM”が格納される。
・コメントフィールドオフセットFc(4バイト): コメントフィールドまでのオフセット量(バイト数)
・画像生成日時フィールドFd: オリジナル画像を生成した日時
・オリジナル画像水平方向画素数FW(2バイト)
・オリジナル画像垂直方向画素数Fh(2バイト)
・オリジナル画像解像度Fr(2バイト): オリジナル画像の解像度dpi値
・サムネイル画像フィールドFt: 詳細は図9に示される
・フッタ先頭へのオフセットFe
フィールドFeは、当該画像ファイルの先頭(即ち、オリジナル画像ブロックBoの先頭)から当該画像ファイルのフッタブロックBfまでのオフセット量(バイト)を格納する。即ち、オリジナル画像ブロックBoの先頭および大きさはシステムディレクトリのTOPとSIZEから知ることができるので、オフセット量Feは、アドレスTOP + SIZEに記憶されている値となる。従って、TOPに、TOP + SIZEから読み出した値Feを加えた値、
TOP + Fe
のバイト位置が、図5に示すように、フッタブロックの先頭位置を示す。
【0027】
画像生成日時フィールドFdの形式を図8に示す。本フィールドは、その画像が生成された日時を西暦2バイト、月1バイト、日1バイト、時1バイト、分1バイト、秒1バイト、1/100秒1バイトの順に格納する領域である。
サムネイル画像フィールドの構成を図9に示す。図9において、
・種類Tt(4バイト): サムネイル画像の種類が格納される。サムネイル画像のデータ形式にしたがって、"JPG"や"TIF"や"BMP"のような一般的な画像ファイルに用いられる3文字の拡張子を収め、余った1バイトには0を格納する。
・サムネイル画像水平方向画素数TW(2バイト)
・サムネイル画像垂直方向画素数Th(2バイト)
・サムネイル画像ブロックのオフセットTb(4バイト)
である。サムネイル画像ブロックのオフセットTbは、図5に示すように、当該画像ブロックの先頭から、当該サムネイル画像ブロックBtまでのオフセット量を格納する。このサムネイル画像フィールドも図9に示すように、その先頭位置は、そのフィールドの末尾に書き込まれたオフセット量によって示されている。即ち、サムネイル画像フィールドの先頭位置は、コメントブロックの先頭位置の指定と同じように、末尾に格納されたオフセット量Tbによって示される。
【0028】
図7は、サムネイル画像フィールドとコメントフィールドを有した場合のフッタブロックの構成を示す。図6に示したフッタブロックと図7のフッタブロックとの相違は、コメントフィールドFsが、サムネイル画像フィールドFtとオフセットFeとの間に挿入されていることである。
コメントフィールドの構成を図10に示す。コメントフィールドは、
・Cb(2バイト): コメントの文字列のバイト数
・Cs(可変長): コメントの文字列
からなる。
【0029】
サムネイル画像フィールドFtは、図9に示したように固定長であり、且つ図7に示すように、フッタブロック中で、IDフィールドFiからサムネイル画像フィールドFtまでの項目は全て固定長であるので、サムネイル画像フィールドFtを参照することはできるから、サムネイル画像フィールドFtへのオフセット量をフッタブロック中に記憶させる必要はない。一方、コメントフィールドFsは可変長のデータを含むので、コメントフィールドFsへのオフセット量をコメントフィールドオフセットFcとして記憶させる。
【0030】
尚、オリジナル画像ブロックBoは可変長であるので、サムネイル画像ブロックBtの位置の可変であるので、サムネイル画像ブロックBtへのオフセット量をサムネイル画像フィールド(図9)のサムネイル画像ブロックのオフセットTbとして記憶する。
〈諸機能の説明〉
図12乃至図18は、本発明を適用した画像ファイル管理機能モジュールの上記諸機能を実現する制御手順のフローチャートを示している。これらのフローチャートを使用して、画像ファイル管理機能モジュールを付加された図1のパソコンシステム装置の動作を以下順をおって説明する。
【0031】
〈フッタブロック情報の付加〉
最初に、オリジナル画像ファイルにフッタブロック情報を付加する処理について図12のフローチャートを用いて説明する。
先ずステップS101では、オリジナル画像を指定しファイルをオープンする。オリジナル画像の指定は、図2で説明したように、ユーザがその画像ファイルを指定しても良いし、アプリケーションプログラムからシステムコールを介して指定しても良い。次にステップS102ではフッタブロックをオリジナル画像ファイルに付加する処理を行う。ステップS102の処理の詳細は図13を参照して説明されるであろう。次にステップS103では、ファイルをクローズし画像ファイルを保存する。
【0032】
以上一連の処理によって、オリジナル画像ファイルをフッタ付きの画像ファイルに変換する。尚、ユーザが指定した画像ファイルやアプリケーションプログラムが指定した画像ファイルにフッタが既に付加されていた場合には、図12の制御手順は実行されない。
フッタ付き画像ファイルは、図4で説明したように、オリジナル画像ブロックB0と、このブロックB0に続くフッタブロックBfとからなる。オリジナル画像ブロックB0にはステップS101において指定されたオリジナル画像がそのまま格納される。
【0033】
図13は、ステップS102の処理、即ち、フッタブロックの初期生成処理をより細かく説明するフローチャートである。この初期生成処理では、先ずステップS201において、フッタブロックの情報を一時格納するためのワーク領域をフッタブロックの大きさ分だけRAM3上に確保する。図6又は図7に示されたフッタブロックのIDフィールドFiは、フッタブロックの先頭を表す4バイトの固有の文字列“DSIM”を格納する。換言すれば、IDフィールドが“DSIM”であるようなブロックはフッタブロックである。
【0034】
図19を参照しながら、ステップS201でフッタブロックのサイズ分のワークを獲得後、ステップS202では、獲得したワーク上のフィールドFiに文字列“DSIM”をセットする。次に、ステップS203では、コメントフィールドのオフセットFcを“0”で初期化する。次にステップS204では、オリジナル画像から撮影日時情報を取得する。オリジナル画像がEXIF形式やCIFF形式のように、撮影日時情報の格納位置が特定可能なファイル形式である場合には、各々の形式に従って、撮影日時情報格納領域から撮影日時情報を取得する。また、オリジナル画像が一般的なJPEG形式や、BMP形式のように撮影日時情報の格納位置が不明であったり、撮影日時情報そのものが格納されていない場合は、オリジナルファイルの生成日時を撮影日時情報として取得する。これらの情報の取得は従来から行われている既知の手法により行う。
【0035】
次に、ステップS205ではステップS204において取得した撮影日時情報を画像生成日時フィールドFdの形式に変換する。変換前の日時情報から、画像生成日時フィールドFdの年Dy、月Dm、日Dd、時間Dh、分Dt、秒Ds、1/100秒Dbのうち何れかの情報が生成できない場合は、生成できなかった情報に0をセットする。
【0036】
次に、ステップS206ではオリジナル画像から水平方向画素数を取得し、それをRAM3上のフッタブロックのFwにセットする。次にステップS207では、オリジナル画像から垂直方向画素数を取得し、それをフッタブロックのFhにセットする。次にステップS208では、オリジナル画像から画像の解像度を取得して、それをdpi値に変換後フッタブロックのFrにセットする。オリジナル画像の水平方向画素数情報、垂直方向画素数情報、および解像度情報が格納されている位置は、オリジナル画像のファイル形式により異なるため、各々のオリジナル画像ファイル形式の仕様に従って各情報を取得する。
【0037】
次にステップS209では、サムネイル画像フィールドFtをすべて0で初期化する。次にステップS210では、当該画像ファイル(即ち、オリジナル画像ブロックBo)の先頭から、このフッタブロックの先頭へのオフセット値Feとしてオリジナル画像ファイルのサイズ(=SIZE)をセットする。
次にステップS211では、RAM3のワーク上のフッタブロック情報(図19)を、図4にしめすように、オリジナル画像ファイルBoの末尾に付加する。
【0038】
以上の一連の処理によって、オリジナル画像ファイルを図6,図7に示すフッタブロック付きの画像ファイルに変換することができる。
図13のステップS210でオフセット値Feとしてオリジナル画像ファイルのサイズ(=SIZE)をセットすることにより、サムネイル画像などが付加されていないフッタ付き画像ファイルについてのフッタブロックが図20に示すように生成される。この画像ファイルのフッタブロックは、図20に示すように、オリジナル画像ブロックBoの後に続くので、Feの値=オリジナル画像のSIZEとすることで、このフッタブロックはFeを参照することにより容易に参照可能となる。
【0039】
尚、オリジナル画像とフッタブロック付きの画像ファイルは同一のファイル名として処理する。
また、図13の制御手順はフッタブロックを初めて付加するものであるから、この制御手順が処理する対象の画像ファイルにはサムネイル画像ブロック(さらにはコメントフィールド)が付加されていない。従って、図13の制御手順では、サムネイル画像に関するTt、TW、Th、Tbには全てに0を格納する。また、図13の制御手順では、図7に示されたコメントフィールドFsは生成されない。
【0040】
〈サムネイル画像の付加〉
次にフッタ付き画像ファイルにサムネイル画像を付加する処理について図14を参照して説明する。図13のフローチャートに示された制御手順は、特定のフッタ付き画像ファイル(例えば図13の制御手順で生成されたフッタ付き画像ファイル)に対して、ユーザ若しくはアプリケーションプログラムがサムネイル画像の付加指示を行うことから始まる。
【0041】
先ず、ステップS301では、指定されたフッタ付き画像ファイルをオープンする。次にステップS302では、この画像ファイルのディレクトリのSIZE情報に基づいて、この画像ファイルのフッタブロックのオフセットフィールドFeをRAM3上のワーク領域に取得する。オフセットFeは、フッタブロックの先頭へのオフセットである。
【0042】
次にステップS303では取得したFeの値とファイルサイズSIZEを比較する。図4又は図5から明らかなように、Fe<SIZEでなくてはならない。従って、Fe<SIZEでない場合はステップS314に進んでファイルをクローズしエラー終了する。またFe<SIZEである場合はステップS304に進む。
次にステップS304では、ファイルの先頭からのオフセット量がFeである位置から始まるのはフッタブロックであるか否かを確認するために、その位置での4バイトの文字列が“DSIM”あるか否かを調べ(図21を参照)、一致しない場合はステップS314に進んでファイルをクローズしエラー終了し、一致した場合はステップS305に進んで処理を継続する。
【0043】
次にステップS305ではサムネイル画像をRAM3上に生成する。即ち、サムネイル画像をオリジナル画像から生成するために、フッタ付き画像ファイルの先頭からオリジナル画像を取り出し、それを元にサムネイル画像をRAM3上に生成する。オリジナル画像はフッタ付き画像ファイルの先頭から格納されているので、通常の画像ファイルと同じ処理で画像ファイルを読み出し、読み出した画像データを既知の方法によってサイズ変更してサムネイル画像データを生成すれば良い。尚、生成するサムネイル画像データの形式はRGB24ビットの非圧縮TIFF形式とする。
【0044】
サムネイル画像データの詳細なデータ形式を図11に示す。同図に示すように、サムネイル画像データは固定長のTIFFヘッダの後ろに1つのIFDを配置する。このIFDは固定長であり、その中に順に、
・水平方向画素数ImageWidth、
・垂直方向画素数ImageLength、
・ResolutionUnit
で終わるTIFFの仕様に準拠した12個のタグを宣言する。また、IFDは1つのみであるので、ResolutionUnitの次に、この後にはIFDが存在しなことを表す0を格納する。更にIFDに続いてBitsPerSampleの値として8を格納したWORD型の領域を3つと, XResolutiont, YResolutionとしてRATIONAL型の値72を格納する固定長の2つの領域を設ける。続いて、サムネイル画像のRGBデータを点順次で格納する。RGB画像データは非圧縮であり、そのサイズは ImageWidthの値×ImageLengthの値×3バイトである。
【0045】
以上の構造から分かるように、サムネイル画像データ全体の大きさはサムネイル画像の水平方向画素数および垂直方向画素数から容易に求めることができる。次にステップS306では、フッタブロック全体をディスクからRAM3のワーク上に読み込む。尚、フッタブロックのファイル中の位置はステップS302において取得済みであり、フッタブロックの正当性はステップS303およびステップS304において確認済みであるため、ここでは無条件にフッタブロックの先頭からファイルの末尾までをRAM3上のワークに読み込めば良い。
【0046】
次に、ステップS307では、ステップS305において生成したサムネイル画像データを、フッタ付き画像ファイルのフッタブロックの先頭(即ち、フィールドFiの位置)の位置から、サムネイル画像データのバイト数分だけ上書きする。これにより、ファイル上のフッタブロックの情報が破壊されてしまうが、フッタブロックの情報はステップS306においてRAM3上のワークに読み込んであるので問題ない。
【0047】
ステップS308乃至ステップS312は、フッタブロックの更新(即ち、サムネイル画像フィールドFt内の種々のフィールドの更新)をRAM3上で行うものである。即ち、サムネイル画像の種類フィールドTtに、ステップS305において生成したサムネイル画像のデータ形式を表す3文字の拡張子と0を格納する。具体的にはステップS305において生成したサムネイル画像データ形式がRGB24ビットの非圧縮TIFF形式であるので、"TIF"という3文字と0を格納する。次にステップS309では、RAM3上で、サムネイル画像の水平方向画素数TWに、ステップS305において生成したサムネイル画像の水平方向画素数を格納する。次にステップS310では、RAM3上で、サムネイル画像の垂直方向画素数Thに、ステップS305において生成したサムネイル画像の垂直方向画素数を格納する。次にステップS311では、RAM3上のワークに読み込んであるフッタブロックのサムネイル画像フィールドFt内のサムネイル画像ブロックのオフセットTbに、フッタ付き画像ファイルの先頭からサムネイル画像ブロックの先頭までのオフセット値を格納する。具体的には、ステップS307においてフッタブロックの先頭からサムネイル画像データを上書きしていることから、TbにはRAM3上に読み込んであるフッタブロックのフッタ先頭へのオフセットFeの値と同じ値を格納すれば良い。
【0048】
次にステップS312では、RAM3上に読み込んであるフッタブロックのフッタ先頭へのオフセットFeの値にステップS305において生成したサムネイル画像データのバイト数を加え、それを新たにRAM3上のFeに格納する。サムネイル画像データのバイト数を便宜的にyyyとし、更新前のRAM3上のFeの値をxxxとすると、更新されたFeの値は、
xxx + yyy
である。
かくして、ワークRAM上でフッタブロックの内容が、フッタブロックがサムネイル画像を有するものとして更新された。次にステップS313では、RAM3上のワークにあるフッタブロックのデータ全体を、フッタ付き画像ファイルのサムネイル画像ブロックの直後の位置から書き込む。
【0049】
尚、ステップS307においてサムネイル画像データを書き込んだ後、ディスク中のフッタ付き画像ファイルへの書込みは行っていないので、通常オペレーティングシステムが提供するファイル書込み処理を実行すれば、ステップS313のおけるフッタブロックの書込みは、S307において書き込んだサムネイル画像データの直後からなされることになる。
【0050】
次にステップS314において画像ファイルをクローズして処理を終了する。このクローズ処理は通常のオペレーティングシステムの提供する機能により、SIZEの値は、サムネイル画像が付加された分だけ更新される。
以上の一連の処理によって、図4に示すフッタ付き画像ファイルを図5に示すサムネイル画像ブロックを含んだフッタブロック付きの画像ファイルに変換することができる。尚、変換前と変換後の画像ファイルは同一のファイル名として処理する。
【0051】
〈サムネイル画像の参照〉
次にフッタ付き画像ファイルのサムネイル画像を参照する処理について図15を参照して説明する。図15のフローチャートは、特定のフッタ付き画像ファイルに対して、サムネイル画像の参照を指示することから始まる。
先ず、ステップS401では、指定されたフッタ付き画像ファイルをオープンする。次にステップS402では、このフッタ付き画像ファイルの末尾4バイトのFe(フッタ先頭へのオフセット)をRAM3上のワークに取得する。具体的にはS401で指定されたファイルのファイルサイズSIZEを取得後、ファイルの先頭からのオフセットSの位置から4バイトを読み込めば良い。
【0052】
次にステップS403では取得したFeの値とファイルサイズSIZEを比較し、Fe<SIZEでない場合はステップS416に進んでファイルをクローズしエラー終了する。またFe<SIZEである場合は、ステップS404に進む。
次にステップS404では、ファイルの先頭からのオフセット量がFeに等しい位置から4バイトをRAM3上のワークに取得し、その4バイトが“DSIM”という文字列であるか否かを調べ、一致しない場合はステップS416に進んでファイルをクローズしエラー終了し、一致した場合はステップS405に進んで処理を継続する。
【0053】
次にステップS405では、画像ファイル中のフッタブロック内のサムネイル画像ブロックのオフセット量TbをRAM3上に読み込む。このオフセット量Tbにより、プログラムはサムネイル画像ブロック内の任意の情報を知ることができる。
即ち、ステップS406では、このサムネイル画像の種類TtをRAM3上に読み込む。ステップS407では、Ttが"TIF"か否かを調べ、一致していなければステップS416へ進みファイルをクローズしエラー終了する。また一致した場合は、ステップS408に処理を進める。
【0054】
ステップS408では、画像ファイルの先頭からのオフセット量Tbに基づいて、このサムネイル画像ブロックのTIFFヘダーとIFDお呼びその値(value)をRAM3上のワークに読み込む。即ち、図11の、サムネイル画像ブロックのTIFFヘッダとIFDの部分およびその値(即ち、BitPerSample、XResolution、YResolutionの値)をRAM3上のワークに読み込む。ここで、サムネイル画像ブロックのTIFFヘッダとIFDおよびその値は固定長なのでそのバイト数分だけ読み込めば良い。
【0055】
次にステップS409では、ステップS408において得られたIFDの中の2つのタグ(ImageWidthとImageLength)からImageWidth×ImageLength×3バイトの計算式にに従って、読み込むべきバイト数を求め、サムネイル画像のRGBデータをRAM3上のワークに読み込む。尚、読み込む際の読込開始位置は、ステップS408においてオペレーティングシステムが提供するファイル読込処理を実行すれば、自動的にRGBデータの先頭になっている。
【0056】
次にステップS410において画像ファイルをクローズして処理を終了する。
図22に上記処理手順の概略を図示する。
以上の一連の処理によって、図5に示すサムネイル画像ブロックを含んだフッタブロック付きの画像ファイル中のサムネイル画像を参照することができる。
〈撮影日時の参照〉
次にフッタ付き画像ファイルの撮影日時を参照する処理について説明する。
【0057】
図16のフローチャートは、特定のフッタ付き画像ファイルに対して、撮影日時の参照を指示することから始まる。
先ず、ステップS501では、指定されたフッタ付き画像ファイルをオープンする。次にステップS502では、ファイルの末尾4バイトのフッタ先頭へのオフセットFeをRAM3上のワークに取得する。具体的にはS501で指定されたファイルのファイルサイズSIZEを取得後、ファイルの先頭からのオフセットSの位置から4バイトを読み込めば良い。
【0058】
次にステップS503では取得したFeの値とファイルサイズSIZEを比較し、Fe<SIZEでない場合はステップS507に進んでファイルをクローズしエラー終了する。またFe<SIZEである場合は、ステップS504に進む。
次にステップS504では、ファイルの先頭からのオフセット量がFeである位置からの4バイトをRAM3上のワークに取得し、その4バイトが“DSIM”という文字列であるか否かを調べ、一致しない場合はステップS507に進んでファイルをクローズしエラー終了し、一致した場合はステップS505に進んで処理を継続する。
【0059】
次にステップS505では、フッタブロック中の画像生成日時フィールドFdをRAM3上のワークに取得する。
次にステップS506において画像ファイルをクローズして処理を終了する。
以上の一連の処理によって、フッタブロック付きの画像ファイルの撮影日時を参照することができる。
【0060】
〈コメントの修正〉
次にフッタ付き画像ファイルのコメントを修正する処理について説明する。図17のフローチャートは、ユーザが若しくはアプリケーションプログラムが、既存のコメントに修正を加えるために、あるいは、初めてのコメントを追加するために、特定のフッタ付き画像ファイルに対して、コメントの修正を指示することと共に、コメントデータなどを渡すことによって起動される。
【0061】
先ず、ステップS601では、指定されたフッタ付き画像ファイルをオープンする。次にステップS602では、ファイルの末尾4バイトのフッタ先頭へのオフセットFeをRAM3上のワークに取得する。具体的にはS601で指定されたファイルのファイルサイズSIZEを取得後、ファイルの先頭からのオフセットSの位置から4バイトを読み込めば良い。
【0062】
次にステップS603では取得したFeの値とファイルサイズSIZEを比較し、Fe<SIZEでない場合はステップS619に進んでファイルをクローズしエラー終了する。またFe<SIZEである場合は、ステップS604に進む。
次にステップS604では、ファイルの先頭からのオフセットがFeの値である位置から4バイトをRAM3上のワークに取得し、その4バイトが“DSIM”というフッタブロックの先頭を表す固有の文字列であるか否かを調べ、一致しない場合はステップS619に進んでファイルをクローズしエラー終了し、一致した場合はステップS605に進んで処理を継続する。
【0063】
次にステップS605では、フッタブロック全体をRAM3のワーク上に読み込む。これにより、コメントブロック全体がRAM3上に複写される。尚、フッタブロックのファイル中の位置はステップS602において取得済みであり、フッタブロックの正当性はステップS603およびステップS604において確認済みであるため、ここでは無条件にフッタブロックの先頭からファイルの末尾までをRAM3上のワークに読み込めば良い。
【0064】
次にステップS606では、フッタ付き画像ファイルの末尾からフッタブロック全体を消去する。
次にステップS607では、コメントの有無を指定する。この指定は、前述したように、ユーザがあるいはアプリケーションプログラムが指定し、コメントの有無の指定は本ファイル管理モジュールに渡されている。コメントを有りとする場合はステップS608に処理を進め、コメントなしとする場合はステップS614に処理を進める。
【0065】
コメント有りが指定された場合、ステップS608ではステップS605においてRAM3上に予め読み込んでおいたフッタブロックのフィールドFcに、図23に示すように、フッタブロックの先頭(即ちFi)からコメントフィールドの先頭(即ち、Fs)へのオフセット量を表す値を格納する。図7に示すように、フッタブロック内のFi、Fc、Fd、Fw、Fh、Fr、Ftは全て固定長であることから、Fcにセットする値はFi、Fc、Fd、Fw、Fh、Fr、Ftのすべてのバイト数を加えた値である。
【0066】
次にステップS609では、ステップS606においてフッタブロックが消去されていた画像ファイルの末尾に付け加えるようにして、Fi、Fc、Fd、Fw、Fh、Fr、Ftの順に値を書き込む。尚、通常オペレーティングシステムが提供するファイル書込み処理を実行すれば、自動的にファイルの末尾に付け加えるように値が書き込まれる。
【0067】
次にステップS610では、コメントとして入力する文字列のバイト数を指定し、それをRAM3上の独立したワークCbに格納する。尚、RAM3上のワークCbのバイト数は、コメントフィールドFsのCbのバイト数に同じである。
次にステップS611では、コメントとして入力する文字列の文字コードを入力し、それらをRAM3上の独立したワークCsに格納する。RAM3上のワークCsのバイト数は、ステップS610においてCbに格納するバイト数である。
【0068】
次に、ステップS612では、ステップS610およびステップS611において値を格納したRAM3上のワークCbとCsを、Cb、Csの順で画像ファイルの末尾に付け加えるように書き込む。
次にステップS613では、RAM3上のワークに読み込んであるフッタブロックのフッタ先頭へのオフセットFeの値に、ステップS610で指定したコメント文字列のバイト数Cbの値およびCb自体のバイト数を加えた値を格納する。
【0069】
次にステップS617では、ステップS613において値を格納したFeを、画像ファイルの末尾に付け加えるように書き込む。次にステップS618において画像ファイルをクローズして処理を終了する。
以上の一連の処理によって、フッタブロック付きの画像ファイルにコメントを付加(あるいは修正)することができる。
【0070】
また、ステップS607において、コメントなしを指定してステップS614に処理を進めた場合は、ステップS605においてRAM3上に予め読み込んでおいたフッタブロックのフッタ先頭へのオフセットFeの値から、コメント文字列のバイト数Cbの値およびCb自体のバイト数を引いた値を、Feに格納する。次にステップS615では、RAM3上のフッタブロックのコメントフィールドオフセットFcに0を格納する。次にステップS616では、ステップS606においてフッタブロックを消去した画像ファイルの末尾に付け加えるようにFi、Fc、Fd、Fw、Fh、Fr、Ftの順に値を書き込む。尚、通常オペレーティングシステムが提供するファイル書込み処理を実行すれば、自動的にファイルの末尾に付け加える用に値が書き込まれる。
【0071】
次にステップS617では、ステップS614において値を格納したFeを、画像ファイルの末尾に付け加えるように書き込む。
次にステップS618において画像ファイルをクローズして処理を終了する。
以上の一連の処理によって、フッタブロック付きの画像ファイルのコメントを削除することができる。
【0072】
〈コメントの参照〉
次にフッタ付き画像ファイルのコメントを参照する処理について図18を参照して説明する。図18のフローチャートは、特定のフッタ付き画像ファイルに対して、コメントの参照を指示することから始まる。
先ず、ステップS701では、指定されたフッタ付き画像ファイルをオープンする。次にステップS702では、ファイルの末尾4バイトのフッタ先頭へのオフセットFeをRAM3上のワークに取得する。具体的にはS701で指定されたファイルのファイルサイズSIZEを取得後、ファイルの先頭からのオフセットSの位置から4バイトを読み込めば良い。
【0073】
次にステップS703では取得したFeの値とファイルサイズSIZEを比較し、Fe<SIZEでない場合はステップS710に進んでファイルをクローズしエラー終了する。またFe<SIZEである場合は、ステップS704に進む。次にステップS704では、オフセットFeの値によりFiから4バイトデータをRAM3上のワークに取得し、その4バイトが“DSIM”という固有の文字列であるか否かを調べ、一致しない場合はステップS710に進んでファイルをクローズしエラー終了し、一致した場合はステップS705に進んで処理を継続する。
【0074】
次にステップS705では、フッタブロックのコメントフィールドオフセットFcが0か否かを調べ、0である場合はステップS708へ進んでRAM3上のコメントを取得するためのバッファを0でクリアし、ステップS709へ処理を進める。また、Fcが0ではなかった場合は、ステップS706へ処理を進めて、フッタブロックのFcの値を、フッタブロックのコメントフィールドFs位置として取得して、ステップS707において、コメントフィールドFsのCbおよびCsを参照して、Cbに格納されているバイト数分だけCsからRAM3上のバッファに文字コードを転送し、ステップS709へ処理を進める。次にステップS709では画像ファイルをクローズして処理を終了する。
【0075】
以上の一連の処理によって、フッタブロック付きの画像ファイルのコメントを参照することができる。
以上、制御手順が示す一連の処理によって、画像ファイルの末尾にサムネイル画像や日時およびコメントを追加したり、編集、参照することが可能となる。また、これらの追加、、編集、参照は画像ファイルの形式に拘束されない。
【0076】
【発明の効果】
以上記述したように本発明により、ファイルに対して、例えばサムネイル画像若しくは撮影日時やコメント等の拡張情報を付加するための、ファイルの種類に依存しない統一的な管理方法および装置を提供することができた。
また、本発明によれば、ファイルの種類に依存しないで拡張情報を付加することができるのみならず、既存のオペレーティングシステムのファイル管理と互換性を有するようなファイル管理方法および装置を提供することができた。
【図面の簡単な説明】
【図1】 本発明を適用し得る装置の全体図である。
【図2】 本発明のファイル管理モジュールとオペレーティングシステムとアプリケーションプログラムとの関係を説明する図。
【図3】 本実施形態に係るファイル管理方法の概略を説明する図。
【図4】 フッタ付き画像ファイルの構造を説明する図。
【図5】 サムネイル画像が付加されたときに、サムネイル画像ブロックとフッタブロックとの関係を説明する図。
【図6】 フッタブロックの構造を説明する図。
【図7】 サムネイル画像とコメントフィールドが付加されたときのフッタブロックの構造を説明する図。
【図8】 画像作成日時に関する情報を記憶するフィールドの構造を説明する図。
【図9】 サムネイル画像を記憶するフィールドの構造を説明する図。
【図10】 コメントフィールドの構造を説明する図。
【図11】 TIFFヘダーの構造を説明する図。
【図12】 本実施形態において、単純な画像ファイルをフッタブロック付き画像ファイルに変換する制御手順を表すフローチャート。
【図13】 図12のフローチャート中のフッタブロックを初期的に生成するステップの詳細を説明するフローチャート。
【図14】 サムネイル画像ブロックを付加する制御手順のフローチャート。
【図15】 サムネイル画像ブロックを参照する制御手順のフローチャート。
【図16】 撮影日時フィールドを参照する制御手順のフローチャート。
【図17】 コメントフィールドを修正若しくは新規生成する制御手順のフローチャート。
【図18】 コメントフィールドを参照する制御手順のフローチャート。
【図19】 図12の処理の概略を説明する図。
【図20】 フッタブロック付加処理の概略を説明する図。
【図21】 サムネイル画像ブロックの付加処理の概略を説明する図。
【図22】 撮影日時の参照処理の概略を説明する図。
【図23】 コメント修正処理の概略を説明する図。
Claims (11)
- メモリに記憶された画像ファイルを演算処理部が処理することによって管理するファイル管理装置において、
前記画像ファイルに関する拡張情報と、当該拡張情報の先頭位置を指定するポインタ情報とを取得する取得手段と、
前記拡張情報と前記ポインタ情報とが前記画像ファイルの末尾に続くファイルであって、前記ポインタ情報が該ファイルの末尾の位置にあるファイルを前記メモリに登録する登録手段と
を具備するファイル管理装置。 - 前記拡張情報は前記画像ファイルのサムネイル画像を含むことを特徴とする請求項1に記載のファイル管理装置。
- 前記拡張情報は前記画像ファイルのコメントに関する情報を含むことを特徴とする請求項1又は2に記載のファイル管理装置。
- 前記登録手段は、前記ポインタ情報を前記拡張情報の末尾に続くように登録することを特徴とする請求項1乃至3のいずれか1項に記載のファイル管理装置。
- 前記登録手段は、前記拡張情報の先頭に、拡張情報であることを示す所定の識別情報を登録することを特徴とする請求項4に記載のファイル管理装置。
- メモリに記憶された画像ファイルを演算処理部が処理することによって管理するファイル管理方法において、
前記画像ファイルに関する拡張情報と、当該拡張情報の先頭位置を指定するポインタ情報とを取得する取得工程と、
前記拡張情報と前記ポインタ情報とが前記画像ファイルの末尾に続くファイルであって、前記ポインタ情報が該ファイルの末尾の位置にあるファイルを前記メモリに登録する登録工程と
を具備するファイル管理方法。 - 前記拡張情報は前記画像ファイルのサムネイル画像を含むことを特徴とする請求項6に記載のファイル管理方法。
- 前記拡張情報は前記画像ファイルのコメントに関する情報を含むことを特徴とする請求項6又は7に記載のファイル管理方法。
- 前記登録工程においては、前記ポインタ情報を前記拡張情報の末尾に続くように登録することを特徴とする請求項6乃至8のいずれか1項に記載のファイル管理方法。
- 前記登録工程においては、前記拡張情報の先頭に、拡張情報であることを示す所定の識別情報を登録することを特徴とする請求項9に記載のファイル管理方法。
- 請求項6乃至10のいずれか1項に記載のファイル管理方法をコンピュータに実行させるプログラムを記憶する、コンピュータにより可読な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32095198A JP4250238B2 (ja) | 1998-11-11 | 1998-11-11 | ファイル管理装置、ファイル管理方法および記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32095198A JP4250238B2 (ja) | 1998-11-11 | 1998-11-11 | ファイル管理装置、ファイル管理方法および記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148560A JP2000148560A (ja) | 2000-05-30 |
JP4250238B2 true JP4250238B2 (ja) | 2009-04-08 |
Family
ID=18127121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32095198A Expired - Fee Related JP4250238B2 (ja) | 1998-11-11 | 1998-11-11 | ファイル管理装置、ファイル管理方法および記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4250238B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100358531B1 (ko) * | 2000-06-09 | 2002-10-25 | (주) 이모션 | 멀티미디어 파일에 확장 컨텐츠를 삽입·재생하는 방법 |
JP4701671B2 (ja) * | 2004-10-14 | 2011-06-15 | ソニー株式会社 | ビデオ信号処理装置および方法、プログラム、並びにデータ構造 |
JP4701810B2 (ja) * | 2005-04-22 | 2011-06-15 | 株式会社大林組 | ファイル作成方法、ファイル作成システム、ファイル管理システム、ファイル、及びプログラム |
JP2011009957A (ja) * | 2009-06-24 | 2011-01-13 | Toshiba Corp | 撮像装置及びサムネイル画像表示方法 |
JP2016521416A (ja) | 2013-04-18 | 2016-07-21 | ラスラン・アルベルトヴィチ・シガブトディノフ | モバイルコンピューティングデバイスによるファイル管理のシステムおよび方法 |
CN112559779A (zh) * | 2020-12-24 | 2021-03-26 | 北京百度网讯科技有限公司 | 图片管理方法、装置、设备以及存储介质 |
-
1998
- 1998-11-11 JP JP32095198A patent/JP4250238B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000148560A (ja) | 2000-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271544B2 (en) | Data file having more than one mode of operation | |
EP1335580B1 (en) | Transformation of images | |
US7386576B2 (en) | Data file storage device with automatic filename creation function, data file storage program and data file storage method | |
JP4908849B2 (ja) | ファイル削除方法、ファイル・オープン方法、ファイル削除プログラム、および、ファイル・オープン・プログラム | |
EP1557035B1 (en) | Method and apparatus for transmitting a digital picture with textual material | |
US8190576B2 (en) | File recording device and imaging device | |
EP0651553B1 (en) | Electronic camera | |
JP3945985B2 (ja) | デジタルカメラ装置 | |
US20110102633A1 (en) | Image sensing apparatus | |
JP4250238B2 (ja) | ファイル管理装置、ファイル管理方法および記憶媒体 | |
JP4568954B2 (ja) | データファイル管理用記録媒体、データファイル管理装置、画像データの伝送方法およびデータの伝送方法 | |
US20020010722A1 (en) | Information processing apparatus, image processing apparatus, print order processing method of information processing apparatus, and print request processing method of image processing apparatus | |
US20010027454A1 (en) | Method, apparatus, and recording medium for displaying templates | |
JP2001157146A (ja) | 画像情報処理装置 | |
JP3122900B2 (ja) | 電子画像アルバム装置 | |
JP2000082127A (ja) | 画像データ出力装置及び方法 | |
JP4143195B2 (ja) | プログラム制御装置、ファイル処理システム、方法及び記憶媒体 | |
JPH09171516A (ja) | 情報管理方法及び装置 | |
JPS61129684A (ja) | 文字処理装置 | |
JP2002135560A (ja) | 印刷装置、画像データ処理装置、画像印刷システム、画像データ処理方法及び記憶媒体 | |
JP2001128094A (ja) | 画像処理装置および記録装置および画像処理方法および記録方法および記憶媒体および記録フォーマット | |
JP2008228244A (ja) | 画像処理装置の制御方法、画像処理装置、および画像処理装置の制御プログラム | |
JP2000322300A (ja) | 日付管理装置および日付管理方法 | |
JP2002218212A (ja) | 画像処理装置および画像処理装置のデータ処理方法および情報処理装置および情報処理装置のデータ処理方法 | |
JP2001298702A (ja) | デジタルカメラのファイル管理方式,記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051107 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20051107 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20051107 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080723 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081010 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081209 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090106 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120123 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130123 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140123 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |