En esta ocasión lo haremos sin interfaz gráfica, el resultado será el mismo.
Lo primero: importamos las clases que ocuparemos:
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import javax.imageio.ImageIO;
... y ahora sí, vamos con la clase:public class ScreenshotApplication
{
public static void main(String []args) {try {//Obtenemos un "ayudante"Robot robot = new Robot();
//Con lo siguiente sabremos qué resolución tiene nuestra pantalla
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//Creamos un BufferedImage para poderlo manejar en memoriaBufferedImage bi = robot.createScreenCapture(new Rectangle(d));
/** La siguiente técnica consiste en darle un nombre de archivo* a partir de la hora y fecha del sistema, para poder generar* archivos cuyos nombres no se repitan.*/String filename = "/CualquierRuta/" + Calendar.getInstance().getTime() + ".jpg";
/** Utilizamos el método write, al que le pasamos los siguientes* parámetros:** 1.- Cualquier objeto de tipo Buffer, en este caso un ImageBuffer,* en pocas palabras, qué va a ser guardado en el archivo.* 2.- El tipo de archivo* 3.- La ruta donde será almacenada nuestra imágen en archivo.*/ImageIO.write(bi, "jpg", new File(filename));
System.out.println("¡Screenshot tomada!");
}
catch (AWTException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
} }
}
Algunos procesos levantarán excepciones (en caso de que exista algún error), por lo que es necesario "cacharlos" con sus respectivos try-catch. Para una mejor comprensión del manejo de excepciones visiten este enlace.Podrán ver un resultado como el siguiente:

0 comentarios:
Publicar un comentario