这是我写的截图类:
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
必须减少屏幕截图中的颜色数量才能提高效率,但是有什么办法可以阻止它这样做吗?