2015-11-14 6 views
-1

Есть ли сценарий, который может проходить через каждый swatchcolor и каждый раз, когда он создает копию «layer 1» и заполняет ее swatchcolor? Поэтому, если в образце есть 20 цветов, тогда будет добавлено 20 новых слоев с разными цветами.иллюстратор fillcolor object

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

ответ

0

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

  1. петля через каждый Swatch
  2. нарисовать прямоугольник текущего Swatch цвета
  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(); 
} 

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