自动化读取EXIF信息,给照片打上时间戳和地理位置
示例图片
介绍
该脚本可以从图片中读取EXIF信息,提取拍摄时间和GPS坐标,并使用这些数据获取详细的地址信息。然后,它会将这些信息添加到图片上,并保存带有地理位置标签和时间戳的新图片。
开源地址
功能
- 读取图片EXIF信息
- 从GPS坐标反解析地址
- 将时间戳和地址添加到图片上
- 支持中文地址格式
- 自动重试和处理失败的操作
环境要求
- Python版本: 3.7 或更高
- 操作系统: Windows, macOS, Linux
- 国内用户需要代理环境
使用方法
安装 Python
微软商店安装
直接搜索安装即可,注意要安装 3.7
以上版本,推荐 3.11
或 3.12
。
官网下载安装
进入 Python官网 然后下载安装程序一路下一步就可以了,Windows用户下载下面箭头指的就可以了。
或者进入 下载页 ,自行根据系统下载即可。
下载源代码
Git
第一步先安装Git,首先进入 Git官网 ,官网均为中文,根据自己的系统进行下载安装。
现在默认你已经安装完Git。
让我们把源代码克隆下来,在桌面空白地方右键,选择在终端打开。
输入下面代码克隆项目源码:
|
|
国内用户 用下面的代码:
|
|
显示如下图则代表克隆成功
若克隆项目代码失败,请检查网络是否能正常访问 Github ,然后重新克隆项目代码。
此时,桌面出现 print-exif-to-photo
文件夹,至此源代码下载完成,可以跳转至 安装依赖 章节。
Github下载
首先确保你可以正常访问GitHub,点击此访问项目源代码 ,然后下载源代码即可。
下载完成后解压至桌面即可。
Gitee下载
访问 Gitee项目仓库 ,下载源代码即可。
安装依赖
运行此脚本需要安装以下Python模块:
Python 包 | 依赖需求 |
---|---|
PIL | >= 10.2.0 |
geopy | >= 2.4.1 |
piexif | >= 1.1.3 |
下面进行安装,在文件夹内空白处,右键 在终端中打开
,输入下面代码安装所需依赖。
|
|
如下图即为安装成功:
使用
导入图片并运行
将所有需要处理的图片放置在代码根目录的 images
文件夹内,输入下面命令执行程序:
|
|
注意 所有命令均代码根目录下执行。
这样就算是执行成功了,处理成功的图片会在 images\tagged_images
目录下,没有 EXIF 信息的图片将被存放在 images\no_exif_images
目录下。
更改字体及样式
- 将字体文件放入
fonts
文件夹。 - 修改
config/style.json
中font_path
的字体路径。 (例如fonts/example.ttf
,默认为msyh.ttc
[微软雅黑] )
配置文件说明
font_path
: 使用的字体文件的路径。margin_scale
: 边距比例,定义为图片宽度的一部分。font_size_scale_landscape
: 横向图片的字体大小缩放因子。font_size_scale_portrait
: 纵向图片的字体大小缩放因子。min_font_size
: 文本的最小字体大小。shadow_color
: 文本阴影的颜色。shadow_offset
: 文本阴影的偏移量(以像素为单位)。text_color
: 文本的颜色。spacing
: 行间距,即行与行之间的垂直距离。
问题处理
程序会输出每张照片的处理结果,由于 Nominatim API 要求输入 user_agent 并且会限制请求频次,程序每次处理完一轮后会程序生成 user_agent ,并将因为API问题没有处理成功的图片重新处理。