扫描屏幕以获取颜色

7

我想在Java中扫描屏幕以查找特定颜色。

有任何想法如何实现?


你需要这个做什么?只是好奇。 - James P.
想到了。这是我曾经玩过的游戏中使用的第一种方法之一。纹理可以被交换,用具有纯色的纹理,并且外部程序会扫描屏幕。当有人找到一种直接访问内存变量的方法时,它就变得过时了。 - James P.
2个回答

15
    Robot robot = new Robot();
    Rectangle captureSize = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
    BufferedImage bufferedImage = robot.createScreenCapture(captureSize);
    // ...

    int color = image.getRGB(x, y);

    int  red = (color & 0x00ff0000) >> 16;
    int  green = (color & 0x0000ff00) >> 8;
    int  blue = color & 0x000000ff;
    // ...

@Reuben Mallaby 剪切和粘贴的乐趣。在颜色中,您正在查找 r、g 和 b 值。我更新了我的帖子。 - Romain Hippeau
@Thorbjørn Ravn Andersen - 修复机器人 - Romain Hippeau
Romain,“_why_”指的是你吞咽了异常而不是执行e.printStackTrace() - Thorbjørn Ravn Andersen

2
使用Java.awt.Robot来截取屏幕并将其处理为图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接