Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将RGB颜色转换为十六进制_Java_String_Int_Hex_Rgb - Fatal编程技术网

如何在Java中将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

我到处找了,但找不到合适的解决办法

我有一个RGB颜色,我想转换成这种格式:
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的数字‬
->dataype
int
应该可以。
然后只需将您的
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的数字‬
->dataype
int
应该可以。
然后只需将您的
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”,红色