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)