我正在使用 ImageMagick 的 perl API。我以 rgb 方案接收颜色值,但需要获取十六进制值才能在网站上使用它(示例#FFA8F5
)。
如何轻松将 rgb 颜色值转换为十六进制颜色值?
我正在使用 ImageMagick 的 perl API。我以 rgb 方案接收颜色值,但需要获取十六进制值才能在网站上使用它(示例#FFA8F5
)。
如何轻松将 rgb 颜色值转换为十六进制颜色值?
使用printf
或sprintf
与%x
格式,
my ($r,$g,$b) = (12,102,250);
printf("#%02x%02x%02x",$r,$g,$b);
输出:
#0c66fa
这是一种方法:
my @rgb = (102, 205, 0);
my $hex_rgb = sprintf "#%02X%02X%02X", @rgb;
function colorToHex(color) {
if (color.substr(0, 1) === '#') {
return color;
}
var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color),
red = parseInt(digits[2], 10),
green = parseInt(digits[3], 10),
blue = parseInt(digits[4], 10),
rgb = blue | (green << 8) | (red << 16);
return digits[1] + '#' + rgb.toString(16);
}