web-dev-qa-db-fra.com

Conversion d'entiers en chaîne hexadécimale en JavaScript

Comment convertir des valeurs d'octets entières de rouge, de vert et de bleu en une chaîne hexagonale, qui peut ensuite être affectée à un contexte pour le rendu sur un canevas HTML5?

Par exemple, convertir le cyan,

var r = 0;
var g = 255;
var b = 255;

En une chaîne hexadécimale pour l'attribution d'une couleur de remplissage contextuelle.

this.context.fillStyle = '#00FFFF';

Ou y a-t-il une meilleure façon de faire tout cela?

21
Toby Wilson

Utilisez simplement les valeurs RVB, comme:

this.context.fillStyle = "rgb(0,255,255)";
16
duncan

Pour convertir un nombre en hexadécimal, vous pouvez utiliser la fonction intégrée toString (16). Code simple:

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);
26
nemisj

Je pense que le moyen le plus simple est:

 var g = 255; 
 g.toString (16); // donne "ff" 

Utilisez la fonctionnalité qui donne la langue.

11
Zango

Pour convertir vos valeurs RVB individuelles en une couleur hexadécimale, vous pouvez utiliser cette fonction, bien que cela ait plus de sens de simplement utiliser "rgb("+r+","+g+","+b+")" à la place.

function rgbToHex(r,g,b) {
    return "#"+("00000"+(r<<16|g<<8|b).toString(16)).slice(-6);
}
1
kamoroso94
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); 
}
1
Felipe Ribeiro

Vous pouvez écrire votre propre méthode pour cette conversion -

// 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);
} 

source originale - http://programming.top54u.com/post/Javascript-Convert-Decimal-to-Hex.aspx

0
Sachin Shanbhag