如何將紅色,綠色和藍色的整數字節值轉換爲十六進制字符串,然後可以將該字符串分配給用於呈現到HTML5畫布上的上下文?在JavaScript中將整數轉換爲十六進制字符串
例如,轉換青色,
var r = 0;
var g = 255;
var b = 255;
爲十六進制的字符串分配到上下文填充顏色。
this.context.fillStyle = '#00FFFF';
或者還有更好的方法來完成這個嗎?
如何將紅色,綠色和藍色的整數字節值轉換爲十六進制字符串,然後可以將該字符串分配給用於呈現到HTML5畫布上的上下文?在JavaScript中將整數轉換爲十六進制字符串
例如,轉換青色,
var r = 0;
var g = 255;
var b = 255;
爲十六進制的字符串分配到上下文填充顏色。
this.context.fillStyle = '#00FFFF';
或者還有更好的方法來完成這個嗎?
只需使用RGB值,比如:
this.context.fillStyle = "rgb(0,255,255)";
你可以寫你自己的方法做這種轉換 -
// function to generate the hex code
function getHex(dec)
{
var hexArray = new Array("0", "1", "2", "3",
"4", "5", "6", "7",
"8", "9", "A", "B",
"C", "D", "E", "F");
var code1 = Math.floor(dec/16);
var code2 = dec - code1 * 16;
var decToHex = hexArray[code2];
return (decToHex);
}
原始出處 - http://programming.top54u.com/post/Javascript-Convert-Decimal-to-Hex.aspx
function pad(number, length) {
var str = '' + number;
while (str.length < length) str = '0' + str;
return str;
}
function toRGBHex(r,g,b) {
return pad(r.toString(16),2) + pad(g.toString(16),2) + pad(b.toString(16),2);
}
要轉換數字爲十六進制,可以使用內置的toString(16)函數。 簡單代碼:
function convert(integer) {
var str = Number(integer).toString(16);
return str.length == 1 ? "0" + str : str;
};
function to_rgb(r, g, b) { return "#" + convert(r) + convert(g) + convert(b); }
var color = to_rgb(r, g, b);
我認爲,最簡單的方法是:
var g = 255; g.toString(16); //gives "ff"
使用,讓語言的功能。
若要將各個RGB值轉換爲十六進制顏色,可以使用此功能,但使用"rgb("+r+","+g+","+b+")"
代替它更有意義。
function rgbToHex(r,g,b) {
return "#"+("00000"+(r<<16|g<<8|b).toString(16)).slice(-6);
}
最好的答案總是最簡單的! – 2011-01-20 09:38:43
但是,謝謝所有回答的人,他們都是有趣的答案,對我的知識和理解很有價值。每個+1。 – 2011-01-20 09:41:18
這是跨瀏覽器兼容嗎? – 2011-01-20 09:50:23