Antworten auf deine Fragen:
Neues Thema erstellen

Ebene über Skript in mehrere geöffnete Dokumente duplizieren

H

HabeEineFrage

Guest

Liebe Experten,

ich hoffe, ihr könnt mir helfen.

Ich habe eine Datei mit zwei Ebenen (Hintergrund und eine weitere Ebene E2). E2 soll dupliziert werden in mehrere geöffnete Dokumente gleichzeitig (!) bzw. über eine Aktion nebst Stapelverarbeitung.

Folgendes funktioniert schon mal: Die zu duplizierende Ebene wird mit Strg+A und Strg+C in die Zwischenablage bugsiert. Dann rufe ich dieses Skript auf:

for (var i = 1; i < app.documents.length; i++) {
activeDocument = documents;
activeDocument.paste();
}

Dadurch wird die zu duplizierende Ebene in die anderen geöffneten Dokumente eingefügt, aber leider genau in der Mitte. Ich möchte, dass es so läuft wie beim "richtigen" Duplizieren, wenn ich einen Rechtsklick auf die Ebene mache, "Ebene duplizieren" auswähle und dann das Ziel auswähle.

Wie geht das?

Vielen Dank und Gruß

Dirk
 

Photoshop

H

HabeEineFrage

Guest

Hallo,

der Skript-Listener generiert mir seitenlangen Code, da blickt kein Mensch durch. Ich jedenfalls nicht. :) Funktioniert auch nicht, das Skript bricht gleich mit einer Fehlermeldung ab.

Das Stackoverflow-Skript ist auch nicht vollständig, das funktioniert leider auch nicht.

Vielleicht hat jemand noch eine Idee.

Im Prinzip muss ja "nur" noch in meinem obigen Mini-Code dafür gesorgt werden, dass das zu Duplizierende nicht in der Mitte eingefügt wird, sondern genau mit 5px Abstand von oben und links, wie in der Ausgangsdatei. So macht es ja der Befehl "Ebene duplizieren" und genau das brauche ich.

Nur um zu verdeutlichen, worum es in der Sache eigentlich geht: es soll ein Logo 5px links/oben in die aufnehmenden Dokumente platziert werden. Das geht manuell über "Ebene duplizieren" - klar - aber das ist sehr mühselig, weil leider nicht in mehrere Dokumente gleichzeitig dupliziert werden kann.
 

buerzel

Versuch macht kluch!

Teammitglied
Bisher hat der ScriptListener noch in jeder Ps-Version (zumindest bei mir) seine Arbeit verrichtet. Wenn dein Script funktioniert, fehlte in der Schleife ja nur die Positionierung der eingefügten Ebene. Wenn man diesen Vorgang zweimal „händisch” ausführt, gibt das auch keine seitenlangen Scripts und wer des Englischen einigermaßen mächtig ist, sollte die entsprechenden Variablen auch identifizieren können.
Schönen Tag noch ...
 
Zuletzt bearbeitet:
H

HabeEineFrage

Guest

Ich habe noch ein wenig rumprobiert und eine Lösung gefunden - ohne Skript, geht mit PS-Bordmitteln:

(1) Datei: Platzieren und Verknüpfen
(2) Logo (das ist das zu Duplizierende) auswählen
(3) Ebene an Auswahl ausrichten
(4) An oberer Kante
(5) An linker Kante
(6) Strg+T und mit den Pfeiltasten verschieben
(7) Auf Hintergrundebene reduzieren
(8) Speichern
(9) Schließen

Das Ganze in einer Stapelverarbeitung auf alle geöffneten Dateien anwenden.

Vielen Dank für eure Hilfe!
 

Andre_S

unverblümt

Aktion aufzeichnen:
Datei: Platzieren und Verknüpfen, Strg+A, Verschieben-Werkzeug aktivieren und über Ausrichtungssymbole an oberer und linker Kante ausrichten, mit den Pfeiltasten verschieben (Shift dabei halten = 10 px pro Anschlag), Shift+Strg+E

"(8) Speichern (9) Schließen" kann man weg lassen das überlässt man der Stapelverarbeitung in der die Aktion angegeben wird, so ist es auch unnötig alle Dateien zu öffnen - Quell- und Zielordner in der Stapelverarbeitung anzugeben reicht.
 
H

HabeEineFrage

Guest

"(8) Speichern (9) Schließen" kann man weg lassen das überlässt man der Stapelverarbeitung in der die Aktion angegeben wird..
So ist es auch unnötig alle Dateien zu öffnen - Quell- und Zielordner in der Stapelverarbeitung anzugeben reicht

Das ist ein guter Tipp, danke.
 
G

Gelöschtes Mitglied 633957

Guest

Das Stackoverflow-Skript ist auch nicht vollständig, das funktioniert leider auch nicht.
Es handelt sich dabei ja auch um eine Funktion die Du in Dein Skript einfügen musst. Wie ist auf der Stack Overflow Seite sehr genau beschrieben. Wenn das Thema auch schon erledigt ist - es hätte wie folgt ausschauen können:
Code:
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };

app.activeDocument.activeLayer.rasterize(RasterizeType.ENTIRELAYER);
app.activeDocument.activeLayer.copy();

for (var i = 1; i < app.documents.length; i++) {
  app.activeDocument = documents[i];
  pasteInPlace();
};

function pasteInPlace(enabled, withDialog) {
  if (enabled != undefined && !enabled)
  return;
  var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
  var desc1 = new ActionDescriptor();
  desc1.putBoolean(sTID("inPlace"), true);
  desc1.putEnumerated(cTID('AntA'), cTID('Annt'), cTID('Anno'));
  executeAction(cTID('past'), desc1, dialogMode);
};
Der Funktionsaufruf pasteInPlace() ersetzt Deinen activeDocument.paste() Aufruf.
Zeile 4+5 habe ich hinzugefügt. So muss nicht [Strg]+[A] und [Strg]+[C] gedrückt werden. Es reicht also, wenn die zu kopierende Ebene angewählt ist.
 
H

HabeEineFrage

Guest

Vielen Dank für deine Mühe. Ist sehr interessant. Kann gut sein, dass mir das mal hilft, wenn PS-Bordmittel eben nicht ausreichen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.455
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben