我正在尝试制作一个单击屏幕上指定颜色(RGB)的程序。我知道如何按位置从像素中获取颜色。我正在使用 Robot 类,但它没有内置的方法来做我想做的事。我可以用什么来做到这一点?谢谢 :)
问问题
719 次
1 回答
1
首先你需要做一个屏幕截图:
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle)
然后处理图像以找到您的像素:
// the color you want to find
// Set it to your desired value
Color myColorToMatch = new Color();
int w = bufferedImage.getWidth(null);
int h = bufferedImage.getHeight(null);
// find your pixel in the rgbs array
for(int y=0;y<h;y++) {
for(int x=0;x<w;x++) {
int pixel = image.getRGB(x, y);
Color currentColor = new Color(pixel);
if(currentColor.equals(myColorToMatch)) {
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
}
}
注意:这是未经测试的代码,但主要为您提供所需的所有部分。
于 2012-05-04T02:49:59.340 回答