gpt4 book ai didi

javascript - 使用 javascript 获取选定图层或图层组数组 (Photoshop CS4)

转载 作者:行者123 更新时间:2023-12-02 10:56:14 24 4
gpt4 key购买 nike

K 基本上我需要编写一个 Photoshop 脚本来迭代选定的图层并检索有关它们的一些信息。

如果我可以获得所选图层的数组,我会没事的,我知道如何做其余的事情,但是获取该数组本身就是一件令人头痛的事情。

我知道该文档包含类似“activeLayers”的内容,但我迷失了如何处理级别和子级别层。

所有图层都在一个组中,所以如果它更容易,如果我可以将每个图层都放在一个组中,那就太好了:D

感谢您对此的任何提示。

最佳答案

Bravo 的代码可以工作,但在未选择任何图层时会失败并出现错误,因此我对其进行了调整以消除错误并仅返回一个空数组:

function getSelectedLayers(){
var resultLayers=new Array();
try{
var idGrp = stringIDToTypeID( "groupLayersEvent" );
var descGrp = new ActionDescriptor();
var refGrp = new ActionReference();
refGrp.putEnumerated(charIDToTypeID( "Lyr " ),charIDToTypeID( "Ordn" ),charIDToTypeID( "Trgt" ));
descGrp.putReference(charIDToTypeID( "null" ), refGrp );
executeAction( idGrp, descGrp, DialogModes.NO );
for (var ix=0;ix<app.activeDocument.activeLayer.layers.length;ix++){resultLayers.push(app.activeDocument.activeLayer.layers[ix])}
var id8 = charIDToTypeID( "slct" );
var desc5 = new ActionDescriptor();
var id9 = charIDToTypeID( "null" );
var ref2 = new ActionReference();
var id10 = charIDToTypeID( "HstS" );
var id11 = charIDToTypeID( "Ordn" );
var id12 = charIDToTypeID( "Prvs" );
ref2.putEnumerated( id10, id11, id12 );
desc5.putReference( id9, ref2 );
executeAction( id8, desc5, DialogModes.NO );
} catch (err) { }
return resultLayers;
}
$.writeln(getSelectedLayers());

简单地将代码包装在 try/catch block 中是行不通的,所以我也进行了更改:

executeAction( idGrp, descGrp, DialogModes.ALL );

executeAction( idGrp, descGrp, DialogModes.NO );

这使得运行时错误消失了。

关于javascript - 使用 javascript 获取选定图层或图层组数组 (Photoshop CS4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255364/

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