开发者社区> 问答> 正文

如何在Java中将RGB颜色转换为十六进制

我到处搜索过,但找不到合适的解决方案。

我想将RGB颜色转换为以下格式: 0xffffffff

许多答案将其转换为以下格式: #ffffff

有人知道如何将其转换为这种格式(0xffffffff)吗?

编辑:解决了!我实际上需要一个int,但是我不小心说了字符串,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);
}

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 23:23:18 806 0
1 条回答
写回答
取消 提交回答
  • public static int colorToInt(int r, int g, int b) {
        int result = 0;
        result += r;
        result = result << 8;
        result += g;
        result = result << 8;
        result += b;
    
        return result;
    }
    

    这是一个例子:

    System.out.println(0xffffff); // 16777215
    System.out.println(colorToInt(255, 255, 255)); // 16777215
    

    代表:https : //repl.it/repls/IrritatingTwinConsulting。

    该函数接受int而不是double,但是我认为这不是问题。希望我能正确理解您的问题。

    回答来源:Stack Overflow

    2020-03-25 23:23:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载