How to scan the screen for a specific color/image

2020-04-20 21:26发布

I need to scan the screen for a specific image/color and return an x and y coordinate for where that color occurs.

I know that this will probably include taking a screenshot using the Robot class, but have no idea how to then scan that image appropriately.

标签: java colors
1条回答
forever°为你锁心
2楼-- · 2020-04-20 21:34

If you take a screenshot with the Robot class, you get an object of the class BuffereImage. Then you for loop the width and height (getWidth(), getHeight()). With the getRGB() method you can extract the RGB value of the pixel. If it matches, you can store it in aan collection or array.

BufferedImage img = ...
int matchColor = Color.RED.getRGB();
int h = img.getHeight();
int w = img.getWidth();
Set<Point> points = new HashSet<Point>();

for(int i = 0 ; i < w ; i++) {
    for(int j = 0 ; j < h ; j++) {
        if(img.getRGB(i, j) == matchColor) {
            points.add(new Point(i, j));
        }
    }
}

...
查看更多
登录 后发表回答