[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bridge Script gesucht - Create Snapshot

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Bridge Script gesucht - Create Snapshot

Stephan_M
Beiträge gesamt: 485

24. Sep 2013, 14:30
Beitrag # 1 von 5
Bewertung:
(1895 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich weiß nicht wohin ich mich sonst wenden soll, als hier. Ich suche ein Script für die Bridge, welches für Camera Raw Dateien (also in den XMP-Daten) einen "Snapshot" anlegt.

Hat jemand was? Oder weiß wo ich suchen soll? Das Object Model half mir nicht. Für Camera Raw gibts keins.
Google hat mir auch noch nichts zu Tage gefördert.

Hier hat jemand ein Script geschrieben, was für eine Auswahl von Dateien eine Belichtungsreihe erstellt, in dem es in die XMP-Daten pro File einen anderen Belichtungswert schreibt.
Aber zu xmp.setProperty finde ich nichts.
Code
#target bridge    
if( BridgeTalk.appName == "bridge" ) {
setExposure = MenuElement.create("command", "Set Average Exposures", "at the end of Tools","exp");
}
setExposure.onSelect = function () {
var d=app.document;
d.deselectAll();
var sels = d.getSelection("cr2,crw,nef,mos,orf");
var noOfFiles =sels.length;
var diff = (3.25 / (noOfFiles-1));
var exp = 1.25;
var exp2=exp;
for(var a = 0;a<noOfFiles;a++){
exp2 = exp - (diff*(a)).toFixed(3);
var file = new File(sels[a].spec.toString().replace(/\....$/,'.xmp'));
setExposure( file, exp2 )
}
app.document.chooseMenuItem('PurgeCache');
function setExposure( file, expose ){
file.open('r');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.open("r", "TEXT", "????");
var xmpStr = file.read();
file.close();
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmp = new XMPMeta( xmpStr );
xmp.setProperty( XMPConst.NS_CAMERA_RAW, "Exposure", Number(expose) );
file.open('w');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.write( xmp.serialize() );
file.close();
};
};


Besten Gruß,
Stephan
X

Bridge Script gesucht - Create Snapshot

drerol74
Beiträge gesamt: 512

26. Sep 2013, 22:56
Beitrag # 2 von 5
Beitrag ID: #517811
Bewertung:
(1824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stepan,

hast du schon mal im »Java Script Tools Guide« nachgesehen. Dort ist einiges zum Thema XMP (S.257ff).

oder hier
http://www.adobe.com/devnet/xmp.html
http://indisnip.wordpress.com/...o-indesign-file-xmp/

Im Prinzip handelt es sich ja beim XMP-Format nur um XML-Dateien. Vergleich mal eine Datei ohne einen Snapshot und dann mit und welche Elemente dort hinzugekommen/verändert sind. (z.B. Namespace bei rfd:Description und <crss:SavedSettings>)

Hab ich auch noch nie versucht, hört sich aber nach viel Arbeit an.

Schöne Grüße
Roland


als Antwort auf: [#517710]

Bridge Script gesucht - Create Snapshot

Stephan_M
Beiträge gesamt: 485

30. Sep 2013, 17:11
Beitrag # 3 von 5
Beitrag ID: #517921
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

ja, in die Datei habe ich vor und nach Speicherung eines Snapshots schon hineingeschaut. Ich habe festgestellt, daß ich es niemals schaffen würde, manuell einen solchen Baum aller CameraRaw-Einstellungen anzufügen, sodaß er es hinterher als Snapshot fressen würde.

Wenn nicht irgendjemand schon mit Snapshots irgendwas gescriptet hat, wo ich abgucken könnte, siehts bei mir leider schlecht aus.

Vielen Dank fürs mitgucken. Die Links hatte ich auch gefunden und durchgeschaut.

Besten Gruß,
Stephan


als Antwort auf: [#517811]

Bridge Script gesucht - Create Snapshot

drerol74
Beiträge gesamt: 512

5. Okt 2013, 11:03
Beitrag # 4 von 5
Beitrag ID: #518096
Bewertung:
(1693 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

ich hatte jetzt etwas Zeit, um mir das anzusehen. So sollte es klappen:

Code
XMPMeta.registerNamespace("http://ns.adobe.com/camera-raw-saved-settings/1.0/","crss"); 

myXMPObj.setProperty("http://ns.adobe.com/camera-raw-saved-settings/1.0/","crss:SavedSettings/rdf:Bag/rdf:li/crss:Name","My Snapshot",0);
myXMPObj.setProperty("http://ns.adobe.com/camera-raw-saved-settings/1.0/","crss:SavedSettings/rdf:Bag/rdf:li/crss:Type","Snapshot",0);

Schreibt »Name«- und »Type«-Tag für den Snapshot in das XMP-Objekt.


Code
XMPUtils.duplicateSubtree(myXMPObj,myXMPObj,"http://ns.adobe.com/camera-raw-settings/1.0/","crs:Version","http://ns.adobe.com/camera-raw-saved-settings/1.0/","crss:SavedSettings/rdf:Bag/rdf:li/crss:Parameters/crs:Version",XMPConst.APPEND_ALL_PROPERTIES); 

Kopiert z.B. das Element »Version« an die entsprechende Stelle. DAs Gute, nicht vorhandene Elemente im Baum werden automatisch erzeugt, man muss also nicht alle fehlenden Tags einzeln anlegen.

Mit einer Schleife und XMP.iterator() kannst du alle Elemente durchlaufen und so kopieren.

An mehreren Stellen kommt dann noch das Datum und eine »InstanceID« ins Spiel. Damit der Snapshot akzeptiert wird, müssen die Werte korrekt gesetzt werden, da könnte es nochmal haarig werden ...

Schöne Grüße
Roland


als Antwort auf: [#517921]

Bridge Script gesucht - Create Snapshot

Stephan_M
Beiträge gesamt: 485

7. Okt 2013, 07:55
Beitrag # 5 von 5
Beitrag ID: #518166
Bewertung:
(1647 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wow. Vielen Dank für Deine mühevolle mithilfe. Ich werde versuchen, aus Deiner Steilvorlage etwas zu machen. Das wird sicher was dauern.

Mit bestem Gruß,
Stephan


als Antwort auf: [#518096]
X