Управление изображением в рамке Indesign - PullRequest
0 голосов
/ 30 марта 2020

В настоящее время я пытаюсь выяснить, как изменить цвет растрового изображения в indesign, используя basil. js. В идеале я хотел бы разместить изображение и использовать какой-то стиль для пост-стилей, чтобы изменить цвет.

var myImage = image('image_0009_10.psd', 0, 0, width, height);
property(myImage, "fillColor", "RISOBlue");

Сейчас я использую fillColor, но это только меняет цвет рамки, в которой находится растровое изображение. Кто-нибудь получил какие-либо идеи относительно того, как редактировать содержимое графического c кадра? Конкретно растровое изображение?

Ответы [ 3 ]

1 голос
/ 30 марта 2020

fabianmoronzirfas правильно, что вы должны нацеливаться на графику c фрейма изображения, я просто хочу предложить немного другой синтаксис, немного более похожий на базилик для достижения того же:

// @include ~/Documents/basiljs/basil.js

function draw() {

  var myImage = image('~/Desktop/someImage.psd', 0, 0);
  var myGraphics = graphics(myImage);
  property(myGraphics[0], 'fillColor', color(0, 0, 255));

}

Обратите внимание на использование функции graphics() для получения реальной графики в прямоугольнике изображения.

1 голос
/ 30 марта 2020

graphics() идеально подходит для этого (как упомянуто @mdomino), но может также просто захватить это свойство изображения:

var myImage = image('image_0009_10.psd', 0, 0, width, height);
property(myImage.graphics[0], "fillColor", "RISOBlue");

Запуск inspect(myImage) даст длинный список запуска dry из доступных свойств .

0 голосов
/ 30 марта 2020

Добро пожаловать в STO ? ? ?

В настоящее время вы устанавливаете fillColor для Rectangle, который содержит изображение. Вам придется явно выбрать изображение, поскольку оно является дочерним объектом этого Rectangle. См .:

Приведенный ниже код протестирован с InDesign 14.0.1 и текущей Basil. js Разработка версии 2.0.0-бета


// @include "./basil.js"
function setup() {
  var doc = app.activeDocument;
  var imageFile = file(new File($.fileName).parent + "/img.bmp");
  var img = image(imageFile, 0, 0, 100, 100);
  img.images[0].fillColor = doc.swatches[4];
}
...