如何建立两个HEX颜色之间的差异? [英] How can I establish the difference between two HEX colours?

查看:172
本文介绍了如何建立两个HEX颜色之间的差异?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要能够提取两种十六进制颜色之间的不同,表示为十六进制颜色,以便以后使用LESS来组合它们。

I need to be able to extract the different between two hex colours, represented itself as a hex colour, in order to combine them at a later point using LESS.

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

Ideally, this would work in javascript

推荐答案

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

If you want a full Javascript solution :

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"

这篇关于如何建立两个HEX颜色之间的差异?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆