1

与此问题类似,但使用 adobe Illustrator:Photoshop action to make 1 random layer within each group

我想使用插画脚本(或动作)来生成由分组图层的随机采样组成的图像。

  1. 在 12 组中的每一个中,我想让每组 1 层可见。
  2. 将可见图层导出为 svg。如果我可以更改文件格式,则可以加分。
  3. 重复这个过程n次

我知道这类似于上面链接的代码,但如果可能的话,我希望能够使用 illustrator 而不是 Photoshop。

4

1 回答 1

0

它可能是这样的:

function main() {
    var doc = app.activeDocument;

    // hide all items
    var i = doc.pageItems.length;
    while(i--) doc.pageItems[i].hidden = true;

    // show one random item on every layer
    var i = doc.layers.length;
    while(i--) { 
        var items = doc.layers[i].pageItems;
        var index = Math.round(Math.random()*(items.length-1));
        items[index].hidden = false;
    }

    // save svg
    var counter = 0;
    var file = File(Folder.desktop + '/' + counter + '.svg') ;
    while (file.exists) {
        file = File(Folder.desktop + '/' + counter++ + '.svg');
    }
    doc.exportFile(file, ExportType.SVG);

    // save png
    var counter = 0;
    var file = File(Folder.desktop + '/' + counter + '.png') ;
    while (file.exists) {
        file = File(Folder.desktop + '/' + counter++ + '.png');
    }
    var options = new ExportOptionsPNG24();
    options.artBoardClipping = true;
    doc.exportFile(file, ExportType.PNG24, options);
}

// repeat the script N times
var n = 3;
while(n--) main();

它隐藏所有页面项目,在每一层显示一个随机项目,并将文档保存为桌面文件夹中的 SVG 和 PNG。

于 2022-02-05T22:17:23.400 回答