Hay una clase Robot en la API estándar de Java, que puede implementar capturas de pantalla y simular operaciones de mouse y teclado. Aquí solo se muestra una captura de pantalla.
El método clave para tomar capturas de pantalla es createScreenCapture(Rectangle rect). Este método requiere un objeto Rectángulo que es un área rectangular que define la pantalla.
nuevo rectángulo (int x, int y, int ancho, int alto), los cuatro parámetros son la coordenada x de la esquina superior izquierda del rectángulo, la coordenada y de la esquina superior izquierda del rectángulo, el ancho del rectángulo, y la altura del rectángulo. El método de captura de pantalla devuelve un objeto BufferedImage, código de muestra:
/** * Especifique una captura de pantalla del área de la pantalla y devuelva el objeto BufferedImage de la captura de pantalla * @param x * @param y * @param width * @param height * @return */ public BufferedImage getScreenShot(int x, int y, int ancho, int alto) { Imagen Buffered bfImage = nulo; prueba { Robot robot = nuevo Robot(); robot.createScreenCapture(new Rectángulo(x, y, ancho, alto)); captura (AWTException e) { e.printStackTrace() } return bfImage;
Si necesita guardar la captura de pantalla como un archivo, use ImageIO.write(RenderedImage im, String formatName, File output), código de muestra:
/** * Tome una captura de pantalla del área de pantalla especificada y guárdela en el directorio especificado * @param x * @param y * @param width * @param height * @param savePath - Ruta para guardar el archivo * @param fileName - Guardar archivo nombre * @param formato - Formato de archivo*/ public void screenShotAsFile(int x, int y, int ancho, int alto, String savePath, String fileName, String formato) { intentar { Robot robot = new Robot(); BufferedImage bfImage = robot.createScreenCapture (nuevo rectángulo (x, y, ancho, alto)); ruta del archivo = nuevo archivo (savePath Archivo archivo = nuevo archivo (ruta, nombre de archivo + "." + formato); , formato, archivo); } catch (AWTException e) { e.printStackTrace() } catch (IOException e) { e.printStackTrace();
Después de capturar la captura de pantalla, tal vez necesitemos recortarla. Implica principalmente dos clases, CropImageFilter y FilteredImageSource. Para obtener una introducción a estas dos clases, consulte la documentación de Java.
/** *Recorte de imagen BufferedImage* @param srcBfImg - la imagen Buffered recortada * @param x - la coordenada X de la esquina superior izquierda del punto de recorte * @param y - la coordenada Y de la esquina superior izquierda del punto de recorte * @param ancho - el ancho de la imagen recortada* @param altura - la altura de la imagen recortada* @return the BufferedImage recortada */ public BufferedImage cutBufferedImage(BufferedImage srcBfImg, int x, int y, int ancho, int alto) { BufferedImage cutedImage = null; CropImageFilter cropFilter = new CropImageFilter(x, y, ancho, alto imagen img = Toolkit.getDefaultToolkit().createImage(new); FilteredImageSource(srcBfImg.getSource(), cropFilter)); cutedImage = new BufferedImage(ancho, alto, BufferedImage.TYPE_INT_RGB); Gráficos g = cutedImage.getGraphics(); disponer(); devolver imagen linda;
Si necesita guardar el archivo recortado después de recortarlo, use ImageIO.write y consulte el código anterior para guardar la captura de pantalla como un archivo.