0

我目前正在尝试弄清楚如何使用 basil.js 在 indesign 中更改位图图像的颜色。理想情况下,我想放置图像并使用某种后期样式来更改颜色。

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

现在我正在使用 fillColor 但这只会改变位图所在框架的颜色。有人对如何编辑图形框架的内容有任何想法吗?特别是位图?

4

3 回答 3

1

fabianmoronzirfas 是正确的,您必须针对图像帧的图形,我只是想建议一种稍微不同的语法,这更像是罗勒,以实现相同的目标:

// @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()函数来获取图像矩形内的实际图形。

于 2020-03-30T10:25:33.690 回答
1

graphics()非常适合这个(正如@mdomino 提到的)——但也可以只获取图像的该属性:

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

跑步inspect(myImage)会给出一长串可用属性的清单。

于 2020-03-30T15:44:35.940 回答
0

欢迎来到 STO

您当前正在fillColorRectangle包含图像的 设置 。您必须明确选择图像,因为它是 that 的子对象Rectangle。看:

下面的代码使用 InDesign 14.0.1 和当前的Basil.js Develop 版本 2.0.0-beta 进行了测试


// @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];
}
于 2020-03-30T06:04:02.287 回答