Il existe une classe Robot dans l'API standard Java, qui peut implémenter des captures d'écran et simuler les opérations de la souris et du clavier. Seule une capture d'écran est présentée ici.
La méthode clé pour prendre des captures d'écran est createScreenCapture(Rectangle rect). Cette méthode nécessite un objet Rectangle qui définit l'écran. Il est également assez simple de construire un rectangle :
new Rectangle(int x, int y, int width, int height), les quatre paramètres sont la coordonnée x du coin supérieur gauche du rectangle, la coordonnée y du coin supérieur gauche du rectangle, la largeur du rectangle, et la hauteur du rectangle. La méthode de capture d'écran renvoie un objet BufferedImage, exemple de code :
/** * Spécifie une capture d'écran de la zone d'écran et renvoie l'objet BufferedImage de la capture d'écran * @param x * @param y * @param width * @param height * @return */ public BufferedImage getScreenShot(int x, int y, int largeur, int hauteur) { BufferedImage bfImage = null ; try { Robot robot = new Robot(); robot.createScreenCapture(new Rectangle(x, y, width, height)); } catch (AWTException e) { e.printStackTrace( } return bfImage;
Si vous devez enregistrer la capture d'écran sous forme de fichier, utilisez ImageIO.write (RenderedImage im, String formatName, File output), exemple de code :
/** * Prendre une capture d'écran de la zone d'écran spécifiée et l'enregistrer dans le répertoire spécifié * @param x * @param y * @param width * @param height * @param savePath - Chemin d'enregistrement du fichier * @param fileName - Enregistrement du fichier nom * @param format - Format de fichier*/ public void screenShotAsFile(int x, int y, int width, int height, String savePath, String fileName, String format) { try { Robot robot = new Robot(); BufferedImage bfImage = robot.createScreenCapture (new Rectangle (x, y, width, height)); Chemin du fichier = new File (savePath); File file = new File (path, fileName + "." + format); , format, fichier); } catch (AWTException e) { e.printStackTrace(); e.printStackTrace(); } }
Après avoir capturé la capture d’écran, nous devrons peut-être la recadrer. Il implique principalement deux classes, CropImageFilter et FilteredImageSource. Pour une introduction à ces deux classes, consultez la documentation Java.
/** *Recadrage d'image BufferedImage* @param srcBfImg - la BufferedImage découpée * @param x - la coordonnée X du coin supérieur gauche du point de découpage * @param y - la coordonnée Y du coin supérieur gauche du point de découpage * @param width - la largeur de l'image recadrée* @param height - la hauteur de l'image recadrée* @return the recadrée BufferedImage */ public BufferedImage cutBufferedImage(BufferedImage srcBfImg, int x, int y, int width, int height) { BufferedImage cutedImage = null; CropImageFilter cropFilter = new CropImageFilter(x, y, width, height) Image img = Toolkit.getDefaultToolkit().createImage(new); FilteredImageSource(srcBfImg.getSource(), cropFilter)); cutedImage = new BufferedImage(largeur, hauteur, BufferedImage.TYPE_INT_RGB); Graphiques g = cutedImage.getGraphics(); dispose(); retourne une image mignonne }
Si vous devez enregistrer le fichier découpé après le découpage, utilisez ImageIO.write et reportez-vous au code ci-dessus pour enregistrer la capture d'écran en tant que fichier.