-2
J'ai quelques problèmes lorsque je fais plusieurs captures d'écran dans quelques temps: si, par exemple, je fais deux captures d'écran, la seconde capture d'écran est parfois la même que la première.Plusieurs captures d'écran capturent la même image
Voici mon code:
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);
}
}
Que puis-je faire pour résoudre ce problème?
Merci d'avance!
Ajouter un intervalle de temps aussi bas que 0,5 sec. ** supérieur ** temps ou ** inférieur ** – Thecarisma
Personnellement, j'éviterais d'écrire la capture d'écran sur le disque lorsque vous la capturez, c'est un overhead que vous ne voulez peut-être pas. Vous pourriez envisager d'utiliser la même instance de 'Robot', réduire encore la surcharge. Quel est le délai général entre les tirs? – MadProgrammer