Как экспортировать слои Illustrator как отдельные изображения?

15

У меня есть файл Illustrator, который содержит шаблоны. Я хотел бы экспортировать каждый шаблон как отдельное изображение для использования в этой новой программе, которую я пытаюсь назвать Sketch. Есть ли сценарий пакетной обработки, который экспортирует слои в формате PNG или SVG? Мне бы хотелось, чтобы каждый геометрический рисунок был доступен в формате PNG, а не в виде одного большого файла.

Есть предположения?

PNG

Чарльз
источник

Ответы:

14

Если шаблоны действительно находятся на отдельных слоях, вы можете использовать сценарии для экспорта каждого слоя в виде отдельного png.

Карлос Канто написал сценарий для Illustrator и разместил его на форумах Adobe.

В случае гниения ссылок, вот сценарий Карлоса:

#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 > ScriptsIllustrator.

Скотт
источник
К вашему сведению, вышеприведенный скрипт не работает в Illustrator CC, он дает мне: Ошибка 8, Синтаксическая ошибка. Строка 1:
1
Сценарий работает абсолютно нормально в Illustrator CC здесь.
Скотт
2
Я также получал синтаксическую ошибку в строке 1. Когда я снова открыл .jsx, над исходной строкой 1 из кода выше был дополнительный код. Я удалил все выше #target Illustrator сохранил файл .jsx. Я перезапустил Illustrator, и скрипт теперь работает нормально. Я также использую CC
Вот обновленная версия, которая использует имя слоя в имени файла вместо числового счетчика (поэтому «mydoc-layername.png» вместо «mydoc-1.png») ... если кому-то еще нужно, как я. gist.github.com/34e54d199de123b8e3c50a305f23115e
Крис Эмерсон
5

Для простоты и скорости рабочего процесса я бы, вероятно, использовал инструмент срезов для создания срезов для отдельных шаблонов, затем «Сохранить для Web», убедившись, что в выпадающем меню «Export:» был выбран «Все срезы». Если бы я строил с нуля, я бы поместил каждый паттерн на свой артборд (что вы могли бы сделать) и использовал «Файл»> «Экспорт» с включенной опцией «Использовать артборды».

Алан Гилбертсон
источник