出于无聊,用了半小时写(Copy)了一个给照片自动加水印的脚本。大概功能就是将特定照片在右下角添加时间、尺寸、GPS信息(无人机或者手机有)和版权信息。当然,还不够完善,有空了加上读取目录中所有JPG的功能,以及自适应字体大小的功能。
import os from PIL import Image from PIL.ExifTags import TAGS from PIL import ImageFont from PIL import ImageDraw def get_exif_data(fname): """Get embedded EXIF data from image file.""" ret = {} try: img = Image.open(fname) if hasattr( img, '_getexif' ): exifinfo = img._getexif() if exifinfo != None: for tag, value in exifinfo.items(): decoded = TAGS.get(tag, tag) ret[decoded] = value size = img.size except IOError: print('IOERROR ' + fname) return ret,size def addText(fname,text): img = Image.open(fname) draw = ImageDraw.Draw(img) # font = ImageFont.truetype(<font-file>, <font-size>) font = ImageFont.truetype("Andale.ttf", 64) # draw.text((x, y),"Sample Text",(r,g,b)) draw.text((img.size[0]-img.size[0]/6,img.size[1]-img.size[1]/10),text,(255,255,255),font=font) img.save('sample-out.jpg') print('Added text') if __name__ == '__main__': fileName = r'/Users/li-yang/Desktop/DSC04467_1.jpg' copyright = 'Photo by YangLi' exif,size = get_exif_data(fileName) print(exif) size = str(size[0]) +'*'+ str(size[1]) if 'DateTimeOriginal' in exif: time = exif['DateTimeOriginal'] else: time= 'No Time Info' if 'Model' in exif: model = exif['Model'] else: model = 'No Model Info' if 'GPSInfo' in exif: GPS = exif['GPSInfo'] else: GPS = 'No GPS Info' text = time +'\n' + size +'\n' +GPS+'\n' +copyright addText(fileName,text)