【发布时间】:2022-01-03 05:15:44
【问题描述】:
我正在尝试用 JS 编写一个脚本,它将遍历我文件中的所有对象,并更改它们的 LAB 颜色值(分别更改 L、A 和 B)。
我试过这段代码:
var doc = app.activeDocument;
doc.swatches.getByName("MySwatchName").color.l = 42;
doc.swatches.getByName("MySwatchName").color.a = 40;
doc.swatches.getByName("MySwatchName").color.b = 2;
但它不起作用。可以更改样本名称,但不能更改颜色值。
我阅读了this article,现在我想知道,我正在尝试做的事情是否使用脚本 API 是不可能的?
【问题讨论】:
-
看来直接做是不可能的。但是 Carlo 的代码给出了希望(虽然我可能错了)它可以间接完成:Lab > 转换为 RGB > 通过一些公式更改 RGB 颜色 > 转换回 Lab(或从某个预定义列表中选择最接近的 Lab 颜色) .需要进一步询问
-
至于“预定义的颜色列表”,顺便说一句,它可能是一个最简单(也是最愚蠢但有效)的解决方案。比如说,您可以使用 50*50*50 = 125.000 个 Lab-color 色板制作一个文件调色板(当然不是手动),通过脚本打开文件并从中获取您需要的最近的色板。我为 Pantone 颜色做了类似的事情。
-
嗨,Yuri,感谢您的帮助,我没有逃跑,但仍在尝试弄清楚如何使用 Carlo 的代码来满足我的需求。您知道将 LAB 颜色转换为 CMYK 并再次转换回来的具体代码是什么吗?
-
好的,感谢您的反馈。如果您需要帮助,请告诉我。
-
我试过这个代码:
var doc = app.activeDocument swatchColor = doc.swatches.getByName('C'); const colorList = [swatchColor] convertSampleColor(ImageColorSpace.LAB, colorList, ImageColorSpace.CMYK, ColorConvertPurpose.defaultpurpose); alert("Code executed.");这个代码应该只是将色板专色从 LAB 转换为 CMYK,但它没有帮助。弹出警报消息,但未进行任何更改。
标签: javascript scripting adobe adobe-illustrator