Seite 4 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 31 bis 40 von 42

Thema: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

  1. #31

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???
    Thread-Eröffner

    SORRY!!!


    ... und hier nocheinmal - der sollte laufenbei der 30D


    -------------------------------------------------------------------

    // Datumteile = dokname.info.exif[12][1]. - für EOS 300D
    // Datumteile = dokname.info.exif[14][1]. - für EOS 30D
    // Datumteile = dokname.info.exif[16][1]. - für NIKON COOLPIX 5600 / OLYMPUS D100



    {
    dokname = app.activeDocument;


    //Hier wird das Aktions-Fenster erstellt
    var fenster = new Window('dialog', 'EXIF-Datum',[100,100,310,550]);
    fenster.zeit_check = fenster.add('checkbox',[20,60,150,80],'Datum/Uhrzeit');

    //Laden der Einstellungen
    datei = new File("~/exifparameter.txt");
    //laden()






    {

    //Einheiten abspeichern

    alteEinheiten = app.preferences.rulerUnits
    app.preferences.rulerUnits = Units.INCHES;

    //Geschuezte Ebenen ensperren

    var ebenenanzahl = app.activeDocument.layers.length
    var ebeneunten = app.activeDocument.layers[ebenenanzahl-1];

    if(ebeneunten.isBackgroundLayer)
    {
    ebeneunten.duplicate(ebeneunten,ElementPlacement.P LACEBEFORE);
    ebeneunten.remove()
    var ebenenanzahl = app.activeDocument.layers.length
    var ebeneunten = app.activeDocument.layers[ebenenanzahl-1];
    }

    // Erkennen der Dokumentengroesse und auslesen der Bilderhoehe, Festlegen der Farbe

    var aufloesung = dokname.resolution;
    var dokhoehe = dokname.height;
    var dokbreite = dokname.width;
    if(dokname.height >= dokname.width)
    {
    quer = dokname.height;
    hoch = dokname.width;
    }
    else {
    quer = dokname.width;
    hoch = dokname.height;
    }
    textfarbe = new SolidColor;
    textfarbe.rgb.red = 80;
    textfarbe.rgb.green = 80;
    textfarbe.rgb.blue = 80;




    //Hier wird der Text erstellt
    var textgroesse = hoch * 0.03 * 72
    exifebene = dokname.artLayers.add();
    exifebene.kind = LayerKind.TEXT;
    textinhalt = exifebene.textItem;
    textinhalt.justification = Justification.RIGHT
    textinhalt.position = ([quer * 0.971, hoch * 0.971]);
    textinhalt.color = textfarbe;
    textinhalt.size = textgroesse;
    textinhalt.font = fonts[6].postScriptName;

    //Abfragen der EXIF-Daten
    exif_daten = dokname.info.exif
    exif_wert = '';
    textinhalt.contents = ""

    //Datum und Uhrzeit

    {
    finde_exif("Date Time");
    zeit = exif_wert;
    alter_text = textinhalt.contents
    Datumteile = dokname.info.exif[14][1].substring(0,10).split(":");
    textinhalt.contents = Datumteile[2] + "." + Datumteile[1] + "." + Datumteile[0];
    exif_wert = '';
    }
    }
    //Funktion zum Auslesen der EXIF Daten

    function finde_exif(exif_feld)
    {
    for(i = 0; i < exif_daten.length; i++)
    {
    if(exif_feld == exif_daten[i][0])
    {
    exif_wert = exif_daten[i][1];
    }
    }
    }

    //Funktion zum automatischen Speichern der EInstellungen

    function speichern()
    {

    par1 = fenster.zeit_check.value;
    datei.open('w');
    datei.write ("S"+par1+"%$");
    datei.close();
    }
    }





    //Ist ein Bild geoeffnet
    if(app.documents.length)
    {
    dokname = app.activeDocument;


    //Hier wird das Aktions-Fenster erstellt
    var fenster = new Window('dialog', 'EXIF-Datum',[100,100,310,550]);
    fenster.zeit_check = fenster.add('checkbox',[20,60,150,80],'Datum/Uhrzeit');

    //Laden der Einstellungen
    datei = new File("~/exifparameter.txt");
    //laden()






    {

    //Einheiten abspeichern

    alteEinheiten = app.preferences.rulerUnits
    app.preferences.rulerUnits = Units.INCHES;

    //Geschuezte Ebenen ensperren

    var ebenenanzahl = app.activeDocument.layers.length
    var ebeneunten = app.activeDocument.layers[ebenenanzahl-1];

    if(ebeneunten.isBackgroundLayer)
    {
    ebeneunten.duplicate(ebeneunten,ElementPlacement.P LACEBEFORE);
    ebeneunten.remove()
    var ebenenanzahl = app.activeDocument.layers.length
    var ebeneunten = app.activeDocument.layers[ebenenanzahl-1];
    }

    // Erkennen der Dokumentengroesse und auslesen der Bilderhoehe, Festlegen der Farbe

    var aufloesung = dokname.resolution;
    var dokhoehe = dokname.height;
    var dokbreite = dokname.width;
    if(dokname.height >= dokname.width)
    {
    quer = dokname.height;
    hoch = dokname.width;
    }
    else {
    quer = dokname.width;
    hoch = dokname.height;
    }
    textfarbe = new SolidColor;
    textfarbe.rgb.red = 240;
    textfarbe.rgb.green = 110;
    textfarbe.rgb.blue = 50;




    //Hier wird der Text erstellt
    var textgroesse = hoch * 0.03 * 72
    exifebene = dokname.artLayers.add();
    exifebene.kind = LayerKind.TEXT;
    textinhalt = exifebene.textItem;
    textinhalt.justification = Justification.RIGHT
    textinhalt.position = ([quer * 0.97, hoch * 0.97]);
    textinhalt.color = textfarbe;
    textinhalt.size = textgroesse;
    textinhalt.font = fonts[6].postScriptName;

    //Abfragen der EXIF-Daten
    exif_daten = dokname.info.exif
    exif_wert = '';
    textinhalt.contents = ""

    //Datum und Uhrzeit

    {
    finde_exif("Date Time");
    zeit = exif_wert;
    alter_text = textinhalt.contents
    Datumteile = dokname.info.exif[14][1].substring(0,10).split(":");
    textinhalt.contents = Datumteile[2] + "." + Datumteile[1] + "." + Datumteile[0];
    exif_wert = '';
    }
    }
    //Funktion zum Auslesen der EXIF Daten

    function finde_exif(exif_feld)
    {
    for(i = 0; i < exif_daten.length; i++)
    {
    if(exif_feld == exif_daten[i][0])
    {
    exif_wert = exif_daten[i][1];
    }
    }
    }

    //Funktion zum automatischen Speichern der EInstellungen

    function speichern()
    {

    par1 = fenster.zeit_check.value;
    datei.open('w');
    datei.write ("S"+par1+"%$");
    datei.close();
    }
    }



    ------------------------------------------------------------------------------------------------------


    Gruss
    Dieter

  2. #32

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???
    Thread-Eröffner

    Zitat Bezug auf die Nachricht von Martin H.
    Hi !

    In der Zeile 38 und 155 (glaub ich) gehört das P LACEBEFORE in ein PLACEBEFORE geändert !

    Das Orig. Script hat ja die Parameter von der 30D ich bekomm aber immer nur den Text "undefined.undefined.f/2.8" ins Bild :-(

    mfG
    Martin
    Ja, du hast recht - dieser Fehler passiert immer wenn der Code hier in das Forum kopiert wird. Bei mir im Editor steht alles richtig - also ohne Leerzeichchen.


    Gruss
    Dieter

  3. #33
    Free-Member
    Registriert seit
    26.12.2006
    Beiträge
    2

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Hallo, sry das ich diesen alten Thread wieder hoch hohle, aber der ist eigentlich perfekt für meine Antwort (; Und zwar verwende ich dieses Script http://www.dforum.net/showpost.php?p=772248&postcount=9 und würde nun aber gerne die Textfarbe(soll weiß sein) und die Formatierung ss:mm:hh DD.MM.YYYY ändern und wenn möglich die Schriftart fix auf Arial setzen. Kennt sich da jemand mit aus? Ich finde da keinen Ansatz, da ich nicht erkennen kann an welcher Stelle die Werte/Text ins Bild gesetzt werden? Vielen Dank max

  4. #34
    Free-Member
    Registriert seit
    26.08.2010
    Beiträge
    15

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Der Text wird mit
    Code:
    aD.activeLayer.textItem.contents =  exifDatum + " " + exifUhr;
    (fast ganz am Ende) gesetzt. Wenn die Uhrzeit zuerst gesetzt werden soll, einfach die Reihenfolge austauschen, also
    Code:
    aD.activeLayer.textItem.contents = exifUhr + " " + exifDatum;
    Wenn der Font fest Arial sein soll, muss
    Code:
    aD.activeLayer.textItem.font = fonts[7].postScriptName;
    geändert werden in
    Code:
    aD.activeLayer.textItem.font = 'ArialMT';
    Schrift in weiß ist (meines Wissens) im Script etwas komplizierter, da die Farbwerte abhängig sind vom Farbmodus. Viel einfacher geht das in einer Aktion: Aktionsrekorder anstellen, Script aufrufen, oben im Textwerkzeug weiß einstellen, Aktionsrekorder beenden.

    Das ganze Script:
    Code:
    var aD = activeDocument;
    var startRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.PIXELS;
    
    aD.artLayers.add();
    aD.activeLayer.kind = LayerKind.TEXT;
    
    // Schriftart ist ArialMT (Postscriptname fuer Arial
    aD.activeLayer.textItem.font = 'ArialMT';
    
    // 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[23][1] ist Datum/Zeit ohne Text "Date Time" (das ist exif[23][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[23][1].substring(10);
    
    Datumteile = aD.info.exif[23][1].substring(0,10).split(":");
    exifDatum = Datumteile[2] + "." + Datumteile[1] + "." + Datumteile[0];
    
    // und nun den Text schreiben
    aD.activeLayer.textItem.contents = exifUhr + " " + exifDatum;
    
    app.preferences.rulerUnits = startRulerUnits;

  5. #35
    Free-Member
    Registriert seit
    26.12.2006
    Beiträge
    2

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Hallo, vielen Dank für deine Erklärungen. Da wurde jetztt einiges klarer (:

  6. #36
    Free-Member Avatar von 'Ingo
    Registriert seit
    15.10.2004
    Beiträge
    1.418

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Zitat Bezug auf die Nachricht von errweh Beitrag anzeigen
    Viel einfacher geht das in einer Aktion: Aktionsrekorder anstellen, Script aufrufen, oben im Textwerkzeug weiß einstellen, Aktionsrekorder beenden.
    Wenn ist das Script in eine Aktion einbinde, wird immer wieder das Datum aus der ursprünglichen Bilddatei eingefügt.
    Man sieht den Sprung in der Textebene i.d. Ebenenpalette ganz gut, erst steht noch das korrekte Datum aus dem aktuellen Bild, dann wird mit dem aus der Aufzeichnung überschrieben.

    http://screencast.com/t/eeetDQrhZ

    Idee?

  7. #37
    Free-Member
    Registriert seit
    26.08.2010
    Beiträge
    15

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Die erste Frage wäre, ob es ohne den Einfärbeschritt in der Aktion richtig läuft.
    Ich habe das Script modifiziert, der Text wird jetzt in weiß ausgegeben. Das kannst Du bei Bedarf selber ändern, an Stelle von 'ffffff' den gewünschten Hexwert eintragen.
    Und nicht vergessen, zweimal den Indexwert (im Code unten die [23]) anzupassen, das hat mich 10 Minuten Sucherei gekostet.
    Ich habe es in einer Stapelverarbeitung mit CS6 getestet und es funktionierte.

    Code:
    var aD = activeDocument;
    var startRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.PIXELS;
    
    aD.artLayers.add();
    aD.activeLayer.kind = LayerKind.TEXT;
    
    // Schriftart ist ArialMT (Postscriptname fuer Arial
    aD.activeLayer.textItem.font = 'ArialMT';
    
    // Textgroesse festlegen, bei Bedarf Faktor 0.01 anpassen
    aD.activeLayer.textItem.size = 0.01 * Math.sqrt(aD.height.value * aD.width.value);
    
    // Textfarbe festlegen
    var farbe = new SolidColor();
    farbe.rgb.hexValue = 'ffffff';
    aD.activeLayer.textItem.color = farbe; 
    
    // 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[23][1] ist Datum/Zeit ohne Text "Date Time" (das ist exif[23][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[23][1].substring(10);
    
    Datumteile = aD.info.exif[23][1].substring(0,10).split(":");
    exifDatum = Datumteile[2] + "." + Datumteile[1] + "." + Datumteile[0];
    
    // und nun den Text schreiben
    aD.activeLayer.textItem.contents = exifUhr + " " + exifDatum;
    
    app.preferences.rulerUnits = startRulerUnits;

  8. #38
    Free-Member Avatar von 'Ingo
    Registriert seit
    15.10.2004
    Beiträge
    1.418

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Zitat Bezug auf die Nachricht von errweh Beitrag anzeigen
    Die erste Frage wäre, ob es ohne den Einfärbeschritt in der Aktion richtig läuft.
    Ja, ohne "Einfärbeschritt" läuft das vorletzte Script mit korrekten EXIF Datum.

    Zitat Bezug auf die Nachricht von errweh Beitrag anzeigen
    Ich habe das Script modifiziert, der Text wird jetzt in weiß ausgegeben. Das kannst Du bei Bedarf selber ändern, an Stelle von 'ffffff' den gewünschten Hexwert eintragen.
    Funktioniert

    Zitat Bezug auf die Nachricht von errweh Beitrag anzeigen
    Und nicht vergessen, zweimal den Indexwert (im Code unten die [23]) anzupassen, das hat mich 10 Minuten Sucherei gekostet.
    Wozu ist das gut? *checknixx*

  9. #39
    Free-Member
    Registriert seit
    26.08.2010
    Beiträge
    15

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Ingo checkt nixx, das kommt ins Buch.

    Mit dem Index sagst Du dem Script, aus welchem Feld gelesen werden soll. In #20 ist ein kleines Script, mit dem man sich die verfügbaren Felder anzeigen lassen und sich das richtige Datumsfeld heraussuchen kann. Das ist von Kamera zu Kamera unterschiedlich, bei der alten 5D war es in [23], bei der 1DsMkIII ist es in [20], bei der M9 in [21].
    Bei der Testerei gestern hatte ich den Index nur einmal geändert und ein komisches Ergebnis bekommen (f/11 undefined).

  10. #40
    Free-Member Avatar von 'Ingo
    Registriert seit
    15.10.2004
    Beiträge
    1.418

    Standard AW: Photoshop Aktion - aus EXIF das Datum im Bild als Text einbetten ???

    Zitat Bezug auf die Nachricht von errweh Beitrag anzeigen
    Ingo checkt nixx, das kommt ins Buch.

    Mit dem Index sagst Du dem Script, aus welchem Feld gelesen werden soll. In #20 ist ein kleines Script, mit dem man sich die verfügbaren Felder anzeigen lassen und sich das richtige Datumsfeld heraussuchen kann.
    ...ich soll in 6 Jahre alten Beiträgen nachlesen, ich glaube es hackt

    Gut, bei der 5D IV funktioniert es ja mit 23 prächtig, wegen dem kleinen 06ér Script
    Code:
    var aD = activeDocument;
    var exiftext = "";
    for (var i = 0; i < aD.info.exif.length; i++)
    exiftext += i + " - " + aD.info.exif[i][0] + " - " + aD.info.exif[i][1] + "\n";
    alert(exiftext);
    kann ich mir weiteren Fragen ja sparen, lohnt doch mal in alten Beiträgen zu schnüffeln

Seite 4 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •