from python python-imaging-library exif

python - from - Obtenga la fecha y hora en que se tomó la foto de los datos EXIF usando PIL



get metadata python (4)

Puedo obtener los datos EXIF ​​de una imagen usando PIL, pero ¿cómo puedo obtener la fecha y la hora en que se tomó la foto?


¿Desde el dict devuelto por _getexif () usando la clave ''DateTimeOriginal''?


Encontré la respuesta finalmente, la etiqueta que necesitaba era 36867 :

from PIL import Image def get_date_taken(path): return Image.open(path)._getexif()[36867]


Me gusta usar exif-py porque es pure-python, no requiere compilación / instalación, y funciona con python 2.xy 3.x, lo que lo hace ideal para combinarlo con pequeñas aplicaciones portátiles de python.

Enlace: https://github.com/ianare/exif-py

Ejemplo para obtener la fecha y hora en que se tomó una foto:

import EXIF with open(''image.jpg'', ''rb'') as fh: tags = EXIF.process_file(fh, stop_tag="EXIF DateTimeOriginal") dateTaken = tags["EXIF DateTimeOriginal"] return dateTaken


try: import PIL import PIL.Image as PILimage from PIL import ImageDraw, ImageFont, ImageEnhance from PIL.ExifTags import TAGS, GPSTAGS except ImportError as err: exit(err) class Worker(object): def __init__(self, img): self.img = img self.get_exif_data() self.date =self.get_date_time() super(Worker, self).__init__() def get_exif_data(self): exif_data = {} info = self.img._getexif() if info: for tag, value in info.items(): decoded = TAGS.get(tag, tag) if decoded == "GPSInfo": gps_data = {} for t in value: sub_decoded = GPSTAGS.get(t, t) gps_data[sub_decoded] = value[t] exif_data[decoded] = gps_data else: exif_data[decoded] = value self.exif_data = exif_data # return exif_data def get_date_time(self): if ''DateTime'' in self.exif_data: date_and_time = self.exif_data[''DateTime''] return date_and_time def main(): date = image.date print(date) if __name__ == ''__main__'': try: img = PILimage.open(path + filename) image = Worker(img) date = image.date print(date) except Exception as e: print(e)