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

问题描述 投票:0回答:1

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

我具有要转换为以下格式的RGB颜色:0xffffffff

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

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

摘要:

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);
}
java string int hex rgb
1个回答
0
投票

Integer中有一个对此有用的功能:

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
    String result = "0x" + Integer.toHexString(red) + Integer.toHexString(green) + Integer.toHexString(blue);

    System.out.println(result);
}

0
投票

这样的事情?

public class Main {
    public static void main(String[] args) {
        double frequency = .3;
        double r = 255;
        double g = 255;
        double b = 255;

        r = Math.sin(frequency * 10 + 0) * 127 + 128;
        g = Math.sin(frequency * 10 + 2) * 127 + 128;
        b = Math.sin(frequency * 10 + 4) * 127 + 128;
        int red = (int) r;
        int green = (int) g;
        int blue = (int) b;

        System.out.println(String.format("0x%02x%02x%02x", red, green, blue));
    }
}

输出:

0x9106d3
© www.soinside.com 2019 - 2024. All rights reserved.