Wie exportiere ich Illustrator-Ebenen als einzelne Bilder?

15

Ich habe eine Illustrator-Datei, die Muster enthält. Ich möchte jedes Muster als einzelnes Bild exportieren, um es in diesem neuen Programm namens Sketch zu verwenden. Gibt es ein Stapelverarbeitungsskript, das Layer als PNG oder SVG exportiert? Ich möchte jedes geometrische Muster als PNG und nicht als eine große Datei haben.

Irgendwelche Gedanken?

png

Charles
quelle

Antworten:

14

Wenn sich die Muster tatsächlich auf einzelnen Ebenen befinden, können Sie möglicherweise Skripte verwenden, um jede Ebene als einzelne PNG-Datei zu exportieren.

Carlos Canto hat ein Skript für Illustrator geschrieben und in den Adobe-Foren veröffentlicht.

Im Falle von Link Rot, hier ist Carlos 'Drehbuch:

#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]);
        }
    }
}

Kopieren Sie diese und fügen Sie sie in eine Textdatei ein. Speichern Sie die Textdatei mit dem Suffix .jsx. Platzieren Sie dann die .jsx-Datei in Adobe Illustrator CS (x) / Presets / [Ihre Sprache] / Scripts. Nach dem Neustart von Illustrator sollte das Skript File > Scriptsin Illustrator sichtbar sein .

Scott
quelle
Zu Ihrer Information, das oben veröffentlichte Skript funktioniert nicht in Illustrator CC, es gibt mir: Fehler 8, Syntaxfehler. Zeile 1:
1
Das Skript funktioniert hier in Illustrator CC einwandfrei.
Scott
2
Außerdem wurde in Zeile 1 ein Syntaxfehler angezeigt. Als ich die .jsx-Datei erneut öffnete, befand sich über der ursprünglichen Zeile 1 ein zusätzlicher Code aus dem obigen Code. Ich habe alles über #target Illustrator gelöscht und die .jsx-Datei gespeichert. Ich habe Illustrator neu gestartet und das Skript funktioniert jetzt einwandfrei. Ich benutze auch CC
Hier ist eine aktualisierte Version, die den Ebenennamen im Dateinamen anstelle eines numerischen Zählers verwendet (also "mydoc-layername.png" anstelle von "mydoc-1.png"). gist.github.com/34e54d199de123b8e3c50a305f23115e
Chris Emerson
5

Zur Vereinfachung und Beschleunigung des Workflows würde ich wahrscheinlich das Slice-Tool verwenden, um Slices für die einzelnen Muster zu erstellen, und dann für das Web speichern, um sicherzustellen, dass "Alle Slices" in der Dropdown-Liste "Exportieren:" ausgewählt wurde. Wenn ich von Grund auf neu baue, lege ich jedes Muster auf eine eigene Zeichenfläche (was Sie immer noch tun können) und verwende Datei> Exportieren mit aktivierter Option "Zeichenflächen verwenden".

Alan Gilbertson
quelle