viernes, 24 de octubre de 2014

Pyexiv2.- Extrayendo Metadatos EXIF En Python

En la entrada de ayer vimos una herramienta para limpiar los metadatos de diferentes tipos de archivo. Además, os dije que tenia ganas de ver como podía montarme un script propio para este tema. Así que esta mañana me he estado dando de cabezazos con diferentes librerías hasta que he encontrado Pyexiv2.


Por lo que he leído en la documentación con esta librería seria muy fácil limpiar archivos que utilicen el formato EXIF. Yo me he montado un miniscript funcional para entender como funciona la librería y ver lo que es capaz de extraer antes de borrar. 

from pyexiv2 import ImageMetadata, ExifTag

image = ImageMetadata(raw_input("Foto: "))
image.read()
for item in image.exif_keys: 
tag = image[item]
print tag

Esto es facil si antes hemos hecho una lectura de la documentación de Pyexiv2: 
Con image =  ImageMetadata() y image.read() cargamos el archivo que nosotros queramos. 

Si os miráis la documentación image,exif_keys revela todas la lista de Exif tags que podemos mirar en una imagen. 

Lista de Tags: 

  • metadata.exif_keys:
    • ['Exif.Image.ImageDescription','Exif.Image.XResolution', 'Exif.Image.YResolution', 'Exif.Image.ResolutionUnit', 'Exif.Image.Software', 'Exif.Image.DateTime', 'Exif.Image.Artist', 'Exif.Image.Copyright', 'Exif.Image.ExifTag', 'Exif.Photo.Flash', 'Exif.Photo.PixelXDimension', 'Exif.Photo.PixelYDimension']
Por lo tanto, si tenemos una lista podemos utilizar un bucle for para que por cada objeto de la lista nos imprima el nombre del objeto llamado tag y el valor.  

for item in image.exif_keys: 
tag = image[item]
print tag

Haciendo la prueba he elegido la siguiente imagen, la cual posee muchísimos metadatos.


Bingo así que tenemos toda la información de los metadatos de la foto con su versión de sistema operativo, marca, resoluciones, etc.


Para mañana he de mirar como eliminar toda esta información y a ponerme un poco al día con el formato EXIF.

Sed Buenos ;) 

No hay comentarios:

Publicar un comentario