我想找到一种方法来编写一个程序,它可以将包含负整数的rgb转换成十六进制数,就像这个软件一样。
http://www.javascripter.net/faq/rgbtohex.htm
我已经有了这个,但似乎没有使用rgb:
rgb(-5,231,-17)
function rgb2hex(rgb){
rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
return (rgb && rgb.length === 4) ? "#" +
("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : '';
}
感谢任何可以提供帮助的人!
答案 0 :(得分:0)
试试这个,
function colorToHex(color) {
if (color.substr(0, 1) === '#') {
return color;
}
var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color);
var red = parseInt(digits[2]);
var green = parseInt(digits[3]);
var blue = parseInt(digits[4]);
var rgb = blue | (green << 8) | (red << 16);
return digits[1] + '#' + rgb.toString(16);
};
colorToHex('rgb(120, 120, 240)');
参考:http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx/