我有一个包含图案的 Illustrator 文件。我想将每个图案导出为单独的图像,以在我正在尝试的名为 Sketch 的新程序中使用。是否有将图层导出为 PNG 或 SVG 的批处理脚本?我想让每个几何图案都以 PNG 格式提供,而不是一个大文件。
有什么想法吗?
我有一个包含图案的 Illustrator 文件。我想将每个图案导出为单独的图像,以在我正在尝试的名为 Sketch 的新程序中使用。是否有将图层导出为 PNG 或 SVG 的批处理脚本?我想让每个几何图案都以 PNG 格式提供,而不是一个大文件。
有什么想法吗?
如果图案确实在单独的图层上,您可以使用脚本将每个图层导出为单独的 png。
Carlos Canto为 Illustrator编写了一个脚本并将其发布在 Adobe 论坛上。
如果链接失效,这是 Carlos 的脚本:
#target Illustrator
// script.name = exportLayersAsCSS_PNGs.jsx;
// script.description = mimics the Save for Web, export images as CSS Layers (images only);
// script.requirements = an open document; tested with CS5 on Windows.
// script.parent = carlos canto // 05/24/13; All rights reseved
// script.elegant = false;
/**
* export layers as PNG
* @author Niels Bosma
*/
// Adapted to export images as CSS Layers by CarlosCanto
if (app.documents.length>0) {
main();
}
else alert('Cancelled by user');
function main() {
var document = app.activeDocument;
var afile = document.fullName;
var filename = afile.name.split('.')[0];
var folder = afile.parent.selectDlg("Export as CSS Layers (images only)...");
if(folder != null)
{
var activeABidx = document.artboards.getActiveArtboardIndex();
var activeAB = document.artboards[activeABidx]; // get active AB
var abBounds = activeAB.artboardRect;// left, top, right, bottom
showAllLayers();
var docBounds = document.visibleBounds;
activeAB.artboardRect = docBounds;
var options = new ExportOptionsPNG24();
options.antiAliasing = true;
options.transparency = true;
options.artBoardClipping = true;
var n = document.layers.length;
hideAllLayers ();
for(var i=n-1, k=0; i>=0; i--, k++)
{
//hideAllLayers();
var layer = document.layers[i];
layer.visible = true;
var file = new File(folder.fsName + '/' +filename+ '-' + k +".png");
document.exportFile(file,ExportType.PNG24,options);
layer.visible = false;
}
showAllLayers();
activeAB.artboardRect = abBounds;
}
function hideAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = false;
});
}
function showAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = true;
});
}
function forEach(collection, fn)
{
var n = collection.length;
for(var i=0; i<n; ++i)
{
fn(collection[i]);
}
}
}
将其复制并粘贴到文本文件中,并使用 .jsx 后缀保存文本文件。然后将 .jsx 文件放入 Adobe Illustrator CS(x)/Presets/[您的语言]/Scripts。重新启动 Illustrator 后,脚本应该File > Scripts
在 Illustrator 中可见。
为了工作流程的简单性和速度,我可能会使用切片工具为各个模式创建切片,然后保存为 Web,确保在“导出:”下拉列表中选择了“所有切片”。如果我从头开始构建,我会将每个图案放在自己的画板上(您仍然可以这样做)并使用文件>导出并选中“使用画板”选项。