如何以RGB格式打印颜色?我正在使用Robot(java.awt)
来获取屏幕上随机像素的颜色,我想将其打印为RGB。因此,如果像素是完全红色,则输出应为
rgb(255, 0, 0)
我能做些什么吗?我应该获得单独的红绿蓝值(我该怎么做)?这是我到目前为止所得到的:
public static void main(String[] args) {
Random rand = new Random();
Robot r = null;
int screenHeight = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int screenWidth = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
try {
r = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
Color pixelColor = r.getPixelColor(rand.nextInt(screenHeight), rand.nextInt(screenWidth));
System.out.println(pixelColor);
System.exit(0);
}
但它输出了这个(随机例子):
java.awt.Color[r=222,g=228,b=239]
编辑:我也尝试使用getRGB()
,但它仍然无效。
//...
Color pixelColor = r.getPixelColor(rand.nextInt(screenHeight), rand.nextInt(screenWidth));
System.out.println(pixelColor.getRGB());
//...
但它输出(随机示例):
-723724
这些数字是什么意思?
答案 0 :(得分:4)
让我们先来看一个非常简单的测试
Color color = Color.RED;
System.out.println(color);
System.out.println(color.getRGB());
System.out.println(color.getRed() + ", " + color.getGreen() + ", " + color.getBlue());
哪个输出
java.awt.Color[r=255,g=0,b=0]
-65536
255, 0, 0
第一个是Color
对象toString
方法,它为您提供有关类和属性的信息,如您所见,red
属性为255
第二个是整数打包值(红色,绿色和蓝色(和alpha)属性都打包成一个int
值)
显然,最后一个是颜色的每个属性,这似乎就是你实际所追求的。
我认为你应该做的是阅读JavaDocs on the Color
class,以便你更好地理解它所提供的信息,而不是随意采取你认为它应该提供的信息