如何在java中扫描屏幕上的特定颜色/图像?

时间:2012-09-10 21:27:36

标签: java colors

我需要在屏幕上扫描特定的图像/颜色,然后返回x和y坐标以找出颜色的位置。

我知道这可能包括使用Robot类截取屏幕截图,但不知道如何正确扫描该图像。

1 个答案:

答案 0 :(得分:2)

如果您使用Robot类截取屏幕截图,则会获得BuffereImage类的对象。然后你循环宽度和高度(getWidth(),getHeight())。使用getRGB()方法,您可以提取像素的RGB值。如果匹配,则可以将其存储在一个集合或数组中。

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));
        }
    }
}

...