Java 如何以RGB格式打印颜色
如何以RGB格式打印颜色?我正在使用Java 如何以RGB格式打印颜色,java,colors,rgb,Java,Colors,Rgb,如何以RGB格式打印颜色?我正在使用Robot(java.awt)获取屏幕上随机像素的颜色,并将其打印为RGB。因此,如果像素完全为红色,则输出应为 rgb(255, 0, 0) 有什么我能做的吗?我应该得到单独的红、绿和蓝值吗(我该怎么做)?以下是我目前得到的信息: public static void main(String[] args) { Random rand = new Random(); Robot r = null; int screenHeight
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);
}
但它输出以下内容(随机示例):
编辑:我也尝试过使用
getRGB()
,但仍然不起作用
//...
Color pixelColor = r.getPixelColor(rand.nextInt(screenHeight), rand.nextInt(screenWidth));
System.out.println(pixelColor.getRGB());
//...
但它输出(随机示例):
这些数字意味着什么?让我们从一个非常简单的测试开始
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
objectstoString
方法,它为您提供有关类和属性的信息,如您所见,red
属性是255
第二个是整数压缩值(红色、绿色和蓝色(以及alpha)属性都压缩到单个int
值中)
最后一个是,很明显,颜色的每一个单独属性,这似乎就是你真正想要的
我认为你应该做的是,去读一读,这样你就能更好地理解它提供的信息,而不是随机地尝试一下你认为它应该提供的内容你可以用
pixelColor.r
,用g替换r,或者用b替换绿色和蓝色“这些数字是什么意思?”这意味着它是一个整型压缩值(RGB(a))值,压缩到一个int
-你可以得到单独的颜色成分(即getRed
,getGreen
,getBlue
),这将给你颜色的单独成分,这基本上就是你的第二个输出saying@KeithM我刚试过,这对我来说不起作用。我还尝试了pixelColor.getRGB().r
,但没有luck@KeithM基于Robot\getPixelColor
@MadProgrammer的返回值,我有点好奇您认为使用了什么API,我想到了我使用过的其他Java库,它们提供了一个color类,它只是color.r/g/b
对一个垃圾问题的非常好的、信息丰富的回答+1@MadPhysicist遗憾的是,我们没有一个“阅读文档”的接近选项:我们尽管这样做:离题,因为:要求我们推荐或查找一本书、工具、软件库、教程或其他非现场资源的问题是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。“我懒得看文档”在我的书中被视为对异地资源的请求,即使OP没有意识到这是他们有时提出的请求。
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