簡體   English   中英

在 JavaScript 中將整數轉換為十六進制字符串

[英]Converting integers to hex string in JavaScript

如何將紅色、綠色和藍色的整數字節值轉換為十六進制字符串,然后可以將其分配給上下文以渲染到 HTML5 畫布上?

例如,轉換青色,

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

分配給上下文填充顏色的十六進制字符串。

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

或者有沒有更好的方法來完全做到這一點?

要將數字轉換為十六進制,您可以使用內置的 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);

只需使用 RGB 值,例如:

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

我認為,最簡單的方法是:

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

let decimalNumber = 255;
decimalNumber.toString(16)
// Expected output is "FF"

或者如果你想轉換二進制基數

let decimalNumber = 24;
decimalNumber.toString(2)
// Expected output is "1010"

源 MDN .toString(16)

將一個整數轉換為十六進制字節,如:

const g = 255;

gPadded = Number(g).toString(16).padStart(2, "0");

使用數組會變得更好:

const r = 0;
const g = 255;
const b = 255;
const color = [r, g, b];

this.context.fillStyle = "#" + color.map(i=>i.toString(16).padStart(2, "0")).join("");

您可以為此轉換編寫自己的方法 -

// 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM