这是我正在努力以编程方式使特定量的十六进制颜色变亮或变暗的功能.只需输入一个字符串就像"3F6D2A"color(col)和一个base10整数(amt)一样,可以减轻或变暗.要变暗,传入负数(即-20).
我这样做的原因是因为我发现的所有解决方案,到目前为止,它们似乎使问题过于复杂.而且我觉得只需几行代码即可完成.如果您发现任何问题,请告诉我,或者进行任何调整以使其加速.
function LightenDarkenColor(col,amt) {
col = parseInt(col,16);
return (((col & 0x0000FF) + amt) | ((((col>> 8) & 0x00FF) + amt) << 8) | (((col >> 16) + amt) << 16)).toString(16);
}
Run Code Online (Sandbox Code Playgroud)
对于开发使用,这里是一个更容易阅读的版本:
function LightenDarkenColor(col,amt) {
var num = parseInt(col,16);
var r = (num >> 16) + amt;
var b = ((num >> 8) & 0x00FF) + amt;
var g = (num & 0x0000FF) + amt;
var newColor = g | (b << 8) …Run Code Online (Sandbox Code Playgroud)