Ich suche nach einer guten exif-Manipulationsbibliothek (Exchangeable Image File Format) für Python. Ich bevorzuge Flexibilität (z. B. die Fähigkeit, proprietäre Tags von Anbietern abzurufen) gegenüber Verarbeitungsgeschwindigkeit. Was würdest du vorschlagen?
108
MakerNote
. In diesem EXIF-Tag fügen Kamerahersteller ihre eigenen Tags hinzu, die wertvolle Informationen enthalten. Sie würden also nur die grundlegenden Tags mit den meisten Bibliotheken aus den folgenden Antworten erhalten.Antworten:
Vielleicht möchten Sie sich exif-py ansehen :
oder die Python Imaging Library (PIL) :
Es gibt auch das treffend benannte pyexif: http://pyexif.sourceforge.net/
Es sieht jedoch so aus, als ob Pyexif seit einiger Zeit nicht mehr aktualisiert wurde. Sie empfehlen, wenn sie nicht den Trick machen, EXIF-py zu testen, also sollten Sie es wahrscheinlich zuerst versuchen, da ihre SourceForge-Seite in letzter Zeit einige Aktivitäten zu haben scheint , wenn auch nicht viel. Mit PIL können Sie Folgendes tun:
Haftungsausschluss :
Ich habe eigentlich keine Ahnung, was am besten ist. Genau das konnte ich mit Google zusammenstellen. :) :)
quelle
pip
! github.com/python-pillow/PillowIch habe pyexiv2 in letzter Zeit selbst verwendet und es scheint ganz gut zu meinen Bedürfnissen zu passen. Vielleicht passt es auch zu Ihnen.
quelle
Exiv2-basierte Lösungen
Exiv2 (exiv2: http://exiv2.org/ ) ist eine ausgereifte Open-Source-C ++ - Bibliothek, die das Lesen und Schreiben von Metadaten in viele Bildtypen (JPEG, PNG, TIFF und viele Rohformate) unterstützt und Standard (Xmp, IPTC) versteht und Exif) und nicht standardmäßige Metadaten ("Makernotes") und läuft auf mehreren Plattformen (Windows, Linux und mit etwas Arbeit Mac).
Python-Bindungen an exiv2 sind:
Ein Vorteil von pyexiv2 ist, dass für Python 2.7 ein Windows-Build verfügbar ist. Eine Windows-Build-Anfrage für gexiv2 finden Sie hier: https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 und die Bindungen sind alle Open Source (GPL).
quelle
pyexiv2
wurde gegabelt: py3exiv2.tuxfamily.org .Dieser Artikel beschreibt ein Python-Modul zum Schreiben von EXIF-Metadaten (und nicht nur zum Lesen) mit reinem Python. Anscheinend unterstützt weder PIL, Pyexif noch EXIF-py das Schreiben von EXIF. pyexiv2 scheint auf dem neuesten Stand und plattformspezifisch zu sein.
quelle
Verwenden Sie PIL :)
quelle
Die Seite unter http://redmine.yorba.org/projects/gexiv2/wiki (wurde zu https://wiki.gnome.org/Projects/gexiv2 ) lautet jetzt :
Daher werden sowohl Python2 als auch Python3 jetzt von GExiv2 unterstützt.
Gute Nachrichten.
quelle
Sie können sich auch die jpeg.py-Bibliothek von Gheorghe Milas unter http://www.emilas.com/jpeg/ ansehen. Diese ist eine Python-Bibliothek zum Parsen, Lesen und Schreiben von JPEG EXIF-, IPTC- und COM-Metadaten.
Ein Nachteil ist, dass er seine Domain anscheinend über DynDNS auf einer dynamischen IP hostet, sodass sie nicht immer verfügbar ist.
quelle
Irgendwie bekomme ich einen attributeError für _getexif mit Paolos Code oben. Ich benutze Python 2.6.6 und PIL 1.1.7. Ist _getexif jetzt veraltet?
Hier ist eine kleine Modifikation, die für mich funktioniert hat.
quelle
Ich fing an, meine eigene kleine Bibliothek zu schreiben, die auf dem Code in PIL basiert. Überprüfen Sie es hier .
quelle
Ich habe meine eigenen Wrapper um http://www.sno.phy.queensu.ca/~phil/exiftool/ verwendet - der Grund ist, dass es sehr vollständig ist, der Entwickler ist sehr aktiv. Und nicht alle Bildformate unterstützen zu können, ist ein absoluter Showstopper für das Projekt, für das es benötigt wird
Der Nachteil ist natürlich, dass es kein Python ist, so dass Sie wie ich Unterprozessaufrufe verwenden müssten.
quelle
Es gibt einige Beispiele von PIL und EXIF.py Verwendung ASPN
quelle
In Python 2.6 ist der Ort des Moduls anders. Benutze das:
quelle