【问题标题】:Getting Hex from RGBA in js在js中从RGBA获取十六进制
【发布时间】:2020-10-21 18:19:18
【问题描述】:

如何将给定的 RGBA 转换为十六进制,假设它们中的每一个的值都作为单独的变量 r、g、b、a 给出,其中 r、g 和 b 是 1-225,而 a 在 javascript 中是 0-1。

请为它定义一个函数。

【问题讨论】:

标签: javascript colors hex rgba


【解决方案1】:

RGB 到十六进制转换

function HexFunc(c) {
  var hex = c.toString(16);
  return hex.length == 1 ? "0" + hex : hex;
}

function rgbToHexFunc(r, g, b) {
  let v = "#" + HexFunc(r) + HexFunc(g) + HexFunc(b);
  console.log(v);
  return v;
}

alert(rgbToHexFunc(092, 334, 159)); // #5c94e9f

【讨论】:

    【解决方案2】:

    如果您不需要 rgbA 中的“a”,请告诉我,我将删除它的支持。

    但基本上,您只需将每个整数转换为十六进制字符串,并在需要时添加 0。

    function rgbaToHex (r,g,b,a) {
      var outParts = [
        r.toString(16),
        g.toString(16),
        b.toString(16),
        Math.round(a * 255).toString(16).substring(0, 2)
      ];
    
      // Pad single-digit output values
      outParts.forEach(function (part, i) {
        if (part.length === 1) {
          outParts[i] = '0' + part;
        }
      })
    
      return ('#' + outParts.join(''));
    }
    
    alert(rgbaToHex(255,34,56,1));

    【讨论】:

      猜你喜欢
      • 2019-08-12
      • 2012-09-16
      • 2012-06-20
      • 2014-03-05
      • 2015-08-01
      • 2020-02-12
      • 1970-01-01
      • 2017-06-02
      • 2019-01-20
      相关资源
      最近更新 更多