Java 多个截图捕获相同的图像

Java 多个截图捕获相同的图像,java,screenshot,bufferedimage,toolkit,Java,Screenshot,Bufferedimage,Toolkit,我在几次拍摄多个截图时会遇到一些问题:例如,如果我拍摄两个截图,有时第二个截图与第一个截图相同 这是我的代码: public static void main(String[] args) { BufferedImage screenshot = screen(); save_screen(screenshot,"title1"); //some instructions screenshot=screen(); save_screen(screensho

我在几次拍摄多个截图时会遇到一些问题:例如,如果我拍摄两个截图,有时第二个截图与第一个截图相同

这是我的代码:

public static void main(String[] args) {
    BufferedImage screenshot = screen();
    save_screen(screenshot,"title1");
    //some instructions
    screenshot=screen();
    save_screen(screenshot,"title2");
}

private static BufferedImage screen(){
    BufferedImage image=null;
    try {
        image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
        ImageIO.write(image, "png", new File("/screenshot.png"));
    } catch (HeadlessException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    } catch (AWTException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    return image;
}

private static void save_screen(BufferedImage image,String title){
    File output = new File("C:\\Users\\MyPC\\Desktop\\" + title + ".png");
    File dir = output.getParentFile();
    if (dir.exists() || dir.mkdirs()) {
    try {
        ImageIO.write(image, "PNG", output);
    } catch (IOException e) {
        e.printStackTrace();
    }    
    } else {
        System.out.println("Bad Path - " + dir);
    }       
}
我能做些什么来解决这个问题


提前谢谢你

只需添加一个时间间隔,下面的代码将在1秒后准确捕获图像

public static void main(String[] args) {
BufferedImage screenshot = screen();
save_screen(screenshot,"title1");
//some instructions
//Sleep for 1 seconds 
Thread.Sleep(1000);
screenshot=screen();
save_screen(screenshot,"title2"); }

添加一个低至0.5秒的时间间隔。无论时间长还是短,我都会避免在捕获屏幕截图时将其写入磁盘,这可能是您不希望的开销。您可以考虑使用相同的
Robot
实例,进一步减少开销。两次射击之间的总延迟是多少?