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

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

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

使用Color类:

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

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

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

修改它以满足您的需求是一项微不足道的工作。

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

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

正如ByteBit所回答的那样