数码相机照片+日期

来源:互联网 发布:vs2013能开发php么 编辑:程序博客网 时间:2024/04/30 03:34

过年期间,照片好多,没有打印日期功能,用python试试

# -*- coding:cp936 -*-
#"""读出当前目录下的照片文件中的exif信息,把日期打印在照片上,另存为xxx.date.jpg"""
import glob,Image,ExifTags,ImageDraw,ImageFont

def get_filelist(dir=None):
 """获取文件list
    参数:目录
    返回:文件list"""
 if dir==None:
  filelist=glob.glob("*.jpg")
 else:
  filelist=glob.glob(dir+"//*.jpg")
 return filelist

def read_exif(file):
 """获取exif的日期信息
    参数:文件
    返回:日期"""
 im = Image.open(file)
 rawexif = im._getexif()
 if rawexif==None:
  print file,"无exif信息"
  return
 for k in rawexif:
  if ExifTags.TAGS.get(k,0)=="DateTimeOriginal":
   return rawexif[k]

def print_date(date,file):
 """在照片上打印日期信息
    参数:date(日期) file(照片文件)
    返回:无"""
 if date==None:
  return
 date=date[0:10]
 date=date.replace(":",".")
 im = Image.open(file)
 draw=ImageDraw.Draw(im)
 font=ImageFont.truetype(r"c:/windows/fonts/arial.ttf",20)
 draw.setfont(font)
 color=(0,255,0)
 position=(im.size[0]-110,im.size[1]-22)
 draw.text(position,date,fill=color)
 newfile=file[:-4]+"."+date+".jpg"
 im.save(newfile)
 print file,"--->",newfile

filelist=get_filelist()
for file in filelist:
 date=read_exif(file)
 print_date(date,file)

raw_input("工作结束,按回车键退出...")

参考链接:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/362879

http://blog.seety.org/everydaywork/tags/76/

原创粉丝点击