Frage Wie lese ich in Python die Exif-Daten für ein Bild?


Ich benutze PIL. Wie mache ich die EXIF-Daten zu einem Wörterbuch von Sachen?


75
2018-01-21 23:27


Ursprung


Antworten:


Versuche dies:

import PIL.Image
img = PIL.Image.open('img.jpg')
exif_data = img._getexif()

Dies sollte Ihnen ein Wörterbuch geben, das durch EXIF-numerische Tags indiziert wird. Wenn Sie möchten, dass das Wörterbuch nach den Zeichenfolgen des tatsächlichen EXIF-Tags indexiert wird, versuchen Sie Folgendes:

import PIL.ExifTags
exif = {
    PIL.ExifTags.TAGS[k]: v
    for k, v in img._getexif().items()
    if k in PIL.ExifTags.TAGS
}

120
2018-01-22 00:21



Sie können auch die ExifLesen Modul:

import exifread
# Open image file for reading (binary mode)
f = open(path_name, 'rb')

# Return Exif tags
tags = exifread.process_file(f)

23
2017-08-02 23:08



Ich benutze das:

import os,sys
from PIL import Image
from PIL.ExifTags import TAGS

for (k,v) in Image.open(sys.argv[1])._getexif().iteritems():
        print '%s = %s' % (TAGS.get(k), v)

oder um ein bestimmtes Feld zu erhalten:

def get_field (exif,field) :
  for (k,v) in exif.iteritems():
     if TAGS.get(k) == field:
        return v

exif = image._getexif()
print get_field(exif,'ExposureTime')

13
2017-11-28 10:14