机器人没有捕获正确的截图

时间:2014-01-27 01:43:52

标签: java screenshot awtrobot

我正在尝试使用Robot().createScreenCapture()捕获屏幕截图,但我发现它并没有捕获我想要它绘制的图形。为了测试这一点,我通过在整个屏幕上绘制一个白色矩形(在paint()方法的最开头)重置页面后,将其捕获屏幕截图的位置移动到右侧。运行代码并查看图像后,我看到图像并非像我预期的那样黑,但有一些图形!这很重要,因为我想在绘制一些图形之前捕获屏幕截图,然后绘制其他图形。我无法弄清楚可能出现的问题!我不明白捕捉截图是如何工作的,或者我做错了什么?

以下是一些代码,显示我的测试应该产生空白图像......

public void paint(Graphics g) {

        int height = (int) maxscrn.getHeight();
        int width = (int) maxscrn.getWidth();
        Graphics2D g2d = (Graphics2D)g;

        g2d.setColor(Color.white);
        g2d.fillRect(0, 0,width,height);

        Rectangle screenRect = new Rectangle(58,30,1190,45);
        blurredImage = null;
        try {
            blurredImage = new Robot().createScreenCapture(screenRect);
        } catch (AWTException e1) {
            e1.printStackTrace();
        }

        try {
            ImageIO.write(blurredImage, "bmp", new File("topbar.bmp"));
        } catch (IOException e) {
            e.printStackTrace();
        }
...

提前感谢您的帮助!

0 个答案:

没有答案