2012-12-23 12 views
7

Esiste una libreria exif per Python 3.x? Sembra che ogni libreria exif in cui mi imbatto sia solo per Python 2.x. Non ho bisogno di nulla di troppo fantasia. Basta leggere i valori è sufficiente.Libreria di lettura Exif

+1

È una specie di imbroglio, ma noi chiamiamo [exiftool di Phil Harvey] (http: //www.sno.phy. queensu.ca/~phil/exiftool/) da Python usando il sottoprocesso con le opzioni '-json -fast - @ argfile'. È semplice e completo, ed è veloce quando è necessario elaborare migliaia di immagini in lotti (come facciamo noi). –

risposta

14

Opzione 1. Utilizzare pyexiv2. Vedi: pyexiv2 Bug #824440: Python 3 support Hai bisogno di boost-python per py3k e anche di applicare manualmente la patch postata alla fine del bug sopra, ma a parte questo funziona. Probabilmente il modo più semplice per essere installato e funzionante sotto l'ultima versione di Ubuntu.

Opzione 2. Usa PIL Lato negativo: questo ramo/fork non sembra essere attivamente sviluppato.

from PIL import Image 
from PIL.ExifTags import TAGS 

image = Image.open("test.jpg") 
exif = image._getexif() 
# decode exif using TAGS 

Opzione 3. Utilizzare PythonMagick

from PythonMagick import Image 

img = Image("image.jpg") 
print img.attribute("EXIF:Orientation") 

Vedi anche: Exif manipulation library for python

+0

Ah. Non capivo che PIL aveva una forcella Python3. Farò un tentativo e tornerò da te. –

+0

Puoi testare questo su questa domanda, scaricare le immagini e cercare di ottenere la descrizione di immagine. http://stackoverflow.com/questions/22173902/how-to-get-image-title-in-python-django – Clayton

5

Per riferimento, il pyexiv2 homepage ora ha un avvertimento deprecazione che punta a Gexiv2, un involucro a base GObject-introspezione intorno libexiv2 (la stessa libreria pyexiv2 esegue il wrapping) appositamente per il supporto di Python 3.x. Sfortunatamente, al momento della scrittura, l'installazione di Gexiv2 è ancora dolorosa e fino ad ora non sono riuscito a farlo funzionare su Ubuntu Precise (sembra che le librerie non siano aggiornate - probabilmente mi serve per aggirarmi su un LTS ...), quindi PIL è ancora l'opzione migliore per leggere i tag EXIF ​​in Python 3.

+0

Il tuo link a gexiv2 sembra essere morto. –

+0

Grazie - dovrebbe essere risolto ora –

+0

Wow, è stato veloce! –

Problemi correlati