在JavaScript中将整数转换为十六进制字符串
如何将红色、绿色和蓝色的整数字节值转换为十六进制字符串,然后将其分配给上下文以呈现到HTML5画布上 例如,转换青色在JavaScript中将整数转换为十六进制字符串,javascript,hex,Javascript,Hex,如何将红色、绿色和蓝色的整数字节值转换为十六进制字符串,然后将其分配给上下文以呈现到HTML5画布上 例如,转换青色 var r = 0; var g = 255; var b = 255; 指定给上下文填充颜色的十六进制字符串 this.context.fillStyle = '#00FFFF'; 或者有更好的方法来实现这一点吗?只需使用RGB值,如: this.context.fillStyle = "rgb(0,255,255)"; 您可以为此转换编写自己的方法- // functi
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);
}
原始源代码-功能板(编号、长度){
var str=''+数字;
而(str.length
要将数字转换为十六进制,可以使用内置的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" var g=255; g、 toString(16)//给出“ff”
使用提供语言的功能。要将单个RGB值转换为十六进制颜色,您可以使用此函数,尽管只需使用“RGB(“+r+”、“+g+”、“+b+”)”更合理
function rgbToHex(r,g,b) {
return "#"+("00000"+(r<<16|g<<8|b).toString(16)).slice(-6);
}
函数rgbToHex(r,g,b){
返回“#”+(“00000”+(r您可以使用.toString(16)
let decimalNumber=255;
小数点。toString(16)
//预期产出为“FF”
或者如果要转换二进制基数
设小数=24;
小数点。toString(2)
//预期产出为“1010”
将一个整数转换为十六进制字节,如:
const g=255;
gPadded=Number(g).toString(16).padStart(2,“0”);
使用数组会更好:
常数r=0;
常数g=255;
常数b=255;
常量颜色=[r,g,b];
this.context.fillStyle=“#”+color.map(i=>i.toString(16).padStart(2,“0”)).join(“”);
这将只转换一个半字节。@El Ronnoco-请检查链接。当十进制数大于15时,我们会运行一个循环来调用此函数。@Tomas-这取决于您想如何使用它。我想我已经给出了一个现有代码的链接,可供您自定义。您不认为downvote有点苛刻吗?链接似乎已断开。链接似乎已断开,我不知道为什么应该对此进行否决?!这是一个有效的函数。最好的答案总是最简单的!但感谢所有回答的人,它们是有趣的答案,对我的知识和理解很有价值。每个+1。@ElRonnoco根据它在NN7+、IE5+、Mozilla 1.0+中工作。所以是的,非常交叉-浏览器兼容。(与rgba(…)
)Oi相同。这没有回答所问的问题。下面的答案,数字(整数)。toString(16)是正确的,应该被接受。@DavidScher回答问题的第二部分,我想这个答案缺少十六进制颜色值所需的0填充。'0x'+g.toString(16),添加前缀非常简单。您可以使用padStart
来实现此目的:g.toString(16)。padStart(2,'0')
~fyi我已经将您的编辑加入到我的答案中,尽管它已被拒绝。(在此处发送消息不是一个好方法)@MightyPork哦,好的,谢谢您告诉我。是的,这里应该有一种方法可以将人们发送到收件箱中。哦,好的。
function rgbToHex(r,g,b) {
return "#"+("00000"+(r<<16|g<<8|b).toString(16)).slice(-6);
}