赤、緑、青の整数バイト値を16進文字列に変換し、HTML5キャンバスにレンダリングするためにコンテキストに割り当てるにはどうすればよいですか?
たとえば、シアンを変換し、
var r = 0;
var g = 255;
var b = 255;
コンテキスト塗りつぶし色に割り当てるための16進文字列。
this.context.fillStyle = '#00FFFF';
または、これを完全に行うより良い方法はありますか?
次のようにRGB値を使用するだけです。
this.context.fillStyle = "rgb(0,255,255)";
数値を16進数に変換するには、組み込みの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); //「ff」を与える
言語を与える機能を使用してください。
個々のRGB値を16進数の色に変換するには、この関数を使用できますが、代わりに"rgb("+r+","+g+","+b+")"
を使用する方が理にかなっています。
function rgbToHex(r,g,b) {
return "#"+("00000"+(r<<16|g<<8|b).toString(16)).slice(-6);
}
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);
}
この変換のために独自のメソッドを書くことができます-
// 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