JPG-Dateien - Attribute ändern
Verfasst: Mittwoch 25. Januar 2012, 10:06
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
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:
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
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>
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()
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