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
risposta
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
Ah. Non capivo che PIL aveva una forcella Python3. Farò un tentativo e tornerò da te. –
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
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.
Il tuo link a gexiv2 sembra essere morto. –
Grazie - dovrebbe essere risolto ora –
Wow, è stato veloce! –
È 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). –