https://github.com/soxft/quexif
Auto edit EXIF data for your photos within Qumagie
https://github.com/soxft/quexif
exif qemagie qnap
Last synced: about 2 months ago
JSON representation
Auto edit EXIF data for your photos within Qumagie
- Host: GitHub
- URL: https://github.com/soxft/quexif
- Owner: soxft
- Created: 2024-11-05T01:32:49.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-13T00:50:45.000Z (6 months ago)
- Last Synced: 2025-01-16T10:08:58.365Z (4 months ago)
- Topics: exif, qemagie, qnap
- Language: Go
- Homepage:
- Size: 6.44 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# QuExif
> 自动为 QuMagie 备份的手机照片, 添加 Exif 信息, 以便于在相册中按照时间线查看
## 原理
在 QuMagie 备份时, 需要取消选择 原始文件名称, 这样备份的文件名会采用日期格式, 例如 `2019-01-01 12.00.00.jpg`
此工具将读取时间信息, 并将其写入 Exif 的 DateTime 和 DateTimeOriginal 信息,此时 QuMagie 将会将此时间作为 照片的拍摄日期。
## 使用
### 直接在本地运行, 以 Windows 为例
1. 通过 SMB 等方式将图片目录挂载到本地电脑 假设为 Z:\
2. 在 Release 目录下载对应的 二进制文件, 通常为 `quexif-windows-amd64-{{version}}.exe`
3. 在命令行中执行```shell
$ quexif-windows-amd64-{{version}}.exe -m qumagie -p Z:\
```### 在 Qnap 中运行
> 假设 你的备份照片路径在 `/share/Public/Photo`
1. 通过 SSH 登录 Qnap
2. 下载对应的 二进制文件, 通常为 `quexif-linux-amd64-{{version}}`
3. 将二进制文件上传到 Qnap 的 `/share/Public` 目录
4. 在 SSH 中执行```shell
$ sudo -s
$ chmod +x /share/Public/quexif-linux-amd64-{{version}}$ /share/Public/quexif-linux-amd64-{{version}} -m qumagie -p /share/Public/Photo
```## 其他支持项
> 您可以使用 ./quexif -h 查看所有支持的参数
```shell
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")```
- 批量修改某个目录及其子目录下的所有图片为指定时间
```shell
$ ./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
```- 批量修改某个目录及其子目录下的所有图片, 按照设定的时间模板尝试推导时间
```shell
# 例如您的目录结构为
.
├── 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
```- 使用正则, 批量推导文件名中的时间
```shell
# 例如您的目录结构为
.
├── 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
```## Thinks
- [go-exif](//github.com/dsoprea/go-exif/v3)