Estoy buscando una buena biblioteca de manipulación exif (formato de archivo de imagen intercambiable) para python. Prefiero la flexibilidad (por ejemplo, la capacidad de recuperar las etiquetas propietarias de los proveedores) que la velocidad de procesamiento. ¿Qué sugieres?
108
MakerNote
. En esta etiqueta EXIF, los fabricantes de cámaras agregan sus propias etiquetas que contienen información valiosa. Por lo tanto, solo obtendría las etiquetas básicas con la mayoría de las bibliotecas de las respuestas a continuación.Respuestas:
Es posible que desee consultar exif-py :
o la biblioteca de imágenes de Python (PIL) :
También está el acertadamente llamado pyexif: http://pyexif.sourceforge.net/
Sin embargo, parece que pyexif no se ha actualizado en bastante tiempo. Recomiendan que, si el suyo no funciona, verifique EXIF-py, por lo que probablemente debería probar ese primero, ya que su página de sourceforge parece tener algo de actividad últimamente, aunque no mucha. Finalmente, usando PIL puedes hacer esto:
Descargo de responsabilidad : en
realidad, no tengo idea de cuál es mejor, esto es solo lo que pude reconstruir con Google. :)
fuente
pip
! github.com/python-pillow/PillowHe estado usando pyexiv2 recientemente y parece que se adapta bastante bien a mis necesidades. Quizás también se adapte al tuyo.
fuente
Soluciones basadas en Exiv2
Exiv2 (exiv2: http://exiv2.org/ ) es una biblioteca C ++ madura y de código abierto que admite la lectura y escritura de metadatos en muchos tipos de imágenes (JPEG, PNG, TIFF y muchos formatos sin procesar), comprende estándares (Xmp, IPTC y Exif) y metadatos no estándar ("Makernotes"), y se ejecuta en múltiples plataformas (Windows, Linux y, con algo de trabajo, Mac).
Los enlaces de Python a exiv2 son:
Una ventaja de pyexiv2 es que hay una compilación de Windows disponible para python 2.7. Una solicitud de compilación de Windows para gexiv2 está aquí: https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 y los enlaces son todos de código abierto (GPL).
fuente
pyexiv2
se ha bifurcado: py3exiv2.tuxfamily.org .Este artículo describe un módulo de Python para escribir metadatos EXIF (y no solo leerlos) usando Python puro. Aparentemente, ninguno de PIL, pyexif ni EXIF-py admiten la escritura de EXIF. pyexiv2 parece ser de vanguardia y específico de la plataforma.
fuente
Utilice PIL :)
fuente
La página en http://redmine.yorba.org/projects/gexiv2/wiki (se convirtió en https://wiki.gnome.org/Projects/gexiv2 ) dice ahora :
Entonces, tanto Python2 como Python3 ahora son compatibles con GExiv2.
Buenas noticias.
fuente
También puede consultar la biblioteca jpeg.py de Gheorghe Milas en http://www.emilas.com/jpeg/ , que es "Una biblioteca de Python para analizar, leer y escribir metadatos JPEG EXIF, IPTC y COM".
Un inconveniente es que parece estar alojando su dominio en una IP dinámica a través de DynDNS, por lo que no siempre está disponible.
fuente
de alguna manera obtengo un atributoError para _getexif con el código de Paolo anterior. Estoy usando Python 2.6.6 y PIL 1.1.7. ¿_Getexif está obsoleto ahora?
Aquí hay una pequeña modificación que funcionó para mí.
fuente
Comencé a escribir mi propia pequeña biblioteca que se basa en el código de PIL. compruébalo aquí .
fuente
He estado usando mis propias envolturas en http://www.sno.phy.queensu.ca/~phil/exiftool/ - la razón es que es muy completo, el desarrollador es muy activo. Y no poder admitir casi todos los formatos de imagen es una maravilla absoluta para el proyecto para el que se necesita.
El inconveniente, por supuesto, es que no es Python, por lo que necesitaría usar llamadas a subprocesos, como yo.
fuente
Hay algunos ejemplos de uso de PIL y EXIF.py en ASPN
fuente
En Python 2.6, el lugar del módulo es diferente. Utilizar este:
fuente