通过使用getRGB(int x, int y)
对象调用BufferedImage
,可获得一个负数。
如何将三个不同的值(红色,绿色和蓝色)转换为此单个负数?
答案 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)
回答