【问题标题】:JavaScript to get alpha value from HEXJavaScript 从 HEX 获取 alpha 值
【发布时间】:2010-09-04 20:00:08
【问题描述】:

我正在开发一种工具,可以在最大任意格式之间转换 html 颜色,例如 RGB、RGBA、HEX、HSLA、NAMED 等。

还有 HEX(#FFFFFF) 到 Alpha HEX (#00FFFFFF) 用于 IE6 中的过滤器。 但是,我的问题是我无法将 alpha 值(即 00)从 Alpha hex 颜色转换为 rgba alpha 值,即 0.5。 请帮帮我...

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    只需将前 2 位从十六进制转换为数字,然后除以 255。

    var rx = /^#([0-9a-f]{2})[0-9a-f]{6}$/i;
    var m = rx.match(theColor);
    if (m) {
       alpha = parseInt(m[1], 16) / 255;
    }
    

    【讨论】:

      【解决方案2】:

      我知道你已经接受了 KennyTM 的回答,但我想我还是会添加这个。您可以对十六进制转换的数字使用移位和屏蔽来获取它的某些部分:

      // Return an array in the format [ red, green, blue, alpha ]
      function hex2rgba(str) {
          var num = parseInt(str.slice(1), 16); // Convert to a number
          return [num >> 16 & 255, num >> 8 & 255, num & 255, num >> 24 & 255];
      }
      
      var rgba = hex2rgba("#00FFFFFF");
      // -> [255, 255, 255, 0]
      

      然后您可以将最后一个元素除以 255 以获得可用于 IE 过滤器的值。

      更多信息:

      【讨论】:

      • 好的,谢谢!我喜欢你的回答是因为它处理 JavaScript 将按位运算符的操作数视为有符号 32 位整数。
      猜你喜欢
      • 1970-01-01
      • 2012-09-04
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多