Aufnahme-Datum in Foto einfügen

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Aufnahme-Datum in Foto einfügen

Beitragvon HWK » Montag 25. Februar 2008, 17:10

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
fme
User
Beiträge: 34
Registriert: Sonntag 1. April 2007, 18:58
Wohnort: Bremen

Beitragvon fme » Donnerstag 28. Februar 2008, 00:21

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 ...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Aufnahme-Datum in Foto einfügen

Beitragvon Leonidas » Donnerstag 28. Februar 2008, 00:35

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Re: Aufnahme-Datum in Foto einfügen

Beitragvon HWK » Donnerstag 28. Februar 2008, 12:28

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Aufnahme-Datum in Foto einfügen

Beitragvon Leonidas » Donnerstag 28. Februar 2008, 12:47

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Re: Aufnahme-Datum in Foto einfügen

Beitragvon HWK » Donnerstag 28. Februar 2008, 13:00

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!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Aufnahme-Datum in Foto einfügen

Beitragvon Leonidas » Donnerstag 28. Februar 2008, 13:06

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Re: Aufnahme-Datum in Foto einfügen

Beitragvon HWK » Donnerstag 28. Februar 2008, 14:26

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/

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]