Jak wyeksportować warstwy programu Illustrator jako pojedyncze obrazy?


15

Mam plik programu Illustrator, który zawiera wzory. Chciałbym wyeksportować każdy wzór jako osobny obraz do użycia w nowym programie, który próbuję nazywać Sketch. Czy istnieje skrypt przetwarzania wsadowego, który eksportuje warstwy jako PNG lub SVG? Chciałbym, aby każdy wzór geometryczny był dostępny jako plik PNG, a nie jako jeden duży plik.

jakieś pomysły?

png

Odpowiedzi:


14

Jeśli wzory są rzeczywiście na poszczególnych warstwach, możesz użyć skryptu, aby wyeksportować każdą warstwę jako osobny png.

Carlos Canto napisał skrypt do programu Illustrator i opublikował go na forach Adobe.

W przypadku zepsucia linku, oto skrypt Carlosa:

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

Skopiuj i wklej to do pliku tekstowego i zapisz plik tekstowy z sufiksem .jsx. Następnie umieść plik .jsx w programie Adobe Illustrator CS (x) / Presets / [your language] / Scripts. Po ponownym uruchomieniu programu Illustrator skrypt powinien być widoczny za pośrednictwem programu File > ScriptsIllustrator.


Do Twojej wiadomości, powyższy skrypt nie działa w programie Illustrator CC, daje mi: Błąd 8, Błąd składniowy. Wiersz 1:

1
Skrypt działa tutaj absolutnie dobrze w programie Illustrator CC.
Scott

2
Otrzymywałem również błąd składniowy w linii 1. Kiedy ponownie otworzyłem .jsx, był dodatkowy kod powyżej oryginalnej linii 1 z kodu powyżej. Usunąłem wszystko powyżej #target Program Illustrator zapisał plik .jsx. Ponownie uruchomiłem program Illustrator i skrypt działa teraz dobrze. Używam również CC

Oto zaktualizowana wersja, która używa nazwy warstwy w nazwie pliku zamiast licznika numerycznego (więc „mydoc-layername.png” zamiast „mydoc-1.png”) ... jeśli ktokolwiek inny tego potrzebuje. gist.github.com/34e54d199de123b8e3c50a305f23115e
Chris Emerson

5

Dla uproszczenia i szybkości przepływu pracy prawdopodobnie użyłbym narzędzia do cięcia, aby utworzyć plasterki dla poszczególnych wzorów, a następnie Zapisz dla Internetu, upewniając się, że w rozwijanym menu „Eksportuj” wybrano opcję „Wszystkie plasterki”. Gdybym budował od zera, umieściłbym każdy wzór na własnym obszarze roboczym (co nadal można zrobić) i użyłem opcji Plik> Eksportuj z zaznaczoną opcją „Użyj obszarów roboczych”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.