【python初学者日记】用PIL批量给HEIC格式的照片,添加拍摄日期、拍摄地点的水印戳

最近在整理手机相册,发现以前在拍摄的时候,不喜欢给照片带水印,现在想在照片上面打上拍摄时间+地点的水印戳。之前有写过将exl中的内容,添加到照片的功能,所以这次的就简单多了。

问题合集

1、读取 HEIC 格式照片的拍摄信息

2、将已知坐标转码成具体省市地址的文字信息

3、将文字添加到HEIC格式的照片上

问题解决

一、问题分析

1、读取HEIC格式照片的拍摄信息:
现有版本python3.11,用exifread库即可将苹果导出的HEIC格式照片的拍摄信息。
2、将已知坐标转码成具体省市地址的文字信息:
这里我使用的是百度地图调起API,参考说明如图:
在这里插入图片描述传送门: https://lbsyun.baidu.com/index.php?title=uri/api/web
注:此方法无需注册开发者,可以直接使用。
3、将文字添加到HEIC格式的照片上:
这里偷个懒,我之前有写过将exl中的内容,添加到照片的功能,此处稍作修改即可实现功能。

二、代码实现

1、代码如下:

# -*- coding: utf-8 -*-
# 读取图片属性中的拍摄日期,并给图片添加拍摄日期、地点
import datetime
import os

import exifread
import requests
import json

from PIL import Image, ImageDraw, ImageFont, ImageFilter
from pillow_heif import register_heif_opener

register_heif_opener()

# 示例已知经纬度,利用百度地图,输出当前省市等信息
# http://api.map.baidu.com/geocoder?location=30.204891666666665,120.19970833333333&coord_type=gcj02&output=json


my_font = r"C:\Windows\Fonts\SIMYOU.TTF"

startTime_program = datetime.datetime.now()  # 开始时间


# 定义一个换算函数,功能:将输入的度(时)分秒,经过换算,返回度(时)。例如输入[30, 12, 1761/100],返回30.204891666666665
def Conversion(data):
    temp_data = [ele.strip() for ele in (str(data).replace('[', '').replace(']', '').split(','))]
    new_data = eval(temp_data[-1]) / 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值