通过使用 BufferedImage
对象调用 getRGB(int x, int y)
,可以得到一个单独的负数。
如何将三个不同的值(红色、绿色和蓝色)转换为这个单一的负数?
通过使用 BufferedImage
对象调用 getRGB(int x, int y)
,可以得到一个单独的负数。
如何将三个不同的值(红色、绿色和蓝色)转换为这个单一的负数?
使用 Color 类:
new Color(r, g, b).getRGB()
int rgb = (alpha << 24) | (red << 16) | (green << 8) | (blue << 0);
int rgb =(alpha << 24)|(red << 16)|(green << 8)|(blue << 0);
- FThompsonBufferedImage最终委托给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所回答的那样