Java获得像素LIVE的颜色

时间:2011-04-28 21:50:49

标签: java colors mouse

我在找到光标下的当前颜色时遇到问题。

我的代码:

import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;

public class Test {
    public static void main(String[] args) throws Exception {
        PointerInfo pointer;
        pointer = MouseInfo.getPointerInfo();
        Point coord = pointer.getLocation();

        Robot robot = new Robot();
        robot.delay(2000);

        while(true) {
            coord = MouseInfo.getPointerInfo().getLocation();       
            Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getX());
            if(color.getGreen() == 255 && color.getBlue() == 255 && color.getRed() == 255) {
                System.out.println("WHITE FOUND");
            }
            robot.delay(1000);
        }
    }
}

当我运行它时,即使我将鼠标放在灰色区域,我也会收到“发现白色的白色”消息。

可能是什么问题?如果它对你不起作用,你们可以测试一下吗?

添加图片:我将光标放在Eclipse灰色区域,但收到“WHITE FOUND”消息。

enter image description here

3 个答案:

答案 0 :(得分:6)

我认为问题是你使用的是getX两次而不是getX和getY

Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getX())

应该是

Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getY())

答案 1 :(得分:2)

你使用了两次getX()。 [min length]

答案 2 :(得分:0)

您可能也想Zoom,它使用相关方法createScreenCapture()来收集屏幕像素 en masse ,并在工具提示中显示每个像素的颜色信息。

相关问题