Comment exporter des calques Illustrator en images individuelles?

15

J'ai un fichier Illustrator contenant des motifs. Je voudrais exporter chaque motif en tant qu'image individuelle à utiliser dans ce nouveau programme que j'essaie d'appeler Sketch. Existe-t-il un script de traitement par lots qui exporte les couches au format PNG ou SVG? J'aimerais que chaque motif géométrique soit disponible en PNG, et non en tant que grand fichier.

Des pensées?

png

Charles
la source

Réponses:

14

Si les motifs se trouvent en effet sur des calques individuels, vous pourrez peut-être utiliser des scripts pour exporter chaque calque en tant que png individuel.

Carlos Canto a écrit un script pour Illustrator et l'a publié sur les forums Adobe.

En cas de pourriture de lien, voici le script de 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]);
        }
    }
}

Copiez et collez ceci dans un fichier texte et enregistrez le fichier texte avec un suffixe .jsx. Placez ensuite le fichier .jsx dans Adobe Illustrator CS (x) / Presets / [votre langue] / Scripts. Après avoir relancé Illustrator, le script doit être visible via File > Scriptsdans Illustrator.

Scott
la source
Pour info, le script posté ci-dessus ne fonctionne pas dans Illustrator CC, il me donne: Erreur 8, Erreur de syntaxe. Ligne 1:
1
Le script fonctionne parfaitement dans Illustrator CC ici.
Scott
2
J'obtenais également une erreur de syntaxe sur la ligne 1. Lorsque j'ai rouvert le .jsx, il y avait du code supplémentaire au-dessus de la ligne 1 d'origine du code ci-dessus. J'ai supprimé tout ce qui précède #target Illustrator a enregistré le fichier .jsx. J'ai relancé Illustrator et le script fonctionne bien maintenant. J'utilise également CC
Voici une version mise à jour qui utilise le nom de la couche dans le nom de fichier au lieu d'un compteur numérique (donc "mydoc-layername.png" au lieu de "mydoc-1.png") ... si quelqu'un d'autre a besoin comme moi. gist.github.com/34e54d199de123b8e3c50a305f23115e
Chris Emerson
5

Pour la simplicité et la rapidité du flux de travail, j'utiliserais probablement l'outil de découpe pour créer des tranches pour les modèles individuels, puis Enregistrer pour le Web, en m'assurant que "Toutes les tranches" était sélectionné dans la liste déroulante "Exporter:". Si je construisais à partir de zéro, je mettrais chaque motif sur son propre plan de travail (ce que vous pourriez toujours faire) et utiliser Fichier> Exporter avec l'option "Utiliser les plans de travail" cochée.

Alan Gilbertson
la source