Hallo,
ich möchte eine PS (cs2) Aktion aufzeichnen, mit der die EXIF-Daten als Text übernommen werden und im Bild eingeblendet werden können. (z.B. Datum und Uhrzeit).
Ich benötige das für Versicherungsfälle.
Ist das mit PS möglich?
Gruss
Dieter
Hallo,
ich möchte eine PS (cs2) Aktion aufzeichnen, mit der die EXIF-Daten als Text übernommen werden und im Bild eingeblendet werden können. (z.B. Datum und Uhrzeit).
Ich benötige das für Versicherungsfälle.
Ist das mit PS möglich?
Gruss
Dieter
Da fällt mir im Moment nur dieses Programm ein
http://dts8888.com/vPTS/vpts.htm
Gruß
Koebes Henry
vielleicht hier ? habe es selber noch nicht probiert.
http://www.smart-script.de/
> vielleicht hier ? habe es selber noch nicht probiert.
> http://www.smart-script.de/
Das ist übler Spaghetti-Code, der nicht funktioniert und nebenbei gleich das gesamte Photoshop lahmlegt.
@OP: für Windows oder OS X? Für letzteres wäre eine Script-Lösung aus exiftool und ImageMagick denkbar.
Aber wie wende ich den Script "ExifStamp v1.1.js" in PS cs2 an?
Wohin muss ich die Datei kopieren und wie rufe ich die Funktion auf?
Fragen über Fragen ?!
Ich habe doch nicht so viel Ahnung von PS.
...habe es schon selbst herrausgefunden, aber der Script läuft bei mir auch nicht.
Dann trau ich mich hier mit einem Script aus der Deckung:
var aD = activeDocument;
var startRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
aD.artLayers.add();
aD.activeLayer.kind = LayerKind.TEXT;
// Schriftart festlegen durch die Zahl in eckigen Klammern in fonts[]
// vorher Textwerkzeug aufrufen, 1. Element in der Liste ist fonts[0]
aD.activeLayer.textItem.font = fonts[7].postScriptName;
// Textgroesse festlegen, bei Bedarf Faktor 0.01 anpassen
aD.activeLayer.textItem.size = 0.01 * Math.sqrt(aD.height.value * aD.width.value);
// Position festlegen,5% entfernt vom linken Rand und unteren Rand
aD.activeLayer.textItem.position = ([aD.width.value * 0.05, aD.height.value * 0.95]);
// info.exif[15][1] ist Datum/Zeit ohne Text "Date Time" (das ist exif[15][0])
// Date Time hat das Format 'YYYY:MM:TT hh:mm:ss', das jetzt auseinander nehmen
// substring funktioniert leider fehlerhaft, deshalb beim Datum Umweg über split
exifUhr = aD.info.exif[15][1].substring(10);
Datumteile = aD.info.exif[15][1].substring(0,10).split(":");
exifDatum = Datumteile[2] + "." + Datumteile[1] + "." + Datumteile[0];
// und nun den Text schreiben
aD.activeLayer.textItem.contents = exifDatum + " " + exifUhr;
app.preferences.rulerUnits = startRulerUnits;
Ablauf in einer Aktion:
- Script aufrufen
- Da die neu angelegte Textebene aktiv ist, ggf. über Textwerkzeug Textfarbe ändern
- Da die neu angelegte Textebene aktiv ist, ggf. über Ebene, Ebenenstil, Kontur mit 1-2 Pixel und einer z. B. weißen Farbe bei schwarzem Text das Problem mit schwarzer Schrift auf dunklem Hintergrund lösen
Funktioniert so bei mir mit CS2
Viel Spaß
> Funktioniert so bei mir mit CS2
Ich sehe 2x den Text "undefined" und dann meinen Namen. Welches der verschiedenen Datum-Tags soll Dein Script eigentlich auswerten?
Danke für den Hinweis. Beim nachträglichen Testen war mir was durcheinander geraten, hier die hoffentlich richtige Version (aD.exif.info[23] an Stelle von aD.exif.info[15]). Bei CS2, 9.02 sollte so der Inhalt des Feldes 'Datum Uhrzeit' der Kameradaten1 ausgegeben werden.
Bezug auf die Nachricht von Dr. Vo
Langsam wird es peinlich, aber dafür habe ich jetzt das Problem verstanden. Die EXIF-Informationen stehen je nach Kamera in unterschiedlichen Feldern. Bei der 5D steht Datum/Zeit in activeDocument.info.exif[23][1], bei der 300D in activeDocument.info.exif[2][1].
Zum Finden der richtigen Felder
alert(activeDocument.info.exif);
verwenden und abzählen (bei Null anfangen). Es sind immer Paare, z. B. Make, Canon; Model, EOS300D usw.