Ausgabe
Ich habe ein Stück Skript, das ich in einem größeren Projekt verwende
In Photoshop habe ich eine Gruppe namens Bilder und eine Ebene darin
Ich habe es geschafft, dieses Skript zum Laufen zu bringen. Ein Dialog öffnet sich. Ich wähle die Datei aus und sie ersetzt den Inhalt problemlos
Aber ich möchte, dass das Skript ausgeführt wird, ohne einen Dialog zu öffnen und eine Datei auswählen zu müssen
Die Datei, die ich ersetzen möchte, heißt london.png
Wie mache ich das automatisch ohne Dialog
Hier ist mein Code und auch ein Screenshot dessen, was er fragt (dilog, ich möchte verschwinden und automatisch london.png auswählen
Auch ein Screenshot des Stammordners und der Dateien
var replacementFile = new File("~/london.png");
var theLayer = app.activeDocument.layerSets.getByName('image');
var changeLayer = theLayer.layers[0]
changeLayer = replaceContents(replacementFile);
////// replace contents //////
function replaceContents (newFile) {
// =======================================================
var idplacedLayerReplaceContents = stringIDToTypeID( "placedLayerReplaceContents" );
var desc3 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
desc3.putPath( idnull, new File( newFile ) );
var idPgNm = charIDToTypeID( "PgNm" );
desc3.putInteger( idPgNm, 1 );
executeAction( idplacedLayerReplaceContents, desc3, DialogModes.NO );
return app.activeDocument.activeLayer
};
Screenshot 1-Dialog
Screenshot 2 Dateistruktur
Lösung
///// >>> the mistake was here
var replacementFile = new File("C;/users/harry/script/london.png");
var theLayer = app.activeDocument.layerSets.getByName('image');
var changeLayer = theLayer.layers[0]
changeLayer = replaceContents(replacementFile);
////// replace contents //////
function replaceContents (newFile) {
// =======================================================
var idplacedLayerReplaceContents = stringIDToTypeID( "placedLayerReplaceContents" );
var desc3 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
desc3.putPath( idnull, new File( newFile ) );
var idPgNm = charIDToTypeID( "PgNm" );
desc3.putInteger( idPgNm, 1 );
executeAction( idplacedLayerReplaceContents, desc3, DialogModes.NO );
return app.activeDocument.activeLayer
};
Beantwortet von – Ashley Taylor
Antwort geprüft von – Pedro (FixError Volunteer)