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
Aufnahme-Datum in Foto einfügen
Die EXIF-Daten bekommt man auch nur mit PIL heraus, das setzen der Daten funktioniert so natürlich nicht :
Geht bestimmt auch noch schöner ...
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:])
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.)
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 (former) Modvoice
Interessant. Sieht mit dem jpeg-Modul aber wohl doch übersichtlicher aus.fme hat geschrieben:Die EXIF-Daten bekommt man auch nur mit PIL heraus...
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.Leonidas hat geschrieben: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.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.)
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.
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.
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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: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, 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.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.
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 (former) Modvoice
Wie?Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
Stimmt!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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
``/usr/bin/env python`` oder ``/usr/bin/python`` als Pfad angeben.HWK hat geschrieben:Wie?Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Habe ich jetzt in allen meinen Scripts geändert.Leonidas hat geschrieben:``/usr/bin/env python`` oder ``/usr/bin/python`` als Pfad angeben.HWK hat geschrieben:Wie?Leonidas hat geschrieben:...aber könnte mit geringen Umstand besser gemacht werden.
Neue Programmvariante: http://paste.pocoo.org/show/30724/