hilfdirselbst.ch
Facebook Twitter gamper-media
Stephan_M S
Beiträge: 453
24. Sep 2013, 14:30
Beitrag #1 von 5
Bewertung:
(1486 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Bridge Script gesucht - Create Snapshot


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
Top
 
X
drerol74 m
Beiträge: 387
26. Sep 2013, 22:56
Beitrag #2 von 5
Beitrag ID: #517811
Bewertung:
(1415 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Bridge Script gesucht - Create Snapshot


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] Top
 
Stephan_M S
Beiträge: 453
30. Sep 2013, 17:11
Beitrag #3 von 5
Beitrag ID: #517921
Bewertung:
(1350 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Bridge Script gesucht - Create Snapshot


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] Top
 
drerol74 m
Beiträge: 387
5. Okt 2013, 11:03
Beitrag #4 von 5
Beitrag ID: #518096
Bewertung:
(1284 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Bridge Script gesucht - Create Snapshot


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] Top
 
Stephan_M S
Beiträge: 453
7. Okt 2013, 07:55
Beitrag #5 von 5
Beitrag ID: #518166
Bewertung:
(1238 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Bridge Script gesucht - Create Snapshot


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] Top
 
X