这是我写的截取屏幕的课程:
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
必须减少屏幕截图中的颜色数量才能提高效率,但是有什么方法可以阻止它这样做吗?
答案 0 :(得分:1)
作为参考,这个example允许用户点击并拖动到桌面上的某个点,显示周围屏幕的放大图像。捕获后,当鼠标在捕获的图像上移动时,颜色将显示在工具提示中。我已经在我的平台上使用实用程序验证了结果是否正确。您可以将它与您的计划和结果进行比较。