Je recherche une bonne bibliothèque de manipulation exif (Exchangeable Image File Format) pour python. Je préfère la flexibilité (par exemple, la capacité de récupérer les balises propriétaires des fournisseurs) à la vitesse de traitement. Que suggérerais-tu?
108
MakerNote
. Dans cette balise EXIF, les fabricants d'appareils photo ajoutent leurs propres balises contenant des informations précieuses. Ainsi, vous n'obtiendrez que les balises de base avec la plupart des bibliothèques à partir des réponses ci-dessous.Réponses:
Vous voudrez peut-être consulter exif-py :
ou la bibliothèque d'imagerie Python (PIL) :
Il y a aussi le bien nommé pyexif: http://pyexif.sourceforge.net/
Cependant, il semble que pyexif n'ait pas été mis à jour depuis un certain temps. Ils recommandent si le leur ne fait pas l'affaire pour vérifier EXIF-py, donc vous devriez probablement essayer celui-là d'abord, car leur page sourceforge semble y avoir une activité ces derniers temps, mais pas beaucoup. Enfin, en utilisant PIL, vous pouvez faire ceci:
Avertissement :
je n'ai aucune idée de ce qui est le mieux, c'est exactement ce que j'ai pu reconstituer avec Google. :)
la source
pip
! github.com/python-pillow/PillowJe me sers de pyexiv2 moi - même récemment, et il semble répondre à mes besoins tout à fait bien. Peut-être que cela conviendra également au vôtre.
la source
Solutions basées sur Exiv2
Exiv2 (exiv2: http://exiv2.org/ ) est une bibliothèque C ++ mature et open source qui prend en charge la lecture et l'écriture de métadonnées dans de nombreux types d'images (JPEG, PNG, TIFF et de nombreux formats bruts), comprend la norme (Xmp, IPTC et Exif) et des métadonnées non standard («Makernotes»), et fonctionne sur plusieurs plates-formes (Windows, Linux et, avec un peu de travail, Mac).
Les liaisons Python à exiv2 sont:
L'un des avantages de pyexiv2 est qu'il existe une version Windows disponible pour python 2.7. Une demande de build Windows pour gexiv2 est ici: https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 et les liaisons sont toutes open source (GPL).
la source
pyexiv2
a été forké: py3exiv2.tuxfamily.org .Cet article décrit un module Python permettant d'écrire des métadonnées EXIF (et pas seulement de les lire) à l'aide de Python pur. Apparemment, aucun de PIL, pyexif, ni EXIF-py ne prend en charge l'écriture EXIF. pyexiv2 semble être à la pointe de la technologie et spécifique à la plate-forme.
la source
Utilisez PIL :)
la source
La page à http://redmine.yorba.org/projects/gexiv2/wiki (devenue https://wiki.gnome.org/Projects/gexiv2 ) se lit maintenant :
Ainsi, Python2 et Python3 sont désormais pris en charge par GExiv2.
Bonnes nouvelles.
la source
Vous pouvez également consulter la bibliothèque jpeg.py de Gheorghe Milas à l' adresse http://www.emilas.com/jpeg/ , qui est «Une bibliothèque python pour analyser, lire et écrire des métadonnées JPEG EXIF, IPTC et COM».
Un inconvénient est qu'il semble héberger son domaine sur une IP dynamique via DynDNS, donc ce n'est pas toujours disponible.
la source
d'une manière ou d'une autre, j'obtiens une erreur attributeError pour _getexif avec le code de Paolo ci-dessus .. J'utilise Python 2.6.6 et PIL 1.1.7. _Getexif est-il obsolète maintenant ??
Voici une petite modification qui a fonctionné pour moi.
la source
J'ai commencé à écrire ma propre petite bibliothèque basée sur le code en PIL. vérifiez-le ici .
la source
J'ai utilisé mes propres wrappers autour de http://www.sno.phy.queensu.ca/~phil/exiftool/ - la raison en est qu'il est très complet, le développeur est très actif. Et ne pas être en mesure de prendre en charge presque tous les formats d'image est un véritable coup d'arrêt pour le projet pour lequel il est nécessaire
L'inconvénient est bien sûr que ce n'est pas python, vous devrez donc utiliser des appels de sous-processus, comme je le fais.
la source
Il existe quelques exemples d'utilisation de PIL et EXIF.py sur ASPN
la source
Dans Python 2.6, la place du module est différente. Utilisez ceci:
la source