JPG-Dateien - Attribute ändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hein_nieH
User
Beiträge: 18
Registriert: Dienstag 24. Januar 2012, 13:21
Wohnort: Rostock

Hallo,

für mein Fotoarchiv möchte ich ein kleines Verwaltungsprogramm in Python erstellen.
Hierbei möchte ich auch die Attribute:
- Titel,
- Thema,
- Autor,
- Stichworte und
- Kommentare
lesen und ändern können.
Ich habe bereits mit dem Modul pyexiv2 Versuche unternommen.
Attribute lesen funktioniert. Leider funktioniert das Schreiben/Ändern in diese Dateiattribute nicht.
Die Durcharbeit des Tutorials führte auch nicht zum Erfolg.
Beim Lesen werden die o.g. Dateiattribute als Bytefolge ausgegeben, siehe Ausgabe

Code: Alles auswählen

<Exif.Image.XPTitle [Byte] = 84 0 101 0 115 0 116 0 95 0 84 0 105 0 116 0 101 0 108 0 0 0>
<Exif.Image.XPComment [Byte] = 84 0 101 0 115 0 116 0 95 0 75 0 111 0 109 0 109 0 101 0 110 0 116 0 97 0 114 0 0 0>
<Exif.Image.XPAuthor [Byte] = 84 0 101 0 115 0 116 0 95 0 65 0 117 0 116 0 111 0 114 0 0 0>
<Exif.Image.XPKeywords [Byte] = 84 0 101 0 115 0 116 0 95 0 83 0 116 0 105 0 99 0 104 0 119 0 111 0 114 0 116 0 0 0>
<Exif.Image.XPSubject [Byte] = 84 0 101 0 115 0 116 0 95 0 84 0 104 0 101 0 109 0 97 0 0 0>
Beim Schreiben in die Attribute erfolgt nichts, d.h. wenn ich nach dem Skriptdurchlauf mir die Eigenschaften der Jpg-Datei im Explorer ansehe,
bleiben die o.g. Attribute unverändert.
Mein Skript läuft ohne Fehlermeldung, d.h. das Schreiben in die Dateiattribute wird ignoriert.

Hier mein Quellcode:

Code: Alles auswählen

from pyexiv2 import ImageMetadata

inFile=r"Test_Image.jpg"
metadata = ImageMetadata(inFile)
metadata.read()

for x in metadata.exif_keys:
    key=x
    print metadata[key]
metadata['Exif.Image.XPTitle'].value="Bla Bla Bla" # funktioniert nicht
metadata.write()
Kann mir jemand eine gangbare Lösung anbieten? Es muss nicht unbedingt das Modul pyexiv2 sein.
Ich nutze Python 2.6 unter Windows XP.
Zugegeben, mein Python-Kenntnisstand bewegt sich noch auf dem Einsteigerniveau.

Für eine Lösung bin ich sehr dankbar.
Gruss Hein
theo.puke
User
Beiträge: 17
Registriert: Samstag 21. Januar 2012, 16:17

1. Warum weist du in der forschleife "x" , "key" zu?. Schreib am besten:

Code: Alles auswählen

print metadata[x]
Oder bennen x in key um!

2. Woher hast du Das Exif.Image.XPTitle her??? In der Documentation (http://tilloy.net/dev/pyexiv2/tutorial.html steht nichts von Exif.Image.XPTitle. Vielleicht meinst du: "Exif.Image.ImageDescription".

Hoffe ich konnte helfen
Antworten