我们有时候需要在脚本中放入一个颜色拾取器,来让用户自定义颜色。颜色拾取器的类型千千万,今天简单介绍几种我自己常用的颜色拾取器。
一、系统自带原始版。调用插件右侧下载
colorPicker()
$.colorPicker(name)
| name | 要在对话框中预先选择的颜色,作为十六进制 RGB 值 (),或平台默认值。0xRRGGBB-1 |
调用特定于平台的颜色选择对话框,并将所选颜色作为十六进制 RGB 值返回:。0xRRGGBB
返回:Number
验证一下:

界面难看,也不好用,主要是不符合我们的使用习惯。
二、adobe-color-picker
这是用户自己写的一个颜色拾取器,按照提示直接放到你的脚本里就好。
验证一下:

这个颜色拾取器最优秀的地方就是可以很方便的调整颜色的亮度,方便你做出有侧重点的画面。
三、系统自带经典版
使用方法:
var externalLibrary = new ExternalObject('lib:C:\AEColorPicker.aex');
var oldColor = 0x20F186;
var newColor = externalLibrary.colorPicker(oldColor, "dialog_title");
if(newColor == -1){ //Returns -1 if user clicked on cancel
newColor = oldColor;
}
演示一下:

这里简单讲讲怎么把获取到的颜色数字转为我们常用的rgb值。
//转为16进制全大写。
(num).toString(16).toUpperCase();
/**
* @description 16进制颜色转RGB
* @param {String} h 16进制颜色值
*/
function hexToRGB(h) {
var h = h.replace("#", "");
var r = 0;
var g = 0;
var b = 0;
r = "0x" + h[0] + h[1];
g = "0x" + h[2] + h[3];
b = "0x" + h[4] + h[5];
return [r / 255, g / 255, b / 255];
}
//16进制颜色值不足6位前面补0
pad(newColor, 6)
/**
* @description 数字前面自动补0
* @param {Number} num 目标数字
* @param {Number} n 处理后的数字位数
*/
function pad(num, n) {
return (Array(n).join(0) + num).slice(-n);
}
就是这些,按需取用,如果你还有更好、更常用的颜色拾取器,也请分享至评论区。
以上就是本次分享的全部内容,感谢您的耐心阅读,我们下次分享再见;如果本文对您有什么帮助,别忘了动动手指点个赞❤️和关注。
原文链接:https://new.freehpcg.com/archives/21397,转载请注明出处。

请先 !