如何在Java中将RGB颜色转换为十六进制
我到处找了,但找不到合适的解决办法 我有一个RGB颜色,我想转换成这种格式:如何在Java中将RGB颜色转换为十六进制,java,string,int,hex,rgb,Java,String,Int,Hex,Rgb,我到处找了,但找不到合适的解决办法 我有一个RGB颜色,我想转换成这种格式:0xffffff 许多答案将其转换为这种格式:#ffffff 有人知道如何将它转换成这种格式(0xffffffff)吗 编辑:解决了!实际上我需要一个int,但我不小心说了string,woopsie。现在好像可以用了,谢谢 片段: double frequency = .3; double r = 255; double g = 255; double b = 255; for (int i = 0; i < 3
0xffffff
许多答案将其转换为这种格式:#ffffff
有人知道如何将它转换成这种格式(0xffffffff
)吗
编辑:解决了!实际上我需要一个int,但我不小心说了string,woopsie。现在好像可以用了,谢谢
片段:
double frequency = .3;
double r = 255;
double g = 255;
double b = 255;
for (int i = 0; i < 32; ++i)
{
// I am trying to make a rainbow, hence this for loop and the Math.sin
r = Math.sin(frequency*i + 0) * 127 + 128;
g = Math.sin(frequency*i + 2) * 127 + 128;
b = Math.sin(frequency*i + 4) * 127 + 128;
int red = (int)r;
int green = (int)g;
int blue = (int)b;
// converting, outputs a string
System.out.println(result);
}
双频=.3;
双r=255;
双g=255;
双b=255;
对于(int i=0;i<32;++i)
{
//我正在尝试制作一道彩虹,因此这是一个循环和Math.sin
r=数学sin(频率*i+0)*127+128;
g=数学sin(频率*i+2)*127+128;
b=数学sin(频率*i+4)*127+128;
红色整数=(整数)r;
绿色整数=(整数)g;
蓝色整数=(整数)b;
//转换,输出一个字符串
系统输出打印项次(结果);
}
答复:
这个函数接受int,而不是double,但我认为这不是问题。希望我正确理解了你的问题
答复:
这个函数接受int,而不是double,但我认为这不是问题。希望我正确地理解了您的问题。如果您不希望数字作为
字符串,而是作为int
:
int hexval = red * 65536 + green * 256 + blue;
RR
,GG
,BB
分别表示0-255之间的值(RGB值)。十六进制数的每个数字的值可以在0到16之间,这意味着您需要存储最多为16^6=16.777.216的数字
->dataypeint
应该可以。
然后只需将您的int
:
int hexval = red * 65536 + green * 256 + blue;
您可以选择将其输出:
System.out.printf("0x%06X\n", hexval);
如果您希望数字不是作为字符串,而是作为int
:
int hexval = red * 65536 + green * 256 + blue;
RR
,GG
,BB
分别表示0-255之间的值(RGB值)。十六进制数的每个数字的值可以在0到16之间,这意味着您需要存储最多为16^6=16.777.216的数字
->dataypeint
应该可以。
然后只需将您的int
:
int hexval = red * 65536 + green * 256 + blue;
您可以选择将其输出:
System.out.printf("0x%06X\n", hexval);
String result=String.format(“0x%x”,红色String result=String.format(“0x%x”,红色