javascript - 如何确定两种 HEX 颜色之间的差异?

标签 javascript colors hex less

我需要能够提取两种十六进制颜色之间的差异,将其自身表示为十六进制颜色,以便稍后使用 LESS 将它们组合起来。

理想情况下,这会在 javascript 中工作

最佳答案

如果你想要一个完整的 Javascript 解决方案:

function parseHexColor(c) {
  var j = {};

  var s = c.replace(/^#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/, function(_, r, g, b) {
    j.red = parseInt(r, 16);
    j.green = parseInt(g, 16);
    j.blue = parseInt(b, 16);

    return "";
  });

  if(s.length == 0) {
    return j;
  }
};

function colorDifference(a, b) {
  var a = parseHexColor(a);
  var b = parseHexColor(b);

  if(typeof(a) != 'undefined' && typeof(b) != 'undefined') {
    return "#" + (a.red - b.red).toString(16) + (a.green - b.green).toString(16) + (a.blue - b.blue).toString(16);
  }
};

试试你自己:

colorDifference('#FFFFFF', '#AABBCC'); // returns : "#554433"

关于javascript - 如何确定两种 HEX 颜色之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820655/

相关文章:

javascript - foreach 循环和返回值 undefined

java - 从灰度图像构建颜色条

c - 如何将 char 转换为十六进制和二进制

python - 基于颜色的图像分割

python - 列出对opencv bgr的理解,以对调色板进行十六进制合并。 TypeError:无法解压缩不可迭代的numpy.uint8对象

assembly - 为什么DCPU-16指令的二进制表示中有一个前导1

javascript - Expo/React-native AsyncStorage.getItem() 解析为 null

javascript - Rails - Turbo - 链接预加载但在窗口加载事件后几秒钟内未使用

javascript - 如何让 tooltipster 在 mouseup 上触发并在 ajax 函数中使用选定的文本?

javascript - 使用 JS 更改页面背景颜色的最快方法?