Ebene Duplizieren + alte Ebene ausblenden

Keiner eine Idee? :(

Also ich habe mich jetzt etwas mit dem Scripting befasst, aber wirklich viel gibt es auch in den Weiten des Netztes nicht zu finden, besonders genau das was ich suche nicht.

Aber auf eine Sache bin ich gestoßen, die mir eigentlich sogar noch mehr weiter helfen würde:
Code:
docRef = app.activeDocument; 
 var textColor = new SolidColor(); 
        textColor.rgb.red = 0; 
        textColor.rgb.green =0; 
        textColor.rgb.blue = 0; 
var newTextLayer = docRef.artLayers.add(); 

// prompt for layer name
var layerPattern = prompt('Icon-Text', 'Layer Name'); // prompt for layer name

newTextLayer.kind = LayerKind.TEXT; 
newTextLayer.textItem.font = "Gill Sans Ultra Bold"; 
newTextLayer.textItem.align = "right";
newTextLayer.textItem.position = Array(256, 256); 
newTextLayer.textItem.size = 60; 
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.contents = layerPattern;
Dieser Script erstellt eine Textebene und fragt welcher Text da rein soll und benennt die Ebene gleich entsprechend. So, Farbe, Größe und Position lassen sich anpassen, aber Schriftart und Textausrichtung nicht (jedenfalls ändert sich bei mir nichts) Könnte mir da jemand weiter helfen? Wäre wirklich nett,
 
Das Script vom Gast macht doch schon das Richtige. Nun nur noch das Name eingeben aus dem Zweiten hinzufügen:

Code:
try {
		var a = activeDocument.activeLayer;
		a.visible = false;
		var b = a.duplicate();
		var layerName = prompt('Icon-Text', 'Layer Name');
		activeDocument.activeLayer = b;
		activeDocument.activeLayer.name = layerName;
	} catch(e){}

**EDIT** Hmm, Nun sag mal lieber, was Du mit dem zweiten Script anstellen möchtest. Das Script Hier ist jetzt die Lösung für die erste Frage.

mfg chmee
 
Ah, vielen Dank! Ja so klappt, hätte ich auch mal drauf kommen können.

Dennoch wärs nett wenn mir jemand erklären könnte wie ich den zweiten Script so zum laufen bringen könnte das ich auch Schriftart und Ausrichtung anpassen kann. Das hätte den Vorteil, dass ich nur noch den Text eingeben muss, er dann schon mit den richtigen Werten, an der richtigen Stelle stehen würde und ich ihn dann per Script gleich noch unter diesem Namen als .jpg abspeichern könnte, alles in einem Rutsch.

Edit: Also wie ursprünglich gesagt, möchte ich viele Ebenen duplizieren. Diese sind zufällig Textebenen, in denen immer etwas anderes steht, aber alle an der selben Stelle stehen sollen (am unteren rechten Rand, also der letzte Buchstabe soll dort stehen). Durch unterschiedliche Textlänge muss ich sie aber bisher alle manuel ausrichten, sonst ragen sie über das Bild hinaus oder sind nicht so dicht am Rand, wie ich es haben möchte. Außerdem sollen die anderen Ebenen ja natürlich bei einer neuen Ebene ausgeblendet werden, bis auf die Hintergrundebenene die ja natürlich auch noch zum Bild gehört. Zum Schluss speichere ich die neue Textebene samt Hintergrundebene als extra Bild (jpg) einzeln ab, unzwar mit dem Textebenen-Namen als Dateinamen. Und genau das soll der zweite Script in einem Rutsch bewerkstelligen. Der erste Script übernimmt lediglich nur einen Teil davon, was mir im Gegensatz zum kompletten manuellen Erstellen aber auch schon Arbeit erleichtert. Ich hoffe das ist so nach zu vollziehen.
 
Zuletzt bearbeitet:
Wow! Wirklich toll, das ist es, Danke.

hab aus
Code:
activeDocument.activeLayer.textItem.justification = Justification.CENTER

ein

Code:
activeDocument.activeLayer.textItem.justification = Justification.RIGHT

gemacht und schon ist alles so wie es sein sollte.

Zu den Fonts: Stimmt, im Prinzip geht es, aber man muss erst die korrekten Namen rausfinden. Auf der Seite die du verlinkt hast, steht:
Adobe in their documentation showed a nifty way to work out the font name - it's a one line code which you can place in a .js file.
Wo genau soll das denn zu finden sein, im Handbuch?
 
Ich glaube, es geht um diese Zeile:
Code:
ActiveDocument.activeLayer.textItem.contents = ActiveDocument.activeLayer.textItem.font;

Du erstellst ein Dokument, darin dann ein Textobjekt, welches angewählt sein soll und suchst Dein Font aus. Wenn Du dann dieses Script rüberlaufen lässt, ändert sich der Text in den Namen des ausgewählten Fonts.

mfg chmee
 
Ich bekomm da leider nen Error:
Code:
ActiveDocument ist nicht definiert.
Line: 1
Ich weiß, das steht auch auf der Seite, aber wie definiere ich es, schließlich habe ich die Textebene aktiviert, das schließt ja das aktuelle Dokument mit ein oder nicht?

Hab jetzt übrigens den Script fertig:
Code:
var a = activeDocument.activeLayer;
		a.visible = false;

docRef = app.activeDocument; 
 var textColor = new SolidColor(); 
        textColor.rgb.red = 0; 
        textColor.rgb.green =0; 
        textColor.rgb.blue = 0; 
var newTextLayer = docRef.artLayers.add(); 

// prompt for layer name
var layerPattern = prompt('Icon-Text', 'Layer Name'); // prompt for layer name

newTextLayer.kind = LayerKind.TEXT; 
newTextLayer.textItem.font = "Batang"; 
newTextLayer.textItem.align = "center";
newTextLayer.textItem.position = Array(701, 430); 
newTextLayer.textItem.size = 60; 
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.contents = layerPattern;
activeDocument.activeLayer.textItem.justification = Justification.RIGHT

var doc = app.activeDocument; 
var jpegFile = File(doc.path + "/" + layerPattern + ".jpg"); 

var saveOptions = new ExportOptionsSaveForWeb(); 
jpegSaveOptions = new JPEGSaveOptions(); 
jpegSaveOptions.embedColorProfile = true; 


app.activeDocument.saveAs(jpegFile, jpegSaveOptions, true, Extension.LOWERCASE);
Damit wird die Textebene erstellt und das Ganze dann gleich als jpg gespeichert. Sehr arbeitssparend, wenn man 100te von solchen Ebenen erstellen möchte. Im Übrigen auch nützlich als Fotograf, wenn man sein Copyright gleich drauf setzen möchte.
 
Die Fehlermeldung ist mit einem großen A in ActiveDocument.

Und ein activeDocument gibt es natürlich nur, wenn ein Dokument (Datei) geladen ist. Womöglich darf auch der Backgroundlayer nicht mit Schloss verriegelt sein.

mfg chmee
 

Neue Beiträge

Zurück