Convert RGBA values to hex color code

11,382

The Color parameters must be floats between 1f and 0f. So this is a valid color:

int color = toHex(new Color(1f, 1f, 1f, 1f));

Which is white.

Share:
11,382
Kaikz
Author by

Kaikz

Updated on June 19, 2022

Comments

  • Kaikz
    Kaikz almost 2 years

    I have some sliders in my application that allows the user to change ARGB colors, however I need to convert these values to a hex value like 0xff000000, which is solid black.

    This is what I have so far:

    protected int toHex(Color col) {
        String as = pad(Integer.toHexString(col.getAlpha()));
        String rs = pad(Integer.toHexString(col.getRed()));
        String gs = pad(Integer.toHexString(col.getGreen()));
        String bs = pad(Integer.toHexString(col.getBlue()));
        String hex = "0x" + as + rs + gs + bs;
        return Integer.parseInt(hex, 16);
    }
    
    private static final String pad(String s) {
        return (s.length() == 1) ? "0" + s : s;
    }
    

    However upon getting the Integer value like below, I get a NumberFormatException for input string: "0xccffffff":

    int color = toHex(new Color(153f, 153f, 153f, 0.80f));
    

    Any ideas on how to get this to an Integer? Thanks.

  • Kaikz
    Kaikz almost 12 years
    Ah, thanks. Got it sorted now. I'm using Slick for my font stuff and I've now switched the Color to java.awt.Color.