python批量添加经纬度水印
时间: 2023-10-13 20:29:21 浏览: 253
要批量添加经纬度水印,你需要使用Python的Pillow库和ExifRead库。Pillow库是用于图像处理的Python库,而ExifRead库则是用于读取和写入图像EXIF数据的库。以下是一个简单的示例代码,可以在指定的照片上批量添加经纬度水印。
```python
from PIL import Image, ImageDraw, ImageFont
import exifread
import os
# 设置水印文字
text = "Latitude: 40.7128° N, Longitude: 74.0060° W"
# 设置字体和字号
font = ImageFont.truetype("arial.ttf", 24)
# 循环处理每张照片
for filename in os.listdir('photos'):
if filename.endswith('.jpg'):
# 打开照片并读取EXIF数据
image = Image.open('photos/' + filename)
exif = exifread.process_file(image._getexif())
# 获取经纬度信息
lat_ref = exif['GPS GPSLatitudeRef'].printable
lat = exif['GPS GPSLatitude'].printable[1:-1].replace(" ", "").replace("/", ",").split(",")
lon_ref = exif['GPS GPSLongitudeRef'].printable
lon = exif['GPS GPSLongitude'].printable[1:-1].replace(" ", "").replace("/", ",").split(",")
# 转换经纬度格式
lat = int(lat[0]) + float(lat[1]) / 60 + float(lat[2]) / 3600
lon = int(lon[0]) + float(lon[1]) / 60 + float(lon[2]) / 3600
if lat_ref == "S":
lat = -lat
if lon_ref == "W":
lon = -lon
# 添加水印文字
draw = ImageDraw.Draw(image)
draw.text((10, 10), text, font=font)
# 保存照片
image.save('photos/' + filename)
```
在这个示例代码中,我们遍历名为“photos”的文件夹中的所有JPG文件,并从每个文件的EXIF数据中提取经纬度信息。然后,我们将经纬度信息转换为十进制格式,并使用Pillow库中的ImageDraw和ImageFont类在照片上添加水印文字。最后,我们将修改后的照片保存回原始文件夹中。
请注意,在使用此代码之前,你需要先安装Pillow和ExifRead库。可以使用以下命令进行安装:
```python
pip install Pillow exifread
```
阅读全文