1

特定の画像/色の画面をスキャンし、その色が発生する場所の x 座標と y 座標を返す必要があります。

これにはおそらく Robot クラスを使用してスクリーンショットを撮ることが含まれることはわかっていますが、その画像を適切にスキャンする方法がわかりません。

4

1 に答える 1

2

Robot クラスでスクリーンショットを撮ると、クラス BuffereImage のオブジェクトが取得されます。次に、幅と高さを for ループします (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));
        }
    }
}

...
于 2012-09-10T21:36:42.440 に答える