在 Indesign 框架内操作图像

问题描述 投票:0回答:3

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

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

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

javascript adobe-indesign basil.js
3个回答
1
投票

fabianmoronzirfas 是正确的,你必须以图像帧的图形为目标,我只是想建议一个稍微不同的语法,它更像 basil 一样来实现同样的事情:

// @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
投票

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

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

运行

inspect(myImage)
将给出一长串可用属性


1
投票

您当前正在为包含图像的

fillColor
设置
Rectangle
。您必须明确选择图像,因为它是该
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];
}
© www.soinside.com 2019 - 2024. All rights reserved.