这个想法已经想很久了,以前的相机都是自带日期的,现在的有些也有,但是款式不固定,很多很难看。
所以自己写了一款可以批量的(其实我的应用场景并不是太批量)。如果是电子档的,我不需要加这行字,但如果要打印出来,就要打这行日期了。
所以我的应用场景就是把想要打印的照片一起复制到一个文件夹里面,然后批量添加。
from PIL import Image, ImageFont, ImageDraw
import exifread #获得exif信息
def addText(image_path, text):
im = Image.open(image_path) # 打开图像
width, height = im.size
ttfont = ImageFont.truetype('Deng.ttf', int(height / 20)) #设置字体
draw = ImageDraw.Draw(im) # 创建画画对象
draw.text((int(width * 0.8), int(height *0.9)), text, font=ttfont) # 添加文字
im.show()
def get_takedate(filepath):
f = open(filepath, 'rb')
date = exifread.process_file(f)['EXIF DateTimeOriginal'] #获取拍摄日期时间
date = str(date) #将日期时间转换成字符串
list = date.split(' ') #分开成日期和时间
date = ''.join(list[0].split(':')) #拍摄日期
time = list[1] #拍摄时间
return date
def addone(filepath):
addText(filepath, get_takedate(filepath))
if __name__ == '__main__':
addone('DSC_3345.jpg') #在此处添加文件路径