• ベストアンサー

JPEGファイルのヘッダーの撮影日の位置は?

たくさんの方に教えていただき、変数を Dim Byte 宣言、For Next ループ内に Get 文を利用して配列としてJPEGファイルの先頭部分を 読み取る、それを Chr で文字変換して見ることが可能になりました。その文字を見ても、写真データの撮影日付の位置が判明できません。EXIFの規定では撮影日が タグ 9003 HEX、OFFSET 702 に ASC の文字で記録されている、となっていますが、ヘッダーの部分のかなり先まで見ても、撮影に関連する文字(メーカー、各種日付)などや、2010:01:25 という自分の撮影した日付も見えません。9003 HEX はとても大きな数字で変です。OFFSET 702 は HEXでしょうか、十進数でしょうか?日付として読めないのは文字変換が問題でしょうか?ちなみに英数字の text 文章ファイルは文字として正しく読めますので、ヘッダー情報は正しく取り込んでいると思います。 [目的は多くの写真ファイルの更新日を撮影日に自動的に連続置換するためです]

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

全ての JPEG ファイルに EXIF 情報が入っているわけではなさそうですが、編集されようとしているファイルに EXIF 情報が入っているのは間違いありませんか? 一度、バイナリエディタで対象のファイルを確認されてはどうでしょうか? http://www.vector.co.jp/vpack/filearea/win/util/bin/edit/ EXIF 情報については こちら↓のページが参考になりそうです。 http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif.html#HIST このページを見てみると、9003 HEX は別に変ではなさそうです。 あと、蛇足ですが、 http://www.ryouto.jp/f6exif/table07.html のソフトを使用すれば、撮影日時を一括で変更することが可能なようです。

greenhope
質問者

お礼

教えて頂いたバイナリエディタをダウンロードして撮影日の位置を知ることができました。どうもありがとうございました。

greenhope
質問者

補足

エクスプローラで撮影日も、更新日も見えますので、編集したファイルに EXIF 情報は入っています。(Nikon D200で撮影)ご提案のフリーソフトは日付を手入力するようですが、こちらは更新日を撮影日に自動的に入れ替えたいので、ちょっと違うようです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

VB5の方ですよね? 業務用でなければ.NETへ移行しませんか? Express Editionでよければ、無料で入手できますよ http://www.microsoft.com/japan/msdn/vstudio/Express/ そっちで開発した方が早いとおもうのですが、、、 Frameworkに、EXIFタグ変更が簡単に変更できるものもあるので。。。 VB5や6と、各.NETの開発環境は一つの端末に共存できるので、そこら辺は問題ありません。 使用する側にFrameworkのインストールが必要となるという制限はつきますが、、、

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 写真ファイルの更新日を、撮影日の日付に自動的に書き換えたい

    フォルダを手動で選択し(ここまではできます)、その中にあるJPEG写真ファイルの更新日の日付、時刻を、撮影日の日付、時刻に自動的に書き換えたいのですが、VBでどんな記述をすればよいのでしょうか。日付と時刻データはDCFなのでヘッダーあたりに入っていると思われますが。その部分がどこにあって、その撮影日の日付、時刻を取り出すのが特にわかりません。よろしくお願いします。

  • 写真の更新日時を撮影日に変更してくれるソフト…

    画像ファイルの更新日時をExifの撮影日として登録してくれるようなソフトはないでしょうか?できれば一括でできればいいんですが…。 デジカメを持ち歩いていない時に結構いいカメラがついている920SCを使って写真を撮ったりするのですが、それで撮ると携帯上では日付順に並べたりできるんですが、パソコン(Vista)で撮影日が表示されないんです。 そんな写真がもう100枚たまってきてて、1つ1つ入力してたらキリがありません。 そこでよく見るとプロパティのファイルの更新日時が本来の撮影日と一致していたので、複数の写真を一括で更新日時を撮影日として登録できるソフトがあればなぁと思ったんです。 検索エンジン等でちょっと調べてみたのですが、なかなか希望に当てはまるソフトがぱっと出てこなかったのでここで質問させていただきました。 どうかよろしくお願いします。

  • Exifデータの無いjpegにファイルの日時を

    環境はWindowsXPです。 昔のデジカメで撮影したjpegにExifデータが無く、 多分Exif情報を取得してソートしているであろう 写真管理ソフト(sonyのビデオカメラに付属していたPMB)で 1989年1月1日00:00の扱いになってしまいます。 「F6Exif」というソフトでExif情報の追加はできるのですが、 一括して同じ日時しかできず、何千枚もの写真を目の前に 途方にくれています。 ファイルそのもの(この場合はjpeg)の作成日時もしくは更新日時を取得して Exif情報とするソフト(できればフリーソフトがありがたいのですが...)を ご存知で無いでしょうか? もちろん複数ファイルを一括でできるものが助かります。 よろしくお願いします。

  • デジカメの撮影日等の設定を間違えて撮影、正しいファイル情報に書き換える方法教えて

    デジタルカメラで撮影時に日付の設定が間違っていました。撮影後、このファイルの撮影日等のファイル情報を正しい内容に変更したいのですが方法は有りますか。変更する方法とか、書き換えが出来るソフトが有りましたら教えてください。写真整理で困っています。よろしくお願い致します。

  • jpgを撮影日順に並び替え

    幾つかのフォルダに入ってた写真ファイルを、全て一つのフォルダに入れました。それを撮影日順に並び替え、改名したいのですが、「まとめて改名」で簡単に出来るとありましたので、インストールしたのですが、撮影日順にする方法が分かりません。日付順とありますが、どうも違うようです。ファイルはデジカメや携帯、ZAURUS、ビデオカメラキャプチャー等、色々です。この日付順というのは、ファイル作成日順だと思われますが、PCに取り込んで作成された日付順ではないでしょうか?エクスプローラで開いたファイルにマウスポイントすると、撮影日が表示されますので、撮影日データは壊れてないようですので、この撮影日順に並び替えする方法を、お教え願います。

  • jpgファイルの頭の部分を読みとりたい

    jpgファイルの頭の部分(exifのヘッダあたりの数キロバイト)を読みとり、変数に格納したのですが、Dim や open 文から変数に格納するまで、VB5ではどういう記述をすれば良いのでしょうか? Input、InputB、Get で試みてみましたが。txtの拡張子なら、200文字まで読めましたが、jpgファイルは2、3文字しか読めません。(Dim や open文が違うのかも)具体的な記述の例をお願いします。 目的:写真ファイルを編集すると更新日が記録されます。テレビでスライドショーをすると、撮影日順でなく、更新日順となり、不自然となる。そのため、フォルダ内の多くのファイルの更新日を自動的に撮影日に替えたいのです。1点ずつの変更するフリーソフトは入手しましたが、対象ファイルが多数あり、自動で行いたい。jpgの指定部分をある文字に書き換えるのは put 文でできることは確認しましたので、jpgファイルの頭の部分を読めれば、できると思っています。

  • 写真の撮影日の証拠

    写真の撮影日の証拠  いつも、解答いただきありがとうございます。  裁判で、証拠を提出することがあります。  書面のほか、写真というのもあります。  ただ、写真の証拠は、  いつ撮影されたものかが問われます。  事件があった日の前か、後かです。  この場合、撮影日の証拠をどのように証明すれば、良いのでしょうか?  裁判上の相手側は、一般的に相手のことを認めようとしないし、認めたがらないのです。相手方は、たとえ認めても、受託の弁護士は、証拠として不十分であるなどと逃げ回ります。相手方は、隠れて出てきません。  一般にどのようにして目的をかなえているのでしょうか?  写真のファイルには、撮影日が一般に残されていたり、ファイルの名前が、日付になっていることがあります。  写真のファイルの入っている  CD-Rで焼き付ける。 やマイクロSDの中に写真ファイルを入れる などを提出すれば、裁判所で確認して証拠として認めてもらえるのでしょうか?  日付を操作したに違いないなどと言われると完全な証明にならないかも知れませんが、一般には、どうするのでしょうか?  撮影日を第三者が、証明してくれればよいのですが、このようなことをどのようにすれば、良いのでしょうか?  たとえ一つだけでも、お知りのことがありましたらよろしく教授方お願いします。 敬具

  • VB6でテキストファイルをCSVファイルに変換

    VB6でテキストファイルをCSVファイルに変換の機能を作っていますが、 壁にぶつかりました; 項目         サイズ(byte) 1.作成日        15 2.マスタID      10 以上の2項目は固定です。 3.コード      9 4.名前1         10 5.名前n(登録数最大20個とする)19個*10byte=190 5.年齢    3 ''項目名の取得 ITR = ITR + Chr(39) + "作成日" + Chr(39)  中略 ''ファイルへの書込 ObjOutFile.Write (ITR) ITR=からはどうやって書くのかよくわからないです。 一行で出力したいので、名前は複数ある場合は、ヘッダの項目名前1、名前2、名前3のように並びたいのですが。。 詳しいかたいらしゃったら、ご教授ください。

  • 写真のファイル名を一括して撮影日にすることはできますか?

    こんにちは。 デジカメの写真が2GB分貯まってしまったので、 整理をしたいのですが、そのときその時でいろんなファイル名になっています。 写真のデータに残っている「撮影日」+枝番のような形で 一括してファイル名を変換してくれるようなソフトはありますか?? よろしくお願いします。

  • エクスプローラが表示する更新日、撮影日はどこに?

    たくさんの方に教えていただき、DCFの写真ファイルの更新日付を撮影日付に変更することを、指定したフォルダ全てに自動実行するプログラムを作成できました。目的は更新日順となるスライドショーを、撮影日順にすることです。ところが、順番を決める日付はDCFデータの撮影日付ではなく、別の所(FAT?)にあるようで、当てが外れてしまいました。ファイルのエクスプローラで表示する更新日、撮影日が保存されている場所はどこにあるのでしょうか?そこを読み書きするには、どうしたらよいのでしょう?ちなみに1ファイルずつ手動で編集するフリーソフトは持っています。フォルダ内の全ファイルを自動で連続して更新日を撮影日に修正するのが目的です。VBくらいできる力では無理でしょうか?よろしくお願いします。