gpt4 book ai didi

javascript - Illustrator ExtendScript 隐藏路径

转载 作者:行者123 更新时间:2023-11-30 12:29:29 24 4
gpt4 key购买 nike

我正在尝试编写一个脚本(因为我找不到可用的脚本),它将我所有的单独图层、路径等导出到透明的 png 文件。我见过很多脚本,但它们都没有导出所有层等。它们似乎只是尝试导出父层。因此,如果有子层,则会遗漏这些子层。

这是我的脚本:

var doc = app.activeDocument;
var counter = 0;

hideOrShowItems(doc, false);
// processLayers(doc);
// displayLayer(doc, true);

function hideOrShowItems(root, show) {
for(var i = 0; i < root.layers.length; i++) {
var layer = root.layers[i];
var pathCount = layer.pathItems.length;
var layerCount = layer.layers.length;

if (pathCount > 0) {
hideOrShowPaths(layer, show);
}

if (layerCount > 0) {
hideOrShowItems(layer, show);
}

layer.visible = show;
}
}

function hideOrShowPaths(root, show) {
for(var i = 0; i < root.pathItems.length; i++) {
root.pathItems[i].visible = show;
}
}

// -- Removed for brievety

当我运行脚本时,唯一被隐藏的是顶层

enter image description here

其余的都没有动过。我在 hideOrShowPaths 的 for 循环中放入了一个计数器并执行了 counter++,它计数为 246,所以我知道它可以看到路径并且实际上试图隐藏它们,但是他们保持可见。

有人做过吗?我可以隐藏路径、组、剪辑并将它们全部导出为 png 格式吗?还是我必须手动执行此操作?

最佳答案

看起来您要查找的标志是隐藏而不是可见

var doc = app.activeDocument;
var root = doc.layers[0];
// just for testing purpose. Change the color
var newRGBColor = new RGBColor();
newRGBColor.red = 255;
newRGBColor.green = 255;
newRGBColor.blue = 255;
// make all items hidden
for (var i = 0; i < root.pathItems.length; i++) {
var item = root.pathItems[i];
item.hidden = true;
item.fillColor = newRGBColor; // just for testing
}
// now loop all pathItems
for (var i = 0; i < root.pathItems.length; i++) {
var item = root.pathItems[i];
item.hidden = !item.hidden; //make one visible
// export visible part
redraw();
item.hidden = !item.hidden; // hide it again
}

在您的脚本中,您需要先隐藏每个项目,然后取消隐藏一个项目,导出并再次隐藏它。我希望该片段有助于解决您的问题

关于javascript - Illustrator ExtendScript 隐藏路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195462/

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