2016-12-28 1 views
0

Ich habe eine Reihe von Bildern, die ich für etwas verwenden möchte, und es wäre sehr hilfreich, wenn ich sie alle sortieren könnte, indem ich ihnen Tags gebe, die ein Python-Skript lesen kann. Ich habe ein paar Methoden aus this StackOverflow post versucht, aber keiner von ihnen gibt die Daten zurück, die ich brauche. Hier ist, was ich versucht habe:Python - Wie Tags aus jpg EXIF-Daten auflisten?

from PIL import Image 
import PIL.ExifTags 
import exifread 

dir = "C:\directory\\" 
image = "image_name.jpg" 
image_dir = dir + image 
img = Image.open(image_dir) 

#Attempt 1 - using PIL 
exif_data = img._getexif() 

print(exif_data) 

#Attempt 2 - using exifread 
f = open(image_dir) 
tags = exifread.process_file(f) 

print(tags) 

#Attemp 3 - using PIL 
exif = { 
    PIL.ExifTags.TAGS[k]: v 
    for k, v in img._getexif().items() 
    if k in PIL.ExifTags.TAGS 
} 

print(exif) 

Die Ergebnisse sind ein bisschen lang und chaotisch (Versuch 1 kehrt ein sehr langer Wörterbuch mit einem Bündel von sich wiederholend „\ x00 \“ so werde ich nicht schreiben, dass hier):

  • Versuch 2-{'Image XPKeywords': (0x9C9E) Byte=[] @ 30, 'EXIF Padding': (0xEA1C) Undefined=[] @ 2128, 'Image ExifOffset': (0x8769) Long=2110 @ 18, 'Image Padding': (0xEA1C) Undefined=[] @ 50}
  • Versuch 3 - {'ExifOffset': 2110, 'XPKeywords': 'e\x00x\x00a\x00m\x00p\x00l\x00e\x00;\x00t\x00e\x00s\x00t\x00\x00\x00'}

Die Tags selbst sind "Beispiel" und "Test". Irgendwelche Tipps, was ich anders machen kann?

Antwort

0

Sie können versuchen, dies als Python 3-Skript auszuführen. Ich lief Ihren Versuch # 1 Code gegen

https://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg 

und es hat funktioniert, die Ergebnisse geben:

{40963: 472, 305: 'Adobe Photoshop CS Windows', 274: 1, 40962: 709, 40961: 65535, 296: 2, 34665: 164, 282: (120, 1), 283: (120, 1), 306: '2005:10:13 15:32:07'} 

Hinweis: Ich war mit Kissen, die Gabel von PIL aus - http://pillow.readthedocs.io/en/3.1.x/installation.html

Verwandte Themen