Ich möchte ein Skript schreiben, um die vertikale/horizontale Skalierung eines Smart-Objekts zurückzusetzen . Ich habe versucht, ArtLayer und viele Eigenschaften davon zu verwenden, aber es ist kein Erfolg.
Beispiel: B:100% - H:75%
app.activeDocument.activeLayer.resize(200,200);
=> B:200% - H:150%
app.activeDocument.activeLayer.resize(100,100);
=> Es ist nichts passiert. ItB:200% - H:150%
Gibt es eine Möglichkeit, die vertikale/horizontale Skalierung eines SO zu erhalten und auf 100 % (Originalskalierung) zu setzen?
Danke
Hier ist "funktionierender" Code:
#target photoshop
try {
var doc = app.activeDocument;
var layers = doc.artLayers;
var size = dialog();
var defaultRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PERCENT;
for (var i = 0; i < doc.artLayers.length -1; i++) {
var activeLayer = doc.artLayers.getByName(doc.artLayers[i].name);
var orUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PERCENT;
activeLayer.resize(size, size, AnchorPosition.MIDDLECENTER);
app.preferences.rulerUnits = orUnits;
}
} catch (e) {
// alert( e );
}
function dialog() {
// Dialog box...
var myWindow = new Window("dialog", "Resize Each Layer");
// Keeps things inline
myWindow.orientation = "row";
// Informational text
myWindow.add("statictext", undefined, "New size ( percentage ):");
// This is the box where the size is inserted
var myText = myWindow.add("edittext", undefined, "");
myText.characters = 5;
myText.active = true;
// Ok....
myWindow.add("button", undefined, "OK");
if (myWindow.show() == 1) return myText.text;
}
Dies ist eine unvollkommene Lösung, die darauf basiert, wie Ereignisse geordnet werden müssen.
Um das Skript aktuell zu verwenden:
Versuchen Sie als Nächstes das Skript erneut (Sie müssen nichts in Ihrer PSD rückgängig machen) und versuchen Sie, 150 einzugeben.
Dies sollte zu Objekten führen, die das 2,5-fache ihrer alten Größe haben.
Stegathesaurus