我目前正在尝试弄清楚如何使用 basil.js 更改 indesign 中位图图像的颜色。理想情况下,我想放置图像并使用某种后期样式来更改颜色。
var myImage = image('image_0009_10.psd', 0, 0, width, height);
property(myImage, "fillColor", "RISOBlue");
现在我正在使用 fillColor 但这只会改变位图所在框架的颜色。有人对如何编辑图形框架的内容有任何想法吗?具体来说是位图?
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()
函数来获取图像矩形内的实际图形。
graphics()
非常适合这个(正如 @mdomino 提到的) - 但也可以只获取图像的该属性:
var myImage = image('image_0009_10.psd', 0, 0, width, height);
property(myImage.graphics[0], "fillColor", "RISOBlue");
运行
inspect(myImage)
将给出一长串可用属性。
您当前正在为包含图像的
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];
}