Angenommen, ich möchte eine Schwarzweißversion aller Bilder in einem bestimmten Ordner und allen seinen Unterordnern erstellen und die Struktur der Unterordner beibehalten.
Wenn ich derzeit zu Datei -> Automatisieren -> Batch gehe, kann ich die Dateibenennung nur aktivieren, wenn ich das Ziel auf "Ordner" setze, wodurch ALLE Bilder im selben Ordner gespeichert werden. Aber stattdessen wollte ich das Bild in seinem ursprünglichen Ordner speichern und beispielsweise das Suffix _B&W hinzufügen.
Ist das möglich?
Wie ich in den Kommentaren kurz erklärt habe, müssten Sie an Ihrem Workflow nicht viel ändern, außer ein kleines Skript das Speichern von Dateien zu überlassen.
Diese Anweisungen mögen wie eine Menge Arbeit erscheinen, sind es aber nicht.
/plug-ins/
, den Sie im Photoshop-Anwendungsordner finden.ScriptingListenerJS.log
auf dem Desktop aufgerufene Datei oder hängt sie an.ScriptingListenerJS.log
nach dem Dateinamen der Datei, die Sie gerade gespeichert haben. Sollte das Letzte sein.
// ========
zum Ende des Codeblocks.var idmodalStateChanged
, können Sie diesen wahrscheinlich ignorieren. Scripting Listener begann mit der Ausgabe dieses Codeblocks bei PS CC 2015, glaube ich. Keine Ahnung, was das ist, aber das braucht man nicht. Ignoriere es einfach.File > Save as...
:// =======================================================
var idsave = charIDToTypeID( "save" );
var desc17 = new ActionDescriptor();
var idAs = charIDToTypeID( "As " );
var desc18 = new ActionDescriptor();
var idEQlt = charIDToTypeID( "EQlt" );
desc18.putInteger( idEQlt, 12 );
var idMttC = charIDToTypeID( "MttC" );
var idMttC = charIDToTypeID( "MttC" );
var idNone = charIDToTypeID( "None" );
desc18.putEnumerated( idMttC, idMttC, idNone );
var idJPEG = charIDToTypeID( "JPEG" );
desc17.putObject( idAs, idJPEG, desc18 );
var idIn = charIDToTypeID( "In " );
desc17.putPath( idIn, new File( "/Users/joonas/Desktop/Untitled-3.jpg" ) );
var idDocI = charIDToTypeID( "DocI" );
desc17.putInteger( idDocI, 432 );
var idLwCs = charIDToTypeID( "LwCs" );
desc17.putBoolean( idLwCs, true );
var idsaveStage = stringIDToTypeID( "saveStage" );
var idsaveStageType = stringIDToTypeID( "saveStageType" );
var idsaveBegin = stringIDToTypeID( "saveBegin" );
desc17.putEnumerated( idsaveStage, idsaveStageType, idsaveBegin );
executeAction( idsave, desc17, DialogModes.NO );
var doc = app.activeDocument;
var doc_path = doc.path;
var sub_dir_name = 'Batch Processed Files';
var sub_directory = new Folder( doc_path + '/' + sub_dir_name );
if ( !sub_directory.exists ) sub_directory.create()
var new_path = sub_directory + '/' + doc.name.split('.')[0] + '.jpg';
// =======================================================
var idsave = charIDToTypeID( "save" );
var desc17 = new ActionDescriptor();
var idAs = charIDToTypeID( "As " );
var desc18 = new ActionDescriptor();
var idEQlt = charIDToTypeID( "EQlt" );
desc18.putInteger( idEQlt, 12 );
var idMttC = charIDToTypeID( "MttC" );
var idMttC = charIDToTypeID( "MttC" );
var idNone = charIDToTypeID( "None" );
desc18.putEnumerated( idMttC, idMttC, idNone );
var idJPEG = charIDToTypeID( "JPEG" );
desc17.putObject( idAs, idJPEG, desc18 );
var idIn = charIDToTypeID( "In " );
desc17.putPath( idIn, new File( new_path ) );
var idDocI = charIDToTypeID( "DocI" );
desc17.putInteger( idDocI, 432 );
var idLwCs = charIDToTypeID( "LwCs" );
desc17.putBoolean( idLwCs, true );
var idsaveStage = stringIDToTypeID( "saveStage" );
var idsaveStageType = stringIDToTypeID( "saveStageType" );
var idsaveBegin = stringIDToTypeID( "saveBegin" );
desc17.putEnumerated( idsaveStage, idsaveStageType, idsaveBegin );
executeAction( idsave, desc17, DialogModes.NO );
.jsx
Datei.
Action
Sie im Batch-Prozess verwenden werden, und starten Sie die Aufzeichnung. Folgendes wird an Ihre Aktion angehängt. Stellen Sie einfach sicher, dass Sie vor der Aufnahme ein gespeichertes Dokument geöffnet haben.
File > Scripts > Browse...
und suchen Sie die von Ihnen erstellte Skriptdatei.Wenn Sie jetzt den Batch ausführen, aber auswählen Destination: None
, sollte jede Datei in einem Ordner relativ zur geöffneten Datei in einem eigenen Unterordner gespeichert werden.
Das ist toll. Hier ist der neue Speicherort des ScriptingListener-Plug-ins .
Ich wollte nur ein Dialogfeld zum Speichern als JPG erhalten, also löschte ich das Unterverzeichnis und musste DialogModes.NO
zu DialogModes.ALL
. Das Skript wird im Skriptmenü angezeigt, wenn Sie es einfügen /Applications/Adobe Photoshop <your version>/Presets/Scripts
und neu starten. Ich habe eine Aktion davon erstellt und es funktioniert gut. Ich konnte keinen anderen Weg finden, dies zu tun. Es sollte nicht so schwierig sein, etwas so Natürliches wie das Speichern einer Datei im gleichen Format wie das Original zu tun.
Joonas
batch
Methode beim Skripting, sodass Sie ganz einfach Ihr eigenes benutzerdefiniertes Batch-Skript erstellen können, aber ich denke, die einfachste Methode wäre, nur das Speichern der Datei zu skripten. Es ist immer noch ein bisschen kompliziert, wenn Sie noch kein Skript erstellt haben, aber ziemlich einfach.Lukas Bustamante
Joonas