通过调用getRGB(int x, int y)
一个BufferedImage
对象,可以得到一个单一的负数。
如何将三个不同的值(红色、绿色和蓝色)转换为这个单一的负数?
通过调用getRGB(int x, int y)
一个BufferedImage
对象,可以得到一个单一的负数。
如何将三个不同的值(红色、绿色和蓝色)转换为这个单一的负数?
使用颜色类:
new Color(r, g, b).getRGB()
BufferedImage 最终委托给java.awt.image.ColorModel
which 使用以下代码:
public int getRGB(Object inData) {
return (getAlpha(inData) << 24)
| (getRed(inData) << 16)
| (getGreen(inData) << 8)
| (getBlue(inData) << 0);
}
修改它以满足您的需求是一项简单的练习。
JB Nizet 的回答很棒,但是在创建数千次“颜色”类型的新对象时可能会非常慢。最简单的方法是:
int rgb = (red << 16 | green << 8 | blue)