importos,timefrom PIL importImage,ImageDraw,ImageFont#源文件夹,目标文件夹,字体文件,屏幕分辨率(宽度,高度)
srcpath, destpath, fontfile = r".\src", r"..\dest", r"..\font\301-CAI978.ttf"width, height= 640.0, 1136.0
defzoomSize(filename,imgtype):
imgtype= "jpeg" if imgtype=="jpg" else "png"
#获取文件创建时间 例:1483882912.37 Sun Jan 08 21:41:52 2017
t=time.ctime(os.path.getctime(filename))print filename +"创建时间:"+t
im= Image.open(filename) #默认mode="r"
#在图片上添加创建时间
draw =ImageDraw.Draw(im)
fontsize= min(im.size)/30font=ImageFont.truetype(fontfile, fontsize)
draw.text((0,im.height- fontsize),t,font=font,fill=(255,0,0))#按比例缩放,使之适应屏幕分辨率
rate = max( im.width/width, im.height/height )if rate!=0:
im.thumbnail((im.size[0]/rate , im.size[1]/rate)) #注:此处有两个括号,thumbnail的处理对象是元组
returnimdefbatchZoomSize():
imgBatch={} #字典 {文件名:对应的处理后Image对象}#切换至源文件目录,对每张图片进行处理
os.chdir(srcpath)for filename inos.listdir(os.getcwdu()): #列举当前目录下的所有文件
postfix= os.path.splitext(filename)[1] #获取元祖 (文件名,文件后缀)if postfix == ".jpg" or postfix == ".png":
imgBatch[filename]=zoomSize(filename, postfix)#切换至目标文件目录,保存图片至目标文件夹,关闭图片文件
os.chdir(destpath)for filename inimgBatch.keys():
imgBatch[filename].save(filename)
imgBatch[filename].close()