Anduvimos buscado en distintos sitios y así de este modo regalarte la solución para tu dilema, en caso de alguna inquietud puedes dejar la inquietud y responderemos sin falta, porque estamos para servirte.
Solución:
Puedes usar el _getexif()
método protegido de una imagen PIL.
import PIL.Image
img = PIL.Image.open('img.jpg')
exif_data = img._getexif()
Esto debería darle un diccionario indexado por etiquetas numéricas EXIF. Si desea que el diccionario esté indexado por las cadenas de nombres de etiquetas EXIF reales, intente algo como:
import PIL.ExifTags
exif =
PIL.ExifTags.TAGS[k]: v
for k, v in img._getexif().items()
if k in PIL.ExifTags.TAGS
También puede utilizar el módulo ExifRead:
import exifread
# Open image file for reading (binary mode)
f = open(path_name, 'rb')
# Return Exif tags
tags = exifread.process_file(f)
Para Python3.x y comenzando Pillow==6.0.0
, Image
Los objetos ahora proporcionan una getexif()
método que devuelve un
instancia o None
si la imagen no tiene datos EXIF.
De las notas de la versión de Pillow 6.0.0:
getexif()
se ha agregado, lo que devuelve unExif
ejemplo. Los valores se pueden recuperar y establecer como un diccionario. Al guardar JPEG, PNG o WEBP, la instancia se puede pasar como unexif
argumento para incluir cualquier cambio en la imagen de salida.
Como se indicó, puede iterar sobre el keypares de valores de Exif
instancia como un diccionario regular. los keys son enteros de 16 bits que se pueden asignar a sus string nombres usando el ExifTags.TAGS
módulo.
from PIL import Image, ExifTags
img = Image.open("sample.jpg")
img_exif = img.getexif()
print(type(img_exif))
#
if img_exif is None:
print('Sorry, image has no exif data.')
else:
for key, val in img_exif.items():
if key in ExifTags.TAGS:
print(f'ExifTags.TAGS[key]:val')
# ExifVersion:b'0230'
# ...
# FocalLength:(2300, 100)
# ColorSpace:1
# ...
# Model:'X-T2'
# Make:'FUJIFILM'
# LensSpecification:(18.0, 55.0, 2.8, 4.0)
# ...
# DateTime:'2019:12:01 21:30:07'
# ...
Probado con Python 3.8.8 y Pillow==8.1.0
.
Sección de Reseñas y Valoraciones
Si te gusta el asunto, tienes la opción de dejar una crónica acerca de qué le añadirías a este tutorial.