Domingo, 14 Diciembre 2014 00:00

Clase Robot, capturar pantalla en java

Escrito por 
Valora este artículo
(0 votos)

Volviendo a los posts, en esta ocacion estudiaremos un poco la clase Robot de java, entre varias cosas interesantes que encontre, puedo mecionar las siguientes

  •  Captura de pantalla
  • Presonado automatico de teclas
  • Captura de teclas presionadas
  • Movimiento automatico del mouse

Entre tantas utilidades mas, en esta ocacion les mostrare como capturar la pantalla  de nuestra pc,  como siempre usamos Netbeans (8.0), sin mas  palabras iremos al grano, creamos nuestro proyecto netbeans y lo llamo Automatico

Snap1

Ahora copiamos las siguientes lineas de codigo a nuestro main creado automaticamente

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package captura;
 
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
 
 
public class Captura {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      BufferedImage pantalla=null;
        {
            try {
                Robot robot = new Robot();
                pantalla = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
                File file = new File("C:\\captura.jpg");
                ImageIO.write(pantalla, "jpg", file);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

Explicamos algunas lineas importantes

BufferedImage pantalla=null;  -> creamos e inicialimos  una varieble del tipo BufferedImage

Robot robot = new Robot(); -> instanciamos nuestro objeto robot del tipo Robot del paquete java.awt

robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); -> esta es la parte mas importante donde se captura la pantalla, a createScreenCapture se le pasa un tipo Rectangle, y a la vez a este Rectangle lo construimos con las dimensiones de la pantalla, en este caso toda la pantalla completa, para eso hacemos uso de Toolkit.getDefaultToolkit().getScreenSize() que nos da la demension de la pantalla completa (del tipo Dimension), si quisieramos solo capturar una parte de la pantalla lo podemos hacer, solo basta con analizar los parametros y constructores de las clases, y mandar el dato.

File file = new File("C:\\captura.jpg"); -> Creamos un archivo, por ahora vacio (en esa linea), ubicado en C: y llamado captura.jpg

ImageIO.write(pantalla, "jpg", file); -> escribimos mediante el metodo estatico "write" de  ImageIO, el archivo file, el contenido de pantalla, en este caso un archivo del tipo "jpg", osea una imagen.

Ejecutamos en nuestro idfe , F6 en este caso con Netbeans  y vemos el resultado, en este caso el arshivo en C: "captura.jpg"

Snap2

Hay mucho por realizar todavia con esta clase,  en el proximo post enviaremos esto  mediante FTP a un servidor X-

Desde jujuy Saludos

Visto 1246 veces Modificado por última vez en Viernes, 04 Marzo 2016 22:59

Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el código HTML. Tu dirección de correo NO será publicada.