自动为 QuMagie 备份的手机照片, 添加 Exif 信息, 以便于在相册中按照时间线查看
在 QuMagie 备份时, 需要取消选择 原始文件名称, 这样备份的文件名会采用日期格式, 例如 2019-01-01 12.00.00.jpg
此工具将读取时间信息, 并将其写入 Exif 的 DateTime 和 DateTimeOriginal 信息,此时 QuMagie 将会将此时间作为 照片的拍摄日期。
- 通过 SMB 等方式将图片目录挂载到本地电脑 假设为 Z:\
- 在 Release 目录下载对应的 二进制文件, 通常为
quexif-windows-amd64-{{version}}.exe
- 在命令行中执行
$ quexif-windows-amd64-{{version}}.exe -m qumagie -p Z:\
假设 你的备份照片路径在
/share/Public/Photo
- 通过 SSH 登录 Qnap
- 下载对应的 二进制文件, 通常为
quexif-linux-amd64-{{version}}
- 将二进制文件上传到 Qnap 的
/share/Public
目录 - 在 SSH 中执行
$ sudo -s
$ chmod +x /share/Public/quexif-linux-amd64-{{version}}
$ /share/Public/quexif-linux-amd64-{{version}} -m qumagie -p /share/Public/Photo
您可以使用 ./quexif -h 查看所有支持的参数
Usage of quexif:
-d string
日期时间
-f 强制执行, 不会检查是否已经有日期
-m string
操作模式: qumagie (QuMagie 备份照片处理), dir (指定文件夹批量修改 EXIF时间), dir_auto (按照路径推导时间), read (读取目录或文件的 EXIF 时间信息) (default "read")
-p string
文件夹路径 (default "./")
-r string
仅 dir_auto 模式适用, 在解析时间之前, 从文件名中提取时间的正则表达式
-skip
跳过安全询问, 直接执行
-t string
日期时间模板, 默认为 '2006-01-02 15.04.05' 请参照 Golang 时间 layout 设置, 不适用于 QuMagie 模式 (default "2006-01-02 15.04.05")
- 批量修改某个目录及其子目录下的所有图片为指定时间
$ ./quexif -m dir -d '2024-11-23' -t '2006-01-02' -p ./pics
# -m dir 表示修改目录下的所有图片
# -d '2024-11-23' 表示修改为 2024-11-23
# -t '2006-01-02' 表示时间格式为 2006-01-02
# -p ./pics 表示目录为 ./pics
- 批量修改某个目录及其子目录下的所有图片, 按照设定的时间模板尝试推导时间
# 例如您的目录结构为
.
├── 2022-11-23
│ ├── IMG_0001.JPG
│ ├── IMG_0002.JPG
│ ├── IMG_0003.JPG
├── 2023-11-23
│ ├── IMG_0004.JPG
├── 2024-11-23
│ ├── IMG_0005.JPG
│ ├── IMG_0006.JPG
此时您可以执行如下脚本, 脚本将自动解析文件夹名称, 并将其作为时间写入 Exif
$ ./quexif -m dir_auto -t '2006-01-02' -p ./pics
# -m dir_auto 表示修改目录下的所有图片, 并按照文件名推导时间
# -t '2006-01-02' 表示时间格式为 2006-01-02
# -p ./pics 表示目录为 ./pics
- 使用正则, 批量推导文件名中的时间
# 例如您的目录结构为
.
├── wechat_2022-11-23.jpg
├── wechat_2023-11-23.jpg
│── wechat_2024-11-23.jpg
此时您可以执行如下脚本, 脚本将自动根据正则表达式提取时间字符串, 按照 dateTpl 进行时间解析后写入 Exif
$ ./quexif -m dir_auto -r "wechat_(.*).jpg" -t "2006-01-02" -p ./pics
# -m dir_auto 表示修改目录下的所有图片, 并按照文件名推导时间
# -r 为正则表达式, 例如 "wechat_(.*).jpg" 表示提取 wechat_2022-11-23 10.22.23.jpg 中的 2022-11-23 10.22.23
# -t '2006-01-02' 表示时间格式为 2006-01-02
# -p ./pics 表示目录为 ./pics