gpt4 book ai didi

javascript - Photoshop Javascript获取事件文档中的所有图层

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:46:04 24 4
gpt4 key购买 nike

我确信 Photoshop 脚本编写者应该先讨论它。我写了一个解决方案如下。我觉得逻辑上是对的,但是结果不对。任何人都可以帮助检查代码中的错误位置,或者对此主题有想法?我想获取文档中的所有图层。

代码:

function getAllLayersInLayerSets(layerNodes) {

var retList = [];

for (var i=0; i<layerNodes.length; i++) {

if(layerNodes[i].layerSets.length > 0)
{
var tmp = getAllLayersInLayerSets(layerNodes[i].layerSets);

var j = (tmp == null) ? -1 : tmp.length-1;
while(tmp && j>=0)
{
retList.push(tmp[i]);
j--;
}
}
for(var layerIndex=0; layerIndex < layerNodes[i].artLayers.length; layerIndex++)
{
var layer=layerNodes[i].artLayers[layerIndex];
retList.push(layer);
}

}

return retList;
}

非常感谢任何帮助或讨论。

最佳答案

我知道这是一个旧线程,但这可能对某些人有用。

我一直在寻找一种功能,可以让我获得 Photoshop 复合中的所有 ArtLayers,包括嵌套在组中的图层。上面的函数返回未定义的,所以我修改它并让它工作。

var doc = app.activeDocument;
var allLayers = [];
var allLayers = collectAllLayers(doc, allLayers);

function collectAllLayers (doc, allLayers){
for (var m = 0; m < doc.layers.length; m++){
var theLayer = doc.layers[m];
if (theLayer.typename === "ArtLayer"){
allLayers.push(theLayer);
}else{
collectAllLayers(theLayer, allLayers);
}
}
return allLayers;
}

关于javascript - Photoshop Javascript获取事件文档中的所有图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26623283/

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