gpt4 book ai didi

javascript - 将智能对象的比例重置为 100% 的脚本

转载 作者:行者123 更新时间:2023-12-03 02:32:13 25 4
gpt4 key购买 nike

我正在尝试制作一个脚本,它将获取图层上的元素并将其大小恢复到 100%。

这是我到目前为止所拥有的,但由于某种原因它似乎不适用于智能对象。我错过了什么吗?

try {
var doc = app.activeDocument;

var layers = doc.artLayers;

var size = dialog();

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;

}

每当我尝试运行它时它都不起作用,并且它对智能对象​​根本没有任何作用。

enter image description here

最佳答案

我所知道的重置智能对象比例的唯一方法是用原始临时 psb 文件(引用文件)替换当前智能层。为此,您首先需要找到智能对象fileReference(临时 psb 文件的名称,它将位于临时文件夹中,您将在图层操作描述符中找到它),然后将其放入您的文档(使用"file">“嵌入”),将其放置到原始图层的坐标,然后删除原始图层。这是一个算法:

var originalLayer = activeDocument.activeLayer,
bounds = activeDocument.activeLayer.bounds,
smartObjectName = getFileReference() //get file reference here

placeLayer(Folder.temp + "/" + smartObjectName) //function to place layer with path to layer as an argument
centerLayerBasedOnBounds(bounds)
originalLayer.remove()

关于javascript - 将智能对象的比例重置为 100% 的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com