Java - 红色,绿色,蓝色到getRGB

时间:2012-12-01 21:39:25

标签: java rgb bufferedimage

通过使用getRGB(int x, int y)对象调用BufferedImage,可获得一个负数。

如何将三个不同的值(红色,绿色和蓝色)转换为此单个负数?

3 个答案:

答案 0 :(得分:10)

使用Color类:

new Color(r, g, b).getRGB()

答案 1 :(得分:3)

BufferedImage最终委托给使用以下代码的java.awt.image.ColorModel

public int getRGB(Object inData) {
    return (getAlpha(inData) << 24)
        | (getRed(inData) << 16)
        | (getGreen(inData) << 8)
        | (getBlue(inData) << 0);
}

根据您的需要进行修改是一项微不足道的工作。

答案 2 :(得分:-1)

JB Nizet的答案非常好,但在创建“Color”类型的新对象数千次时,它可能会非常慢。最简单的方法是:

int rgb = (red << 16 | green << 8 | blue)

ByteBit

回答