将RGB转换为十六进制

时间:2014-01-20 06:44:41

标签: java colors hex

如果我有一个Color对象,我怎样才能将它的RGB值转换为十六进制整数?我一直在寻找年龄,我发现所有的都是“Hexadecimal to RGB”,或者它不返回Integer值,或者其他我不想要的东西。

我希望它将十六进制作为int值返回,而不是字符串或其他任何内容。有人可以帮忙吗?

这是我的代码,我需要将颜色转换为十六进制,使用某人的答案尝试转换它:

public static void loadImageGraphics(BufferedImage image, int x, int y, int width, int height) {
    for(int yy = 0; yy < height; yy++) {
        for(int xx = 0; xx < width; xx++) {
            Color c = new Color(image.getRGB(xx, yy));
            pixels[x + y * width] = c.getRed() * (0xFF)^2 + c.getGreen() * 0xFF + c.getBlue();
        }
    }
}

谢谢!

2 个答案:

答案 0 :(得分:3)

此实用程序功能对我来说很好:

public static String convertColorToHexadeimal(Color color)
{
        String hex = Integer.toHexString(color.getRGB() & 0xffffff);
        if(hex.length() < 6) 
        {
            if(hex.length()==5)
                hex = "0" + hex;
            if(hex.length()==4)
                hex = "00" + hex;
            if(hex.length()==3)
                hex = "000" + hex;
        }
        hex = "#" + hex;
        return hex;
}

答案 1 :(得分:0)

您可以使用此智能代码行。

String hexColor = String.format(“#%02x%02x%02x”,158,255,168);

String hexColor = String.format(“#%02x%02x%02x”,R,G,B);