How to export Illustrator layers as individual images?


I have an Illustrator file that contains patterns. I'd like to export each pattern as an individual image to use in this new program that I'm trying called Sketch. Is there a batch processing script that exports layers as PNG or SVG? I'd like to have each geometric pattern available as a PNG, not as one large file.

Any thoughts?


8/18/2013 2:49:00 PM

Accepted Answer

If the patterns are indeed on individual layers, you may be able to use scripting to export each layer as an individual png.

Carlos Canto wrote a script for Illustrator and posted it in the Adobe forums.

In case of link rot, here's Carlos' script:

#target Illustrator

// = 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) {
else alert('Cancelled by user');

function main() {
    var document = app.activeDocument;
    var afile = document.fullName;
    var filename ='.')[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

        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++)
            var layer = document.layers[i];
            layer.visible = true;

            var file = new File(folder.fsName + '/' +filename+ '-' + k +".png");

            layer.visible = false;

        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)

Copy and paste this into a text file and save the text file with a .jsx suffix. Then place the .jsx file into Adobe Illustrator CS(x)/Presets/[your language]/Scripts. After relaunching Illustrator, the script should be visible via File > Scripts within Illustrator.

8/22/2013 12:26:00 AM