1

好的,所以我有:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle)


int w = image.getWidth(null);
int h = image.getHeight(null);
int[] rgbs = new int[w*h];
image.getRGB(0, 0, w, h, rgbs, 0, w);
// find your pixel in the rgbs array
for(int y=0;y<h;y++) {
    for(int x=0;x<w;x++) {
        if(rgbs[(y*w) + x] == mypixel) { // mypixel
            robot.mouseMove(x, y);
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
        }
    }
}

有人可以向我解释一下,或者给我一个 mypixel 可能是什么的例子吗?答案可能很明显,但我有点困惑。提前致谢

4

2 回答 2

2

获得所需颜色值的最简单方法是使用

mypixel = new Color(red, green, blue).getRGB();
于 2012-05-04T06:26:52.357 回答
1

rbgs 是整个屏幕截图的颜色值数组。下面的这一行将图片中当前像素的颜色值与您想要单击的颜色进行比较。该变量可能是一个“压缩”整数。
if(rgbs[(y*w) + x] == mypixel)

于 2012-05-04T06:21:17.637 回答