【问题标题】:Java get color of pixel LIVEJava获取像素LIVE的颜色
【发布时间】:2011-04-28 21:50:49
【问题描述】:

我无法找到光标下的当前颜色。

我的代码:

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

当我运行它时,即使我将鼠标放在灰色区域上,我也会收到“WHITE FOUND WHITE FOUND”消息。

可能是什么问题?你们能测试一下它是否对你也不起作用吗?

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

【问题讨论】:

    标签: java colors mouse


    【解决方案1】:

    我认为问题在于您使用 getX 两次而不是 getX 和 getY

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

    应该是

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

    【讨论】:

      【解决方案2】:

      您使用了两次 getX()。 [最小长度]

      【讨论】:

        【解决方案3】:

        您可能还喜欢Zoom,它使用相关方法createScreenCapture() 收集屏幕像素整体并在工具提示中显示每个像素的颜色信息。

        【讨论】:

          猜你喜欢
          • 2014-04-08
          • 2011-11-30
          • 2017-01-23
          • 1970-01-01
          • 1970-01-01
          • 2014-08-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多