Работа с цветом. Часть 3. Образцы (Swatches)

Для управления swatches (образцами) в объектной модели Illustrator имеются четыре класса:

Первые два нужны для работы с образцами, вторые – для работы с группами образцов.

Рассмотрим пример сценария, который создает новый swatch.

var docRef = app.documents.add();

// Create the new color for the swatch
var cmykColor = new CMYKColor();
cmykColor.cyan = 75;
cmykColor.magenta = 50;
cmykColor.yellow = 20;
cmykColor.black = 5;

// Create the new swatch using the above color
var swatch = docRef.swatches.add();
swatch.color = cmykColor;
swatch.name = "MySwatch";

В первой строке добавляется новый документ.

var docRef = app.documents.add();

В следующем блоке кода создается объект CMYKColor и задаются значения его свойств.

// Create the new color for the swatch
var cmykColor = new CMYKColor();
cmykColor.cyan = 75;
cmykColor.magenta = 50;
cmykColor.yellow = 20;
cmykColor.black = 5;

Cоздание объекта CMYKColor детально описано в первой части статьи "Работа с цветом".

В следующей строке создается новый объект Swatch с помощью метода add() объекта Swatches и сохраняется в переменной swatch.

var swatch = docRef.swatches.add();

Затем этому объекту задаются свойства color и name.

swatch.color = cmykColor;
swatch.name = "MySwatch";

Цветом swatch будут параметры объекта CMYKColor, сохраненные в переменной cmykColor, а именем – MySwatch, соответственно.

В Illustrator это будет выглядет так.

color script model .

Вопрос - Ответ

Вопрос: Как сделать swatch глобальным?

Ответ: Для этого вместо объекта Swatch нужно создавать объект Spot cо свойством colorType = ColorModel.PROCESS.

После изменений код будет следующим:

var docRef = app.documents.add();

// Create the new color for the swatch
var cmykColor = new CMYKColor();
cmykColor.cyan = 75;
cmykColor.magenta = 50;
cmykColor.yellow = 20;
cmykColor.black = 5;

var newSpot = docRef.spots.add();
newSpot.name = "MySwatch";
newSpot.colorType = ColorModel.PROCESS;
newSpot.color = cmykColor;
var globalSwatch = new SpotColor();
globalSwatch.spot = newSpot;
globalSwatch.tint = 100;

В результате его выполнения, мы увидим вот это.

color script model .

Вопрос: Как применить swatch к заливке объекта?

Ответ: Создать указатель на объект и определить его свойство fillColor. Для этого добавим в конце скрипта следующие строки.

var pathRef = app.activeDocument.pathItems.star (300, 300, 100, 40, 5, false);
pathRef.filled = true;
pathRef.fillColor = newSpot.color;

В результате, нарисуется звезда и ей будет назначен наш глобальный свотч в качестве цвета заливки.

color script model .

Вопрос: Как применить swatch к обводке объекта?

Ответ: Как же как и к заливке, только вместо свойства filled будет stroked, а вместо fillColorstrokeColor.

var pathRef = app.activeDocument.pathItems.star (300, 300, 100, 40, 5, false);
pathRef.stroked = true;
pathRef.strokeColor = newSpot.color;

Создание swatch-группы и добавление в нее отдельного образца

Добавим следующий код:

// Create a new SwatchGroup
var swatchGroup = docRef.swatchGroups.add();
swatchGroup.name = "MyGroup";

// Add Swatch in Swatches Group
swatchGroup.addSpot(newSpot);

В первых двух строках создается новая swatch-группа с помощью метода add() объекта SwatchGroups и ей задается имя MyGroup.

var swatchGroup = docRef.swatchGroups.add();
swatchGroup.name = "MyGroup";

Затем с помощью метода addSpot() объекта SwatchGroup в нее добавляется созданный ранее swatch newSpot.

swatchGroup.addSpot(newSpot);

В результате выполнения скрипта на палитре Swatches появится новая группа MyGroup со свотчем MySwatch.

color script model

.


СтатьиСледующаяПредыдущая