菜鸟笔记003 获取目标对象的颜色值

server/2024/10/21 5:47:36/
htmledit_views">

illustrator中,我们时常要获取一些对象的颜色值,但是一时不知道如何获取,下面我就来讲讲如何获取目标对象的颜色值。

下面以选择对象的最上层对象为例,我们通过查阅html" title=javascript>javascript编程手册,可以很容易获取下面代码:

html" title=javascript>javascript">var sel=app.activeDocument.selection[0]; //获取最上层对象
var col=sel.fillColor; //获取填充颜色
alert(col) //在屏幕输出颜色

但是,当我们把上面代码直接在illustrator运行。

得到的是下面的结果,但是这并不是我们要的,输出的是颜色的类型,不是我们要的是颜色的数值。所以我们再次查阅手册,在[CMYKColor]看到

看了资料,我们可以很容易获取对象CMYKColor的cyan, magenta, yellow, black四种颜色的值,但是对象的颜色类型只有CMYKColor一种吗?肯定不是的。查阅手册我们看到Color有8种类型:

Color
An abstract parent class for all color classes used in Illustrator. Subclasses are:
CMYKColor
GradientColor
GrayColor
LabColor
NoColor
PatternColor
RGBColor
SpotColor

 好了我们对颜色有个基本的了解和认识了,我们可以写出获取颜色数值并把它包装成一个 getColorValues的函数了。

html" title=javascript>javascript">function getColorValues(color) {switch (color.typename) {case 'CMYKColor':var c = color.cyan;var m = color.magenta;var y = color.yellow;var k = color.black;return [c, m, y, k];case 'RGBColor':var r = color.red;var g = color.green;var b = color.blue;return [r, g, b, ''];case 'GrayColor':return ['', '', '', color.gray];case 'SpotColor':return getSpotColor(color.spot);case 'PatternColor':return ['', '', '', '', color.pattern.name];case 'GradientColor':return [undefined];case 'NoColor':return [undefined];}
}

完整代码如下:

html" title=javascript>javascript">function getColor(){var sel=app.activeDocument.selection[0];var col=sel.fillColor;
alert(getColorValues(col));}function getColorValues(color) {switch (color.typename) {case 'CMYKColor':var c = color.cyan;var m = color.magenta;var y = color.yellow;var k = color.black;return [c, m, y, k];case 'RGBColor':var r = color.red;var g = color.green;var b = color.blue;return [r, g, b, ''];case 'GrayColor':return ['', '', '', color.gray];case 'SpotColor':return getSpotColor(color.spot);case 'PatternColor':return ['', '', '', '', color.pattern.name];case 'GradientColor':return [undefined];case 'NoColor':return [undefined];}
}getColor ();

后续,如果想要获取多个对象的颜色数值呢,可以加上下面代码:

html" title=javascript>javascript">function getColors(items) {var colors = [];for (var i = 0; i < items.length; i++) {var item = items[i];if (item.filled) colors.push(getColorValues(item.fillColor));if (item.stroked) colors.push(getColorValues(item.strokeColor));}return colors;
}


http://www.ppmy.cn/server/128287.html

相关文章

Redis: 集群架构,优缺点和数据分区方式和算法

集群 集群指的就是一组计算机作为一个整体向用户提供一组网络资源 我就举一个简单的例子&#xff0c;比如百度&#xff0c;在北京和你在上海访问的百度是同一个服务器吗&#xff1f;答案肯定是不是的&#xff0c;每一个应用可以部署在不同的地方&#xff0c;但是我们提供的服务…

APC论文总结

论文详情 论文标题&#xff1a;APC: Adaptive Patch Contrast for Weakly Supervised Semantic Segmentation 论文作者&#xff1a;Wangyu Wu&#xff0c;Tianhong Dai&#xff0c;Zhenhong Chen&#xff0c;Xiaowei Huang&#xff0c;Fei Ma&#xff0c;Jimin Xiao 发表时间…

2.4Mybatis——缓存机制

2.4Mybatis——缓存机制 缓存配置一二级缓存一级缓存二级缓存 合集总览&#xff1a;Mybatis框架梳理 讲真&#xff0c;Mybatis缓存这块的记忆已经模糊了。刚好此时写测试用例出现一个BUG&#xff0c;就以这个问题作为切入点来梳理一下。 Testpublic void test(){Address ad…

uniapp学习(002 常用的内置组件)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战&#xff0c;开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第5p-第p10的内容 文章目录 view组件相当于div标签按下松开例子冒泡例子 text组件 相当于span标签scroll-view纵…

利用Spring Boot构建足球青训管理平台

2 相关技术简介 2.1 Java技术 Java是一门伟大的纯面向对象的编程语言和编程语言。同时&#xff0c;它还是Java语言从嵌入式开发到企业级开发的平台。Java凭借其一次编译&#xff0c;任何地方执行的优点&#xff0c;使得盛行的web应用程序有大量的Java编译&#xff0c;很好地支…

信号处理: Block Pending Handler 与 SIGKILL/SIGSTOP 实验

1. 信号处理机制的 “三张表” kill -l &#xff1a;前 31 个信号为系统标准信号。 block pending handler 三张表保存在每个进程的进程控制块 —— pcb 中&#xff0c;它们分别对应了某一信号的阻塞状态、待处理状态以及处理方式。 block &#xff1a;通过 sigset_t 类型实现&…

数据库管理-第245期 主流国产数据库RAC架构概览(20240929)

数据库管理245期 2024-09-29 数据库管理-第245期 主流国产数据库RAC架构概览&#xff08;20240929&#xff09;1 DMDSC2 KingBaseES RAC3 PolarDB4 Cantian5 HaloDB DLB/Data Sharding总结 数据库管理-第245期 主流国产数据库RAC架构概览&#xff08;20240929&#xff09; 作者…

18732 最短路问题

### 思路 1. **建模问题**&#xff1a;将车站和公交线路建模为图&#xff0c;其中车站是节点&#xff0c;公交线路是带权边。 2. **选择算法**&#xff1a;使用Dijkstra算法求解从车站1到车站n的最短路径问题。 3. **初始化**&#xff1a;创建一个优先队列&#xff08;最小堆&…