2

这是我写的截图类:

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屏幕截图的 RGB 颜色与原来的颜色不同,所以当我将拍摄的图像与createScreenCapture另一张图像进行比较时,它永远不会起作用。

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

4

1 回答 1

1

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

于 2011-12-17T05:25:28.157 回答