如何使用脚本在 Illustrator 中更改 LAB 颜色的值?
Posted
技术标签:
【中文标题】如何使用脚本在 Illustrator 中更改 LAB 颜色的值?【英文标题】:How do I change values of LAB colors in Illustrator using a script? 【发布时间】: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,但它没有帮助。弹出警报消息,但未进行任何更改。
【参考方案1】:
Illustrator 的 API 用于管理 Lab 颜色的工具有限。据我所知,只有现货 Lab 颜色可以通过脚本进行更改。
下面的函数将给定名称的 Lab 专色更改(或创建)给定值(L、a、b):
function change_lab_spot_color(L,a,b,spot_name)
var lab_color = new LabColor();
lab_color.l = L;
lab_color.a = a;
lab_color.b = b;
try
var spot = app.activeDocument.spots.getByName(spot_name);
catch(e)
var spot = app.activeDocument.spots.add();
spot.name = spot_name;
spot.colorType = ColorModel.SPOT;
spot.spotKind = SpotColorKind.SPOTLAB;
spot.color = lab_color;
var spot_color = new SpotColor();
spot_color.spot = spot;
// it will create the spot color 'test' (if there is no swatch with this name)
change_lab_spot_color(50,50,0,'test');
// it will change the values of the spot color 'test' to L50,a0,b50
change_lab_spot_color(50,0,50,'test');
如果您想通过脚本更改颜色,您的作品应该使用专色 Lab 颜色绘制。可能很有可能重新着色您的作品以使用另一个脚本自动识别 Lab 颜色。
【讨论】:
以上是关于如何使用脚本在 Illustrator 中更改 LAB 颜色的值?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 在 Adobe Illustrator 中设置笔触对齐
通过脚本将效果应用于 Illustrator PathItem
自动化Illustrator“文本输出选项”对话框以进行批量导出