136 votes

Y a-t-il un moyen de prendre une capture d’écran à l’aide de Java et enregistrez-le dans une sorte d’image ?

Simple comme l’indique le titre : vous pouvez utiliser uniquement les commandes Java pour prendre une capture d’écran et l’enregistrer ? Ou, ce que je dois utiliser un programme spécifique de l’OS pour prendre la capture d’écran et prenez-le ensuite désactiver le presse-papiers ?

195voto

David Citron Points 9231

Croyez le ou pas, vous pouvez réellement utiliser java.awt.Robot "créer une image contenant des pixels lire à l'écran." Vous pouvez ensuite graver cette image sur un fichier sur le disque.

Je l'ai juste essayé, et le tout se termine comme:

Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageIO.write(capture, "bmp", new File(args[0]));

REMARQUE: Cela ne fera que la capture de l'écran principal. Voir GraphicsConfiguration pour le support multi-moniteur.

22voto

DejanLekic Points 5834

Je n’ai jamais aimé l’utilisation de Robot, alors j’ai fait ma propre méthode simple pour faire des captures d’écran des objets JFrame :

18voto

11101101b Points 3343

Si vous souhaitez capturer tous les moniteurs, vous pouvez utiliser le code suivant :

11voto

user2503881 Points 38
public void captureScreen(String fileName) throws Exception {
   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
   Rectangle screenRectangle = new Rectangle(screenSize);
   Robot robot = new Robot();
   BufferedImage image = robot.createScreenCapture(screenRectangle);
   ImageIO.write(image, "png", new File(fileName));
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X