2023年2月19日日曜日

写真 日付変更 exiftool 其の壱

もし、撮った写真の時刻がずれていたら!、
あなたなら、どうします?。
そのまま?、其れとも、直しますか?。
でも、方法に依っては、オリジナルから相当に離れるんですけれど。


写真なんか、見れれば良い、 のならば、
悩ま無いのかも、知れませんね。

でも、可能な限り、オリジナルを重視したい私としては、
大いに、四苦八苦、なのです。


と言うのも、
嘗て、.jpg ファイルから EXIF 情報を取得する プログラム を書いたのですが、
参照: https://shiroyuki-mot-says.blogspot.com/2012/07/jpg-vb.html
序に、メタデータの一部(殊に、日時)を書き換えられる様にした時、
データ構造が変わって仕舞う事に気付き、
棚上げしたのでした。
一旦展開したデータを元に、利用ライブラリが再構築するが故です。
そう、もう、10年以上前の事です。


ファイルをバイナリ的に扱い、
日付部分を書き換えるだけなのですが、
データの仕様と格納値が明確に取得出来無いといけませぬ。
.jpg ならは、何とか、可能ですが、
実は、.raw ( .NEF for Nikon ) の場合、
明確な資料がありません。
其れが、棚上げのまま 塩漬け にして来た理由です。

セットで保存される事が多い此れ等。
片方だけ修正が可で、他方は おざなり では、がっかり ですから。


さて、最近の事。
通常、使い廻しているメディアを持参し忘れて、
予備のメディア(小容量)に記録させました。
帰宅後、カメラの日時を遡りさせ、
通常メディアでメディアをフォーマットの上、コピーし、
一件落着だった筈ですが、
カメラの日時を戻すのを忘れていたのです ... 。  :O
結果、後日撮影続行したコマは ... 、時間がズレてるぅ~!。  X(
こりゃぁ、拙い です。

何とか、直したい ... 。

  恐らく、似たケースとして、
  カメラのバッテリ切れで、日付が初期化された場合や、
  海外で時差を現地時間に合わせたいとか、 も類似でしょう。
  

其処で気付いたのが、
普段お世話になっている GIMP でも使われている、Exiv2 と類似の、
Exiftool の事。
相違点は、Exiv2 が C++ で記述され、Exiftool が Perl で記述されている事。
参考:https://dev.exiv2.org/projects/exiv2/wiki/How_does_Exiv2_compare_to_Exiftool

使って見ようかな。
で、 早速、最新版 Version 12.56 を入手しました。
Home Page : https://exiftool.org/

お勧めの通り、exiftool(-k).exe を exiftool.exe にリネームして、
試して見たのです。
そうそう、インストール等は不要で、単に、展開するだけです。

  詳細に附いては exiftool 導入 等で検索して見て下さい。

Windows 10 で使った様子が 此方。
日付の時刻を +5時間 ( +="0:0:0 05:0:0" ) 進めて見ました。
はい。 コマンドプロンプト cmd.exe から実行しています。
注意!。  表示の ¥ は HTML 用に置換された文字です。  要打ち直し。

exiftool ^
 -overwrite_original ^
 -DateTimeOriginal+="0:0:0 05:0:0" ^
 -CreateDate+="0:0:0 05:0:0" ^
 -ModifyDate+="0:0:0 05:0:0" ^
 "Sample¥DSC_0004.JPG"

exiftool ^
 -overwrite_original ^
 "-FileCreateDate<CreateDate" ^
 "-FileModifyDate<ModifyDate" ^
 "Sample¥DSC_0004.JPG"

exiftool.exe を置いた Sub Directory (Sample) に 写真データを配置しています。
更に其の後ろの Sub Directory (Origin) にもコピーしてあります。

実行は2回に渡り、
先ず、EXIF 情報を直した上で、
次に、OS の ファイル情報を直しています。
共に、モードは上書きを選択しました。

各 Options の順序は重要で、
また、
記述に当たっては、
' を使うと駄目で、 " を使って下さい。
改行前の ^ は 行継続 を意味します。
視認性を重視し、改行を入れたいので。

結果は

exiftool -time:all -s H:¥UnCategolized¥exiftool¥Sample¥Origin¥DSC_0004.JPG
FileModifyDate                  : 2023:02:13 20:01:18+09:00
FileAccessDate                  : 2023:02:14 23:13:14+09:00
FileCreateDate                  : 2023:02:13 22:22:33+09:00
ModifyDate                      : 2023:01:22 13:08:30
DateTimeOriginal                : 2023:01:22 13:08:30
CreateDate                      : 2023:01:22 13:08:30
TimeZone                        : +09:00
DaylightSavings                 : No
DateDisplayFormat               : Y/M/D
PowerUpTime                     : 2023:01:15 22:16:27
SubSecTime                      : 77
SubSecTimeOriginal              : 77
SubSecTimeDigitized             : 77
SubSecCreateDate                : 2023:01:22 13:08:30.77
SubSecDateTimeOriginal          : 2023:01:22 13:08:30.77
SubSecModifyDate                : 2023:01:22 13:08:30.77

exiftool -time:all -s H:¥UnCategolized¥exiftool¥Sample¥DSC_0004.JPG
FileModifyDate                  : 2023:01:22 18:08:30+09:00
FileAccessDate                  : 2023:02:14 17:07:10+09:00
FileCreateDate                  : 2023:01:22 18:08:30+09:00
ModifyDate                      : 2023:01:22 18:08:30
DateTimeOriginal                : 2023:01:22 18:08:30
CreateDate                      : 2023:01:22 18:08:30
TimeZone                        : +09:00
DaylightSavings                 : No
DateDisplayFormat               : Y/M/D
PowerUpTime                     : 2023:01:15 22:16:27
SubSecTime                      : 77
SubSecTimeOriginal              : 77
SubSecTimeDigitized             : 77
SubSecCreateDate                : 2023:01:22 18:08:30.77
SubSecDateTimeOriginal          : 2023:01:22 18:08:30.77
SubSecModifyDate                : 2023:01:22 18:08:30.77

と、正確に訂正されています。


さてさて、
其の内容や如何に?。

気になっている、ファイル構造に変化はあるのか?。


でも、長くなって仕舞ったので、別の投稿に分けましょうね。
写真 日付変更 exiftool 其の弐 です。  後日公開予定。



0 件のコメント:

コメントを投稿