иллюстратор fillcolor объект

Есть ли сценарий, который может перебирать каждый цвет образца и каждый раз копировать «слой 1» и заполнять его цветом образца? Таким образом, если в образце 20 цветов, то будет добавлено 20 новых слоев с разными цветами.

Если да, может ли каждый новый слой получить имя из образца, а также экспортироваться как swatchName.jpg?


person notThatSimple    schedule 14.11.2015    source источник


Ответы (1)


Просматривая JavaScript API Illustrator, вы заметите, что объект Document имеет массив образцов. Все, что осталось сделать, это:

  1. цикл через каждый образец
  2. нарисовать прямоугольник текущего цвета образца
  3. экспортировать изображение

Я рекомендую использовать png-24 вместо jpg, чтобы избежать артефактов сжатия.

Вот скрипт с комментариями, который сначала запрашивает папку для экспорта:

#target illustrator

//get a reference to the the current document
var doc = app.activeDocument;
//...and it's swatches
var swatches = doc.swatches;
//select a folder to save images into
var savePath = Folder.selectDialog( 'Please select a folder to export swatch images into', '~' );
//exported image dimensions
var width = 100;
var height = 100;
//PNG export options
var pngExportOpts = new ExportOptionsPNG24();
   pngExportOpts.antiAliasing = false;//keep it pixel perfect 
   pngExportOpts.artBoardClipping = false;//use the path's dimensions (setup above), ignore full document size
   pngExportOpts.saveAsHTML = false;
   pngExportOpts.transparency = true;//some swatches might have transparency

//remove strokes
doc.defaultStroked = false;

//go through the swatches
for(var i = 0; i < swatches.length; i++){
   //add a rectangle
   var rect = doc.pathItems.rectangle(0, 0, width, height);  
   //set the fill colour based on the current swatch colour
   rect.fillColor =  swatches[i].color;

   //export png
   doc.exportFile( new File( savePath+ '/' + swatches[i].name + '.png'), ExportType.PNG24, pngExportOpts );
   //remove any previous paths (in case of transparent swatches)
   doc.pathItems.removeAll();
}

Также стоит отметить, что вы можете разбирать .ase (Adobe Swatch Exchange) на выбранном языке для экспорта изображений без использования Illustrator.

person George Profenza    schedule 17.11.2015