Processing: capturar pantalla usando Robot (java.awt)

Leave a Comment
Lo primero es saber qué es Processing (según Wikipedia):
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital.
Es muy interesante ya que tiene librerías muy interesantes sobre todo para comunicar el PC con Arduino mediante el serial.
En este caso vamos a ver cómo utilizar la clase Robot de Javapara capturar la pantalla. Código:
//Importamos las librerías necesarias para el tratamiento de la imagen
import java.awt.*;
import java.awt.image.*;
import javax.imageio.ImageIO;

//Creamos los objetos para guardar la imagen
Robot robot;
//Este es el buffer donde se guardaran los datos
BufferedImage screenshot = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
//Area de la region a capturar. Podeis cambiar la region:
// Rectangngle rect = new Rectangle(width, height);
Rectangle rect = new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() );
//Formato de la imagenguardada, ruta del archivo y nombre
String formato = "png";
String ruta = "/home/usuario";
String nombre_archivo = "screenshot";

//La funcion setup() se ejecuta al iniciar
void setup(){
  //Comprobamos que podemos crear el objeto
  try {
    robot = new Robot();
  }
  catch (AWTException e)
  {
    println("Robot class not supported by your system!");
    exit();
  }
  //Capturamos pantalla con el area del rectangulo
  screenshot = robot.createScreenCapture(rect);
  //Creamos el arvhico donde se guardara
  File archivo = new File(ruta + nombre_archivo + "." + formato);
  
  try {
    //Guardamos la imagen
    ImageIO.write(screenshot, formato, archivo);
    println("Imagen guardada");
  } catch(IOException e) {
    System.out.println("Write error for " + archivo.getPath() + ": " + e.getMessage());
  }
  //Salimos del programa
  exit();
}
Este código es muy sencillo. Luego vosotros podéis crear un bucle para tomar una captura cada cierto tiempo o hacer lo que necesitéis.
Espero que os sirva de ayuda y si os es útil compartid y comentad que es gratis!
¡Saludos!

0 comentarios:

Publicar un comentario