スキャナでスキャンしたプリント類を Google Photos に放り込んで共有してるんだが、
タイムスタンプの情報がないせいか、ファイル名には連番が振ってあるにも関わらず、登録後の並びが順番に並んでくれない。
秒未満を EXIF に埋め込めないかと、exif (1) コマンドでタグ一覧を調べてみるとこんな感じだった。
うちの手持ちのカメラの EXIF を exiftool で確認してみたが、残念ながらこのタグは見当たらない。
Canon PowerShot SX130IS
"Time Zone Offset" タグも付いておらず、タイムゾーン情報のないローカルタイムが直に埋め込まれている模様。
本題から外れてしまったが、とりあえず、
結果は以下のような感じ。
SebSecTimeOriginal を2桁にもしてみたが、やはり揃わない。
あと、exifool は -P (-preserve) オプション付けると "FileModifyDate" と言うか、mtime 維持するみたいなこと書いてあるけど、秒以下が 0 になってしまうので、あらかじめ保存しておいたタイムスタンプを touch などで書き戻さないときちんと preserve 出来なかった。
意外とダメな子だなぁ。
タイムスタンプの情報がないせいか、ファイル名には連番が振ってあるにも関わらず、登録後の並びが順番に並んでくれない。
秒未満を EXIF に埋め込めないかと、exif (1) コマンドでタグ一覧を調べてみるとこんな感じだった。
$ LANG=C exif -cl|grep -iE "^EXIF Tag|date|time|offset|zone" EXIF tags in '(EXIF)': 0 1 EXIF GPS Interop 0x0007 GPS Time (Atomic Clock) - - - - - 0x001d GPS Date - - - - - 0x0111 Strip Offsets - - - - - 0x0132 Date and Time * - - - - 0x014a SubIFD Offsets - - - - - 0x829a Exposure Time - - - - - 0x882a Time Zone Offset - - - - - 0x9003 Date and Time (Original) - - - - - 0x9004 Date and Time (Digitized) - - - - - 0x9290 Sub-second Time - - - - - 0x9291 Sub-second Time (Original) - - - - - 0x9292 Sub-second Time (Digitized) - - - - -以下のページによると "Sub-Second Time" に秒未満を小数点以下2桁ほど保持してるっぽい。
- stackexchange / AskDifferent / How can I rename my files with datestamps in Aperture and keep them in order?
- Gist / rjames86 / My Exiftool Cheatsheet.md
うちの手持ちのカメラの EXIF を exiftool で確認してみたが、残念ながらこのタグは見当たらない。
Canon PowerShot SX130IS
$ exiftool /tmp/DCIM/IMG_5400.JPG |grep -iE "date|time|zone|offset" File Modification Date/Time : 2015:12:16 16:00:28+09:00 File Access Date/Time : 2019:06:25 15:09:31+09:00 File Inode Change Date/Time : 2019:06:25 15:09:21+09:00 Modify Date : 2015:12:16 16:00:29 Exposure Time : 1/30 Date/Time Original : 2015:12:16 16:00:29 Create Date : 2015:12:16 16:00:29 Self Timer : Off Target Exposure Time : 1/30 Self Timer 2 : 0 Date Stamp Mode : Off VRD Offset : 0 Thumbnail Offset : 5120Fujifilm XQ1
$ exiftool /tmp/DCIM/DSCF3940.JPG |grep -iE "date|time|zone|offset" File Modification Date/Time : 2019:05:05 08:48:26+09:00 File Access Date/Time : 2019:06:25 15:05:31+09:00 File Inode Change Date/Time : 2019:06:25 15:05:21+09:00 Modify Date : 2019:05:05 08:48:26 Exposure Time : 1/160 Date/Time Original : 2019:05:05 08:48:26 Create Date : 2019:05:05 08:48:26 Thumbnail Offset : 1872秒未満が付いてないのも問題だが、
"Time Zone Offset" タグも付いておらず、タイムゾーン情報のないローカルタイムが直に埋め込まれている模様。
- StackExchange / Photography / 2015-04-23: Is there any hope for Exif TimeZoneOffset as a standard?
本題から外れてしまったが、とりあえず、
for i in *.jpg; do t="$(date -r "$i" "+%Y-%m-%d %H:%M:%S.%N%z")" z="$(date -r "$i" "+%z")" exiftool -P "-datetimeoriginal=$t" "-subsectimeoriginal=$t" "-timezoneoffset=$z" "$i" touch -d "$t" "$i" doneみたいな感じで mtime から DateTimeOrigial と SubSecTimeOriginal と TimeZoneOffset に値を設定してみた。
結果は以下のような感じ。
$ # Before $ exiftool *-01.jpg|grep -iE "date|time|zone|offset" File Modification Date/Time : 2019:06:25 14:27:39+09:00 File Access Date/Time : 2019:06:25 14:27:39+09:00 File Inode Change Date/Time : 2019:06:25 14:27:39+09:00
$ # After $ exiftool *-01.jpg|grep -iE "date|time|zone|offset" File Modification Date/Time : 2019:06:25 14:27:39+09:00 File Access Date/Time : 2019:06:25 14:27:39+09:00 File Inode Change Date/Time : 2019:06:27 01:30:49+09:00 Time Zone Offset : 900 Date/Time Original : 2019:06:25 14:27:39 Sub Sec Time Original : 689882895 Date/Time Original : 2019:06:25 14:27:39.689882895しかし、目的であった Google Photos は相変わらず並び順が揃わない。
SebSecTimeOriginal を2桁にもしてみたが、やはり揃わない。
$ exiftool *-01.jpg|grep -iE "date|time|zone|offset" File Modification Date/Time : 2019:06:25 14:27:39+09:00 File Access Date/Time : 2019:06:25 14:27:39+09:00 File Inode Change Date/Time : 2019:06:27 01:50:47+09:00 Time Zone Offset : 900 Date/Time Original : 2019:06:25 14:27:39 Sub Sec Time Original : 68 Date/Time Original : 2019:06:25 14:27:39.68これは手詰まりかな?
あと、exifool は -P (-preserve) オプション付けると "FileModifyDate" と言うか、mtime 維持するみたいなこと書いてあるけど、秒以下が 0 になってしまうので、あらかじめ保存しておいたタイムスタンプを touch などで書き戻さないときちんと preserve 出来なかった。
意外とダメな子だなぁ。
タグ
コメントをかく