gpt4 book ai didi

javascript - 使用extendscript更改对象的颜色

转载 作者:行者123 更新时间:2023-11-28 19:41:48 25 4
gpt4 key购买 nike

我环顾四周,找不到任何可以做到这一点的东西,所以我想我可能问了错误的问题。

我在 illustrator 的页面上有一系列具有特定 RGB 颜色的对象,比如 255 红色。我想选择具有此颜色的项目或循环查看某个项目是否是此颜色并将其更改为 CMYK 颜色,例如 75% 灰色

它做到了这一点,但它总是选择要更改的项目

var currPageItem=app.activeDocument.activeLayer;
var myColour = new RGBColor("255,0,0")//initial default colour
var myGrey= new CMYKColor("0,0,0,75")//initial default grey


// Stepping through each item on the layer.
for (var i = 0; i < currPageItem.pageItems.length; i++) {
var currentItem = currPageItem.pageItems[i];
//$.writeln("Object name=", currentItem);
if (currentItem.RGBColor=myColour) {
$.writeln("Colour function",i);
};

}

我也希望能够更改笔触颜色。非常感谢任何帮助,非常坚持这一点

最佳答案

谢谢你给我指明了正确的方向,乔什。我想我现在已经明白了。首先必须将文件菜单下的文档颜色模式设置为RGB。如果不这样做,那么当它的脚本读取页面项目时,它会将它们检查为 CMYK,因此不会识别任何 RGB 值。

它还将值检查到无数小数位,因此需要四舍五入。已进行以下调整,这似乎有效。欢迎任何其他改进

var layer = app.activeDocument.activeLayer;
var testColor = new RGBColor()//initial default colour
testColor.red = 180;
testColor.green = 93;
testColor.blue = 120;
var myGrey= new CMYKColor()//initial default grey
myGrey.black=75;


// Stepping through each item on the layer.
for (var i = 0; i < layer.pathItems.length; i++) {
var item = layer.pathItems[i];
$.writeln("Test colour ",Math.round( item.fillColor.red))
if (Math.round(item.fillColor.red) == testColor.red &&
Math.round(item.fillColor.green)== testColor.green &&
Math.round(item.fillColor.blue) == testColor.blue)
{
$.writeln("Color function",i );
item.fillColor = myGrey;
}

}

关于javascript - 使用extendscript更改对象的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com