在 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.
我目前正在尝试弄清楚如何使用 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.