【发布时间】:2018-10-03 02:09:07
【问题描述】:
我尝试将rgba 转换为十六进制颜色代码,但无法隐藏我能够转换的剩余颜色的不透明度值,
下面是我的代码
var colorcode = "rgba(0, 0, 0, 0.74)";
var finalCode = rgba2hex(colorcode)
function rgba2hex(orig) {
var a, isPercent,
rgb = orig.replace(/\s/g, '').match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i),
alpha = (rgb && rgb[4] || "").trim(),
hex = rgb ?
(rgb[1] | 1 << 8).toString(16).slice(1) +
(rgb[2] | 1 << 8).toString(16).slice(1) +
(rgb[3] | 1 << 8).toString(16).slice(1) : orig;
if (alpha !== "") { a = alpha; }
else { a = 01; }
hex = hex + a;
return hex;
}
console.log(finalCode)
这里我需要 alpha 值也转换为十六进制代码。
请建议如何转换
输出
期望:000000bd
【问题讨论】:
-
github 上的 color2color 库可能就是你要找的:github.com/metaloha/color2color
-
请参阅stackoverflow.com/a/19366389/6782,它将为您提供一个 RGBA 数组,如果需要,该数组可以简单地转换为十六进制。
标签: javascript css