Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

psp9 script mit python - datum

Frage Entwicklung Python

Mitglied: yashi

yashi (Level 1) - Jetzt verbinden

05.04.2006, aktualisiert 11.05.2006, 7921 Aufrufe, 7 Kommentare

Hallo.

Ich bräuchte mal bisschen Hilfe mit der Formatierung eines Datums (stammt aus einer jpeg EXIF)
Da dieses Unterforum aber bis jetzt ungenutzt blieb, vermute ich mal, dass hier weder jemand lesen wird, noch Ideen für Lösungswege posten wird.
Naja versuchen kann man es ja trozdem.

Also falls jemand Ahnung hat:

Ich möchte den string:
2006:04:05 21:40:26
nach
05.04.06
konvertieren.
[Python script für Paint Shop Pro.]


mfg
Mitglied: Dani
05.04.2006 um 21:55 Uhr
G' Abend,
was hast du den genau vor. Ne Beschreibung wäre net schlecht -> sprich für was soll das gut sein. Darf es auch in anderen Sprache sein??

Schönen Abend...


Gruß
Dani
Bitte warten ..
Mitglied: yashi
06.04.2006 um 12:39 Uhr
Juhu eine Antwort


Also falls du Paint Shop Pro 9 kennst - der lässt sich auch (zb bei Stapelverarbeitung) mit einem Python-Script steuern. Und eben so ein Script versuche ich für automatische Datumsstempel zu schreiben. Eine andere Sprache ist nicht möglich da
  1. PSP9 nur Python akzeptiert
  2. man sonst ein Prog schreiben müsste, welches Bildbearbeitung & Einfügen von Text ins Bild drauf hat

Bis jetzt erzeugt mein Script zwar 'nen Stempel, der aber leider genau so wie der Text in der EXIF-info der jpg aussieht. Also eben englisches Datum + Zeit. Wenn man den Text nun formatieren könnte, wär mein Script brauchbar:
2006:04:05 21:40:26
nach
05.04.06

Den String holt sich das Script also schon erfolgreich aus der EXIF (Metadaten einer jpg)
(Quellcode siehe ganz unten)
In der Zeile
01.
CaptionDate = ImageInfo['ExifOriginalDate']
wird der String in eine Variable geschrieben. Nun habe ich mir sowas in der Art wie
datestrn(ImageInfo['ExifOriginalDate'])
oder so vorgestellt. Keine Ahnung wie man eine Variable vom Typ "Datum" anlegt (hab mir ja auch nur alles aus anderen Quellcodes zusammen gesetzt
)
Eine einfache Formatierung des Strings wäre auch denkbar (zb nur die ersten 10 Zeichen)
Naja mein Problem müsste zu 100% mit Python lösbar sein.

Ich hoffe es war verständlich erklärt und ihr könnt helfen (müsste sonst ca 380 Fotos von Hand beschriften -.-)
mfg, yashi



EXIF-Datestamp.PspScript:
01.
from JascApp import * 
02.
import string 
03.
import JascUtils 
04.
 
05.
def ScriptProperties(): 
06.
    return { 
07.
        'Author': u'Jasc Software, Zeromotion', 
08.
        'Copyright': u'Copyright (c) 2002-2004 Jasc Software, Inc.  All rights reserved.', 
09.
        'Description': u"EXIF-Datestamp unten rechts.", 
10.
        'Host': u'Paint Shop Pro 9', 
11.
        'Host Version': u'9.00', 
12.
13.
 
14.
NoEXIFData = u"Auf dem aktuell ausgewählten Bild wurden keine EXIF-Daten gefunden." 
15.
CaptionFontName = u"Arial" 
16.
 
17.
 
18.
def Do(Environment): 
19.
 
20.
    if JascUtils.RequireADoc( Environment ) == App.Constants.Boolean.false: 
21.
        return 
22.
 
23.
     
24.
    # first extract the EXIF data - if we can't find any just return without changing the image 
25.
    ImageInfo = App.Do( Environment, 'ReturnImageInfo', {'GeneralSettings': {'Version': ((9,0,0),1) }} ) 
26.
    if ImageInfo['ExifOriginalDate'] == '': 
27.
        App.Do(Environment,  'MsgBox', { 
28.
                'Buttons': App.Constants.MsgButtons.OK,  
29.
                'Icon': App.Constants.MsgIcons.Stop,  
30.
                'Text': NoEXIFData, 
31.
                'GeneralSettings': {'Version': ((9,0,0),1) } 
32.
                }) 
33.
        return 
34.
 
35.
 
36.
    # save any existing selection 
37.
    SelSaver = JascUtils.SaveSelection( Environment, App.TargetDocument ) 
38.
     
39.
    CaptionDate = ImageInfo['ExifOriginalDate'] 
40.
 
41.
    # Figure out how big the text should be by examining the overall image size.  We'll do a rough 
42.
    # scale based on 1000 pixels.  We won't paint text less than 16 point in any event. 
43.
    ImageMaxDimension = max(App.TargetDocument.Width, App.TargetDocument.Height) 
44.
    TextScaleFactor = max(0.25, float(ImageMaxDimension) / 800.0) 
45.
    TextSize = int(16.0 * TextScaleFactor) 
46.
  
47.
    # now place the text - use right justification at the lower right corner of the image. 
48.
    # we are placing 16 pixel text, so to leave some room for leading we place the first 
49.
    # line of text 24 pixels up from the bottom 
50.
    TextPlacementLine1 = (App.TargetDocument.Width - 4 * TextScaleFactor, App.TargetDocument.Height - (24 * TextScaleFactor)) 
51.
    App.Do( Environment, 'TextEx', { 
52.
            'Visibility': True,  
53.
            'CreateAs': App.Constants.CreateAs.Selection,  
54.
            'Start': TextPlacementLine1,  
55.
            'TextFlow': App.Constants.TextFlow.HorizontalDown,  
56.
            'TextType': App.Constants.TextType.TextBase,  
57.
            'AutoKern': True,  
58.
            'Kerning': 0,  
59.
            'Tracking': 0,  
60.
            'Leading': 0,  
61.
            'Font': CaptionFontName,  
62.
            'PointSize': TextSize,  
63.
            'Italic': False,  
64.
            'Bold': False,  
65.
            'Underline': False,  
66.
            'Strikethru': False,  
67.
            'AntialiasStyle': App.Constants.AntialiasEx.Smooth,  
68.
            'WarpText': True,  
69.
            'SetText': App.Constants.Justify.Right,  
70.
            'Fill': None,  
71.
            'Stroke': None,  
72.
            'LineWidth': 0,  
73.
            'Join': App.Constants.JointStyle.Miter,  
74.
            'MiterLimit': 10,  
75.
            'Characters': CaptionDate,  
76.
            'Strings': None,  
77.
            'TextTarget': (0,0,[1],False),  
78.
            'PathTarget': None,  
79.
            'GeneralSettings': { 
80.
                'ExecutionMode': App.Constants.ExecutionMode.Default,  
81.
                'AutoActionMode': App.Constants.AutoActionMode.Match,  
82.
                'Version': ((9,0,0),1) 
83.
84.
            }) 
85.
 
86.
    # Negativbild 
87.
    App.Do( Environment, 'NegativeImage', { 
88.
            'GeneralSettings': { 
89.
                'ExecutionMode': App.Constants.ExecutionMode.Default,  
90.
                'AutoActionMode': App.Constants.AutoActionMode.Match,  
91.
                'Version': ((9,0,0),1) 
92.
93.
            }) 
94.
 
95.
    # restore the original selection 
96.
    SelSaver.RestoreSelection() 
97.
 
Bitte warten ..
Mitglied: yashi
06.04.2006 um 13:59 Uhr
Hmm...

Hab beim Mittag nochmal drüber nachgedacht. Also wenn ich ne andere Sprache zur Verfügung hätte, würde es ja ganz einfach gehen. ZB. könnte man in eine Batch schreiben:
01.
set "dtmstr=2006:04:05 21:40:26" 
02.
set "dtmstr=%dtmstr:~2%" 
03.
for /f "tokens=1-3 delims=: " %%a in ("%dtmstr%") do echo %%c.%%b.%%a
und man bekommt "05.04.06" Aber wie gesagt - das Problem mit der Bildbearbeitung besteht ja. Um mein Anliegen nun einfacher zu formulieren:
Wenn jemand die paar Zeilen oben nach PYTHON übersetzen könnte, wäre mein Problem gelöst.


mfg
Bitte warten ..
Mitglied: yashi
07.04.2006 um 13:14 Uhr
OK.
Ich habe es jetzt selber gelöst. Danke für eure Aufmerksamkeit. (das soll jetzt nich zynisch klingen oder so ^^)
Hab die Seite vom Python Projekt studiert und folgende Lösung entwickelt:
01.
    CaptionDate = ImageInfo['ExifOriginalDate'].replace( ':', ' ' ) 
02.
    CaptionDate = CaptionDate[8:10] + '.' + CaptionDate[5:7] + '.' + CaptionDate[2:4]
Geht bestimmt auch einfacher.
Bitte warten ..
Mitglied: simba
08.05.2006 um 14:38 Uhr
naja der Weg ist doch perfekt, einzig, dass du auf das replace verzichten kannst.


01.
string  = "2006:04:05 21:40:26" 
02.
date    = string[8:10] + '.' + string[5:7] + '.' + string[:4]  # ggf das letzte als string[2:4] wennde nur 2 stellige Jarheszahl haben willst
tuts auch schon

greetz
simba
Bitte warten ..
Mitglied: yashi
10.05.2006 um 11:45 Uhr
Hallo simba.

Ja, ursprünglich sah mein code auch so aus. Da aber entweder meine PSP9 console oder mein Python die Doppelpunkte als Steuerzeichen erkannt haben, musste ich sie durch Leerzeichen ersetzen. Der String wurde immer beim ersten ":" abgeschnitten. Also so:

"2006

Klingt komisch, ich weiß. Kann es mir auch nicht erklären.
Bitte warten ..
Mitglied: simba
11.05.2006 um 00:45 Uhr
Hmm in der Tat komisch, aber offensichtlich auch schon gelöst ;)


falls es hart auf hart kommt und die Strings mal nicht als Listen ansprechen kannst aus Gründen die mir gerade nicht einfallen wäre auch ein

01.
string  = "2006:04:05 21:40:26" 
02.
date, dummy = string.split(' ') 
03.
jahr, monat, tag = date.split(':') 
04.
tolles_datum = tag + '.' + monat + '.' + jahr
denkbar. quasi die java Variante mit Einbringung der tollen python Mehrfachzuweisung ;)

Viele Wege führen nach Rom


cheers
simba
Bitte warten ..
Ähnliche Inhalte
Python
Python Entwicklungsumgebung für Scripten
Frage von istike2Python1 Kommentar

Hallo, kennt jemand ein effizientes Framework für Python-Entwicklung? Es müsste eher "lightweight" sein, da ich es vor Allem für ...

Python
Python Scripts ausführbar machen
gelöst Frage von istike2Python2 Kommentare

Hallo, ich müsste mich in den nächsten Wochen mit Python Scripts herumschlagen. Mein erstes "Hello, World" ist erfolgreich durchgelaufen. ...

Server
Bash, Perl, Python Scripts in Großkunden-Rechenzentren
Frage von istike2Server1 Kommentar

Hallo, setzt jemand aktiv in Kundensystemen Perl, Bash und Python-Scripten ein? Ich hätte hier ein Projekt, wo ich 1-2 ...

Python
Python 3.4 - Script per Funktion beenden
gelöst Frage von AndyAhPython1 Kommentar

Hi NG, ich möchte gern ein Python3-Script über eine Funktion beenden, um die Möglichkeit zu haben, noch Dateien zu ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 17 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 22 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 22 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
gelöst Frage von prodriveNetzwerkmanagement12 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...