2012-12-23 7 views
7

Czy istnieje biblioteka exif dla Pythona 3.x? Wygląda na to, że każda biblioteka exif, na którą działam, jest przeznaczona tylko dla Pythona 2.x. Nie potrzebuję niczego zbyt wymyślnego. Wystarczy odczytać wartości.Biblioteka do czytania Exif

+1

To trochę oszustwo, ale nazywamy [exiftool Phila Harveya] (http: //www.sno.phy. queensu.ca/~phil/exiftool/) z Pythona za pomocą podprocesu z opcjami '-json -fast - @ argfile'. Jest to proste i kompletne, i jest szybkie, gdy trzeba przetworzyć tysiące obrazów w partiach (tak jak my). –

Odpowiedz

14

Opcja 1. Użyj pyexiv2. Zobacz: pyexiv2 Bug #824440: Python 3 support Potrzebujesz boost-python dla py3k, a także ręcznie zastosować poprawkę opublikowaną na końcu powyższego błędu, ale poza tym działa. Prawdopodobnie najłatwiej dostać się do pracy pod najnowszym Ubuntu.

Opcja 2. Używanie Wadą: ta gałąź/widelec nie jest aktywnie rozwijana.

from PIL import Image 
from PIL.ExifTags import TAGS 

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

Opcja 3. Użyj PythonMagick

from PythonMagick import Image 

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

Patrz także: Exif manipulation library for python

+0

Ah. Nie zdawałem sobie sprawy, że PIL ma widelec Python3. Dam ci spróbować i wrócę do ciebie. –

+0

Czy możesz przetestować to na tym Pytanie, pobrać obrazy i spróbować uzyskać ImageDescription. http://stackoverflow.com/questions/22173902/how-to-get-image-title-in-python-django – Clayton

5

Dla porównania, pyexiv2 homepage ma teraz ostrzeżenie Deprecation który wskazuje Gexiv2, wrapper gobject-introspekcja oparte wokół libexiv2 (ta sama biblioteka Pyexiv2 wraps) specjalnie w celu obsługi Pythona 3.x.

Niestety, w chwili pisania tego tekstu instalacja Gexiv2 jest nadal bolesna i do tej pory nie mogłem jej uruchomić na Ubuntu Precise (wygląda na to, że biblioteki są przestarzałe - prawdopodobnie słusznie mi się kręci na LTS ...), więc PIL jest nadal najlepszą opcją do czytania znaczników EXIF ​​w Pythonie 3.

+0

Twój link do gexiv2 wydaje się być martwy. –

+0

Dzięki - należy teraz naprawić –

+0

Wow, to było szybkie! –