在 Indesign 框架内处理图像

Manipulating image within Indesign frame

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

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

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

欢迎来到申通

您当前正在为包含图像的 Rectangle 设置 fillColor。您必须显式 select 图像,因为它是 Rectangle 的子对象。参见:

以下代码使用 InDesign 14.0.1 和当前 Basil.js Develop version 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];
}

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

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

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

运行 inspect(myImage) 会给出一长串 available properties.