Seite 1 von 1

Aufnahme-Datum in Foto einfügen

Verfasst: Montag 25. Februar 2008, 17:10
von HWK
Auf Wunsch hier mein kleines Script, um das Aufnahme-Datum eines Bildes (aus den EXIF-Daten ausgelesen) möglichst leserlich links unten in ein Foto einzufügen: http://paste.pocoo.org/show/29934/. Die EXIF-Daten bleiben dabei erhalten (Deshalb habe ich das Programm übrigens primär geschrieben).
Ich verwende das Script mittels DnD in Windows. Darum z.B. das raw_input (@Leonidas bitte nicht schimpfen. Ich kenne Deine Einstellung. Für mich ist das aber überaus nützlich.)
Außer PIL wird noch dieses JPEG-Modul benötigt: http://www.emilas.com/jpeg/download/. Momentan scheint der Link aber nicht zu funktionieren.
MfG
HWK

Verfasst: Donnerstag 28. Februar 2008, 00:21
von fme
Die EXIF-Daten bekommt man auch nur mit PIL heraus, das setzen der Daten funktioniert so natürlich nicht :

Code: Alles auswählen

import Image

def get_exif_data(file):
	image = Image.open(file)
	exif_data = image._getexif()
	exif = exif_data[36868]
#	return_dict = {'DateTimeDigitized': exif_data[36868], 'DateTimeOriginal': exif_data[37379]}
	return '%s.%s.%s %s' % (exif[8:10], exif[5:7], exif[:4], exif[-8:]) 

Geht bestimmt auch noch schöner ...

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 00:35
von Leonidas
HWK hat geschrieben:Darum z.B. das raw_input (@Leonidas bitte nicht schimpfen. Ich kenne Deine Einstellung. Für mich ist das aber überaus nützlich.)
Du kannst ja auch mein verbessertes raw_input() nehmen, dann wärs wenigstens nicht broken. An der Stelle könnte man das sogar noch umbauen, dass das Fenster automatisch zu geht wenn keine Fehler da sind. Man will ja eigentlich nicht abnicken müssen, dass alles erfolgreich war. So wie "Browser erfolgreich beendet" - OK, "Mails erfolgreich empfangen" - OK, "Startmenü erfolgreich geöffnet" - OK.

Also wenn dann würde ich wegen der seltsamen Shebang oder dem seltsamen Encoding schimpfen, oder wegen den nicht PEP8 konformen Namen schimpfen, oder den Inline-Kommentaren oder das sich die Klasse PicLabel mit dem Parsen der Argumente des Programmes beschäftigt.

Ansonsten habe ich es nicht ausprobiert, wenn die Labels gut aussehen ist es fein, aber ich habe auch die Vermutung wie bereits im anderen Thread von anderen Leuten angesprochen, dass es vermutlich einfacher und womöglich auch besser aussehen würde, das Label weiß zu umranden.

Naja, wie auch immer - vielleicht magst du ja auf einige meiner Vorschläge eingehen.

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 12:28
von HWK
fme hat geschrieben:Die EXIF-Daten bekommt man auch nur mit PIL heraus...
Interessant. Sieht mit dem jpeg-Modul aber wohl doch übersichtlicher aus.
Leonidas hat geschrieben:
HWK hat geschrieben:Darum z.B. das raw_input (@Leonidas bitte nicht schimpfen. Ich kenne Deine Einstellung. Für mich ist das aber überaus nützlich.)
Du kannst ja auch mein verbessertes raw_input() nehmen, dann wärs wenigstens nicht broken. An der Stelle könnte man das sogar noch umbauen, dass das Fenster automatisch zu geht wenn keine Fehler da sind. Man will ja eigentlich nicht abnicken müssen, dass alles erfolgreich war. So wie "Browser erfolgreich beendet" - OK, "Mails erfolgreich empfangen" - OK, "Startmenü erfolgreich geöffnet" - OK.

Also wenn dann würde ich wegen der seltsamen Shebang oder dem seltsamen Encoding schimpfen, oder wegen den nicht PEP8 konformen Namen schimpfen, oder den Inline-Kommentaren oder das sich die Klasse PicLabel mit dem Parsen der Argumente des Programmes beschäftigt.

Ansonsten habe ich es nicht ausprobiert, wenn die Labels gut aussehen ist es fein, aber ich habe auch die Vermutung wie bereits im anderen Thread von anderen Leuten angesprochen, dass es vermutlich einfacher und womöglich auch besser aussehen würde, das Label weiß zu umranden.

Naja, wie auch immer - vielleicht magst du ja auf einige meiner Vorschläge eingehen.
1. Die Diskussion mit dem Shebang gab es ja auch bereits mehrfach. Da es für mich unter Windows eher unwichtig ist, habe ich mich damit nicht besonders beschäftigt. Das kann aber jeder Linux-Anwender einfach nach seinen Bedürfnissen anpassen.
2. Unter Windows ist dieses Encoding ja durchaus geläufig. Aber auch das ist Geschmackssache. Wahrscheinlich ginge es mit UTF-8 genauso gut.
3. Ja, als ich die ersten Versionen des Programms schrieb, habe ich mich noch nicht so für PEP8 interessiert. Jetzt habe ich nur noch die Funktionalität mit der angepassten Textfarbe integriert. Den Rest habe ich einfach übernommen. :oops:
4. Das gleiche gilt für die Inline-Kommentare.
5. Stimmt! Die Kommandozeilen-Elemente sollte man eher in einer main-Routine parsen.
6. Hier hab ich's mal auf die Schnelle etwas an Deine Vorschläge angepasst: http://paste.pocoo.org/show/30469/
MfG
HWK

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 12:47
von Leonidas
HWK hat geschrieben:1. Die Diskussion mit dem Shebang gab es ja auch bereits mehrfach. Da es für mich unter Windows eher unwichtig ist, habe ich mich damit nicht besonders beschäftigt. Das kann aber jeder Linux-Anwender einfach nach seinen Bedürfnissen anpassen.
Ja, jeder Linux-Anwender. Statt dass es nur einige anpassen müssen, müssen das alles tun, weil du einen Nonstandard-Pfad angibst (naja, es ist ja nicht so schlimm, aber könnte mit geringen Umstand besser gemacht werden).
HWK hat geschrieben:2. Unter Windows ist dieses Encoding ja durchaus geläufig. Aber auch das ist Geschmackssache. Wahrscheinlich ginge es mit UTF-8 genauso gut.
Ja, UTF-8 ist nicht aufzuhalten auch unter Windows nicht. Sogar Notepad unterstützt die neuen Unicode-Zeichensätze (ich glaube aber UTF-16). Da UTF-8 in Python 3.0 sowieso Standard wird, würde ich mich hüten, da inzwischen noch irgendwas anderes zu verwenden.

Ansonsten sieht es schon mal besser aus. Aber ``error_flag`` würde ich auf jeden Fall in ``__init__`` auf False setzen, sonst krachts wenn man nicht ``execute`` ausgeführt hat.

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 13:00
von HWK
Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
Wie?
Leonidas hat geschrieben:Aber ``error_flag`` würde ich auf jeden Fall in ``__init__`` auf False setzen, sonst krachts wenn man nicht ``execute`` ausgeführt hat.
Stimmt!

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 13:06
von Leonidas
HWK hat geschrieben:
Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
Wie?
``/usr/bin/env python`` oder ``/usr/bin/python`` als Pfad angeben.

Re: Aufnahme-Datum in Foto einfügen

Verfasst: Donnerstag 28. Februar 2008, 14:26
von HWK
Leonidas hat geschrieben:
HWK hat geschrieben:
Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
Wie?
``/usr/bin/env python`` oder ``/usr/bin/python`` als Pfad angeben.
Habe ich jetzt in allen meinen Scripts geändert.
Neue Programmvariante: http://paste.pocoo.org/show/30724/