【问题标题】:Illustrator script (or action) to make 1 random layer visible per groupIllustrator 脚本(或动作)使每组 1 个随机图层可见
【发布时间】:2022-02-06 08:27:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: adobe-illustrator adobe-scriptui


    【解决方案1】:

    可能是这样的:

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多