Illustrator 脚本(或动作)使每组 1 个随机图层可见
Illustrator script (or action) to make 1 random layer visible per group
与此问题类似,但使用的是 adobe Illustrator:
我想使用 illustrator 脚本(或动作)生成由分组图层的随机采样组成的图像。
- 在 12 个组中的每个组中,我想让每个组的 1 个图层可见。
- 将可见图层导出为 svg。如果我可以更改文件格式,则加分。
- 重复该过程n次
我知道这与上面链接的代码类似,但我希望能够尽可能使用 illustrator 而不是 photoshop。
可能是这样的:
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 格式保存在桌面文件夹中。
与此问题类似,但使用的是 adobe Illustrator:
我想使用 illustrator 脚本(或动作)生成由分组图层的随机采样组成的图像。
- 在 12 个组中的每个组中,我想让每个组的 1 个图层可见。
- 将可见图层导出为 svg。如果我可以更改文件格式,则加分。
- 重复该过程n次
我知道这与上面链接的代码类似,但我希望能够尽可能使用 illustrator 而不是 photoshop。
可能是这样的:
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 格式保存在桌面文件夹中。