我在找到光标下的当前颜色时遇到问题。
我的代码:
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”消息。
答案 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 ,并在工具提示中显示每个像素的颜色信息。