package CapturarPantallas; import java.awt.AWTException; import java.awt.Robot; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.*; import javax.imageio.ImageIO; /** * Clase que permite capturar y guardar la pantalla * @author Bantec inc */ class CapturarPantalla { //imagen anterior de la pantalla private BufferedImage tmppantalla; //Instancio de la clase ComparaImagenes private ComparaImagenes tmp = new ComparaImagenes(); //secuencia de nombre de los archivos private int count = 0; //Ancho de la imagen private final static int imgwidth = Toolkit.getDefaultToolkit().getScreenSize().width - 5; //Alto de la imagen private final static int imgheight = Toolkit.getDefaultToolkit().getScreenSize().height - 208; //coordenadas de inicio de la imagen private final static int imgX = 5; private final static int imgy = 123; /** * Metodo main utilizado para pruebas del tamanio de imagenes * @param args */ public static void main(String args[]) { CapturarPantalla cp = new CapturarPantalla(); cp.guardarPantalla("prueba", ""); } /** * Guarda la imagen * @param nombre nombre de la imagen * @param dir directorio donde se guarda la imagen */ public void guardarPantalla(String nombre, String dir) { GuargaImagen(getPantalla(), nombre, dir); } /** * Captura la pantalla del escritorio * * @return BufferedImage pantalla */ private BufferedImage getPantalla() { try { return new Robot().createScreenCapture( new Rectangle(imgX, imgy, imgwidth, imgheight)); } catch (AWTException e) { e.printStackTrace(); } return null; } /** * revisa si existe un cambio de panatalla * @return true si la pantalla es diferente */ public boolean compararImg() { BufferedImage pantalla = getPantalla(); if (getCount() == 0 && tmppantalla == null) { tmppantalla = pantalla; } if (tmppantalla != null && tmp.compararImagenes(pantalla, tmppantalla, 800)) { setCount(getCount() + 1); tmppantalla = pantalla; return true; } return false; } /** * devuelve el valor de la secuencia * @return secuencia */ public int getCount() { return count; } /** * Modifica la secuencia * @param count secuencia */ public void setCount(int count) { this.count = count; } /** * Guarda la imagen * @param img BufferedImage * @param nombre nombre imagen * @param dir directorio donde se guarda la imagen */ public void GuargaImagen(BufferedImage img, String nombre, String dir) { try { File file = new File("imagenes2/" + dir + "/" + nombre + ".png"); ImageIO.write(img, "png", file); System.out.println("Imagen " + nombre + ".png guardada"); } catch (IOException e) { e.printStackTrace(); } } }