将十六进制颜色值转换为 RGB 的主要问题是两种格式之间没有一一对应关系。 例如,颜色 #FF0000 在 RGB 中表示为 255, 0, 0,但在十六进制中它等于颜色 #F0。 这意味着如果两种不同的颜色由不同数量的每种颜色成分组成,则它们可以具有相同的 RGB 值。
"use strict"; function hexToRgb(hex) { var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; }
“严格使用”;
这行代码启用了严格模式,这是一种编写更好的 JavaScript 的方法。 在严格模式下,你不能使用未声明的变量。 这行代码必须位于 JavaScript 文件的顶部,以便严格模式工作。
函数 hexToRgb(十六进制){
var 结果 = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
返回结果? {
r: parseInt(结果[1], 16),
g: parseInt(结果[2], 16),
b: parseInt(结果[3], 16)
} : 无效的;
}
这是一个将十六进制颜色值转换为 RGB 颜色值的函数。 该函数接受一个参数,即您要转换的十六进制颜色值。 该函数使用正则表达式来匹配十六进制颜色值的模式,如果找到匹配项,它将返回具有红色、绿色和蓝色值的对象。 如果找不到匹配项,它将返回 null。
颜色之间的转换
这个问题没有一刀切的答案,因为在不同颜色空间之间转换颜色的最佳方法可能会因应用程序的特定需求而异。 但是,可以在下面找到有关如何在 JavaScript 中的颜色空间之间转换颜色的一些提示。
要将颜色从一种颜色空间转换为另一种颜色空间,可以使用 rgb() 和 hsl() 函数。 这些函数接受三个参数:分别是红色、绿色和蓝色值。 第一个参数指定基本颜色空间(例如 RGB),而第二个和第三个参数指定目标颜色空间(例如 HSL)。
要将颜色从一种像素格式转换为另一种像素格式,您可以使用 css() 函数。 该函数接受两个参数:一个表示 CSS 属性名称的字符串(例如“color”)和一个表示该属性所需值的数字(例如“50”)。
颜色格式
您可以在 JavaScript 中使用几种不同的颜色格式。
RGB——红、绿、蓝
十六进制——#RRGGBB
HSL——色调、饱和度、亮度