java - Robot.createScreenCapture 正在改变颜色

标签 java awt screenshot awtrobot

这是我写的截屏类:

public class imagemanipulation {

    Dimension screenResolution;
    Rectangle screenRectangle;
    Robot robot;

    imagemanipulation() {
        try {
            screenResolution = Toolkit.getDefaultToolkit().getScreenSize();
            screenRectangle = new Rectangle(screenResolution);
            robot = new Robot();
        } catch (AWTException ex) {
            Logger.getLogger(imagemanipulation.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public BufferedImage newScreenshot() {
        BufferedImage image = robot.createScreenCapture(screenRectangle);
        return image;
    }

}

我正在做的是在从上面截取的屏幕截图上使用 BufferedImagewhatever.getRGB(x,y),并将它的坐标用于另一幅图像的一部分,然后返回 x和找到匹配项的 y 位置。这适用于黑白图像,但不适用于彩色图像。我遇到的问题是 createScreenCapture 正在更改屏幕截图的原始颜色,因此当我将使用 createScreenCapture 拍摄的图像与另一张图像进行比较时从不工作。

我认为 createScreenCapture 必须减少屏幕截图中的颜色数量才能提高效率,但有什么办法可以阻止它这样做吗?

最佳答案

作为引用,这个example允许人们单击并拖动到桌面上的一个点,显示周围屏幕的放大图像。捕获后,当鼠标在捕获的图像上移动时,颜色会显示在工具提示中。我已经使用我平台上的实用程序验证了结果是正确的。您可以将其与您的程序和结果进行比较。

关于java - Robot.createScreenCapture 正在改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542054/

相关文章:

java - 为什么 Tomcat 7x 不需要在 web.xml 中配置 WSServletContextListener 和 WSServlet 来部署 Jax-ws 服务?

java - 我的答案在第一次输入后总是返回错误并且不会跟踪分数?

java - 用 java eclipse 生成的可运行 jar 文件在双击时不会运行

javascript - 桌面音频捕获不适用于 Chrome 应用程序

ios - 如何截取屏幕截图并裁剪掉空白区域?

java - 线程 TCP 连接 - Android

java - 读取二维数组并转置

google-chrome - 在 chrome 扩展中捕获元素图像(缩放失败)

java - 我可以从构造函数启动线程吗?

Java:如何在 Canvas 上绘图?