1. 方法
  2. 代码

使用python读取图片的EXIF

方法

  1. 使用PIL.Image读取图片的EXIF。

  2. 使用https://pypi.python.org/pypi/ExifRead 读取图片的EXIF,得到EXIF标签(dict类型)。

代码

  1. 把a图片的EXIF复制到b图片。

    1
    2
    3
    4
    5
    6
    7
    8
    from PIL import Image

    image1_path = '1.jpg'
    image2_path = '2.jpg'
    im = Image.open(image1_path)
    exif = im.info['exif']
    im = Image.open(image2_path)
    im.save(image2_path, exif=exif)

  2. 如可以使用EXIF中图片原来的时间(DateTimeOriginal)对图片重命名:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import os
    import exifread

    def getExif(filename):
    FIELD = 'EXIF DateTimeOriginal'
    fd = open(filename, 'rb')
    tags = exifread.process_file(fd)
    fd.close()
    print('=== ', filename)
    if FIELD in tags:
    new_name = str(tags[FIELD]).replace(':', '').replace(' ', '_') + os.path.splitext(filename)[1]
    tot = 1
    while os.path.exists(new_name):
    new_name = str(tags[FIELD]).replace(':', '').replace(' ', '_') + '_' + str(tot) + os.path.splitext(filename)[1]
    tot += 1
    print(new_name)
    os.rename(filename, new_name)
    else:
    print('No {} found'.format(FIELD))

    for filename in os.listdir('.'):
    if os.path.isfile(filename):
    getExif(filename)