上一篇笔记讲到如何获取不变对象的颜色值,我们再次深入讲解一下获取颜色类型中的渐变颜色值。
#target illustrator
function main() {
try {
var doc = app.activeDocument;
if (!doc.selection.length) {
alert("请先在Illustrator中选择一个或多个对象。");
return;
}
var gradientColorsArray = [];
for (var i = 0; i < doc.selection.length; i++) {
var item = doc.selection[i];
if (item instanceof PathItem && item.filled && item.fill && item.fill.gradientStops) { // 确保有渐变填充
for (var j = 0; j < item.fill.gradientStops.length; j++) {
var stop = item.fill.gradientStops[j];
if (stop && stop.color && stop.color.typename === "RGBColor") {
gradientColorsArray.push({
location: stop.rampPoint,
color: {
r: stop.color.red,
g: stop.color.green,
b: stop.color.blue,
a: stop.color.alpha // 包含透明度
}
});
} else {
$.writeln("警告:在处理渐变色标时发现无效颜色信息。");
}
}
}
}
if (gradientColorsArray.length > 0) {
alert("成功收集渐变颜色信息。\n\n" + JSON.stringify(gradientColorsArray));
} else {
alert("没有找到渐变填充的项目。");
}
} catch(e) {
alert("执行时发生错误:" + e.message + "\n在 Line " + e.line + ".");
}
}
main();