Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么AWTRobot getPixelColor()会给出不同的结果?_Java_Awt_Awtrobot - Fatal编程技术网

Java 为什么AWTRobot getPixelColor()会给出不同的结果?

Java 为什么AWTRobot getPixelColor()会给出不同的结果?,java,awt,awtrobot,Java,Awt,Awtrobot,我正在尝试在MacOSX中创建一个类似于DigitalColor Meter的应用程序。 (注:DigitalColor Meter是一个小型应用程序,用于Mas操作系统拾取鼠标光标下方的像素颜色) 为了在Java中实现它,我尝试使用AWTRobot getPixelColor(),但getPixelColor()似乎效率不高。下面是我的代码: public class AWT_Robot { public static void main(String[] args) { int m

我正在尝试在MacOSX中创建一个类似于DigitalColor Meter的应用程序。 (注:DigitalColor Meter是一个小型应用程序,用于Mas操作系统拾取鼠标光标下方的像素颜色)

为了在Java中实现它,我尝试使用AWTRobot getPixelColor(),但getPixelColor()似乎效率不高。下面是我的代码:

public class AWT_Robot {

public static void main(String[] args) {
    int mouseX = 0;
    int mouseY = 0;
    try {
        Robot robot = new Robot();          
        while(true){
            robot.delay(1000);
            mouseX = MouseInfo.getPointerInfo().getLocation().x;
            mouseY = MouseInfo.getPointerInfo().getLocation().x;
            Color color = robot.getPixelColor(mouseX, mouseY);
            System.out.println("x: "+mouseX+" y: "+mouseY+"   RGB: ("+color.getRed()+", "+color.getGreen()+", "+color.getBlue()+")");
        }           
    } catch (AWTException e) {
        e.printStackTrace();
    }       
}
}
当我将鼠标悬停在红色图像(RGB:243,0,0)上时,它以不同的RGB打印,如下所示:

x: 313 y: 313   RGB: (239, 0, 0)
x: 313 y: 313   RGB: (239, 0, 0)
x: 294 y: 294   RGB: (239, 0, 0)
x: 186 y: 186   RGB: (79, 116, 163)
x: 104 y: 104   RGB: (67, 104, 154)
x: 116 y: 116   RGB: (79, 117, 164)
x: 159 y: 159   RGB: (68, 105, 155)
1) 这个问题背后的原因可能是什么

2) 还有没有其他方法可以用Java实现应用程序(DigitalColor Meter)

我在下面的链接中发现了类似的问题,但似乎没有一个答案是我所期望的


您的
mouseX
mouseY
都是使用
getLocation().x
获取的。这很可能是问题的原因。

oops。。愚蠢的错误…:P