Exif-Daten in JPG's

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
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo,

Ich habe mir mit PIL eine kleine Funktion zum Ausschneiden von Bildabschnitten in JPG's geschrieben.

Doch das neue Bild enthält dann keine EXIF-Infos.
Wie kann ich die EXIF-Infos mit in den Ausschnitt übertragen, und gegebenfalls auch verändern?

Danke!
Gruß, Harry
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

EXIF Daten bekommst du mit exif.py...

Schau mal hier: http://www.mactricks.de/Programmieren/P ... umb_create

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo Jens,

Danke für deine Info!
Die Datei exif.py ist nicht schlecht und gibt alle Exif Informationen aus.
Allerdings habe ich darin keine Möglichkeit entdeckt Exif-Daten auch zu verändern.
Ich möchte nämlich, wie schon oben angedeutet, Bilder ausschneiden, genauer gesagt, Bilder vom 4:3-Format in das 3:2 Format umwandeln. Dabei sollen aber die Exif-Daten nicht verlorengehen, sondern angepaßt werden (z.B. die neuen Abmaße).
Vielleicht gibt es auch in dieser Richtung etwas oder jemand hat eine Idee um das selbst umzusetzen.
Normalerweise müßte man 'nur' den umgekehrten Weg der Funktionen im 'exif.py' gehen, also anstatt die Daten zu lesen sie schreiben.
Kann mir jemand dazu ein paar Tips geben, auf was man dabei achten muss?

Übrigens spuckt PIL auch Exif-Daten aus und zwar mit:

Code: Alles auswählen

imort Image
img = Image.open(path)
img.info
Allerdings habe ich keine Ahnung wie ich aus dem Resultat lesbare informationen erhalten kann. Vielleicht weiß das hier jemand?
Wäre super!
Das Resultat sieht so aus:

Code: Alles auswählen

{'exif': 'Exif\x00\x00II*\x00\x08\x00\x00\x00\n\x00\x0f\x01\x02\x00\n\x00\x00\x00 ...}
Gruß, Harry
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wenn du mit PIL die Metadaten in RAW auslesen kannst, sollte man damit eigentlich auch die Daten wieder in ein Bild schreiben können. Aber vielleicht nur für ein gerade von PIL erzeugtes Bild?!?

Oder hast du mittlerweile eine andere Lösung gefunden?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hi,

Ich habe noch eine Funktion in der Pil gefunden => img._getexif().
Sie gibt Exif-Daten in einem Dictionary, im ASCI-Format aus.
Allerdings gibt es wohl nichts in der PIL um EXIF-Daten zu editieren und neu zu setzen.
PIL speichert die Images immer ohne EXIF-Header.

Meine einzige Idee ist, den Decode-Vorgang im "Exif.py" in einen Encode-Vorgang umzuschreiben. Ich habe jedoch noch kein genaues Konzept.
Bin für Tips und Ratschläge offen!
Gruß, Harry
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

HarryH hat geschrieben:Meine einzige Idee ist, den Decode-Vorgang im "Exif.py" in einen Encode-Vorgang umzuschreiben. Ich habe jedoch noch kein genaues Konzept.
Bin für Tips und Ratschläge offen!
Das wird sicher irgendwie gehen, ist aber wahrscheinlich sehr Aufwendig... Einfacher geht's vielleicht mit irgendeinem fertigen Kommandozeilentool... Aber ich kenn da auch nix passendes.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten