martes, 11 de junio de 2013

Aplicación Java para realizar Capturas de Pantalla


El día de hoy se me ocurrió realizar una aplicación que realizara capturas de pantalla, o impresiones de pantalla y que las exportara a un archivo de imagen jpg, png, gif, bmp, etc

Investigando un poco encontré información acerca de la clase Robot y entre otras cosas  la clase nos permite realizar capturas de nuestra pantalla con gran nitidez(también depende del tipo de imagen generado).



No me extenderé tratando de explicar cada formato de imagen porque no es el objetivo de mi publicación. Pueden jugar con el código y experimentar, para así sacar sus propias conclusiones.

Este es el ejemplo más sencillo para hacer una captura de la pantalla completa.

import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;

class CapturarPantalla {
  public static void main(String args[])
        throws AWTException, IOException {
     // captura la pantalla completa
     BufferedImage pantalla = new Robot().createScreenCapture(
     new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );//se obtiene el tamaño de la pantalla
     
     // Lo guarda como un png, podemos modificarlo y guardarlo como jpg,gif,bmp
     File file = new File("pantalla.png");//creamos el archivo
     ImageIO.write(pantalla, "png", file);//escribimos la imagen en archivo   
   }
}


Como podrán observar el código es muy simple. La linea resaltada en rojo corresponde el lugar donde se guardara el archivo. En este caso se crea en la carpeta principal del proyecto. Es posible escribir cualquier ubicación válida, por ejemplo "d:/pantalla.png", "c:/capturas/pantalla.png", etc.

Si deseamos conocer los formatos de imagen disponibles podemos mostrarlos con el siguiente código.
String writerNames[] = ImageIO.getWriterFormatNames();
     for(String aux:writerNames){
         System.out.println(aux);
     }

Parece una forma muy simple de realizar capturas de pantalla. Pero lo más útil sería que fuera una interfaz gráfica la que te ayudara a realizar esta función. Todo depende de la creatividad e imaginación del programador.

Mi aplicación.
En mi caso las interfaces gráficas no son lo mio, realice una aplicación sencilla que nos permite fácilmente capturar la pantalla o parte de ella y almacenarla en un archivo en múltiples formatos. El único formato que al parecer no me funciono fue wbmp,WBMP

La app tiene un tamaño de 83.4 kb y puedes guardarla en tu memoria usb.

Al posicionar el cursor sobre los elementos de la aplicación podemos obtener la descripción de sus funciones.

¿Como funciona?
1.-El funcionamiento es muy sencillo, el botón con el icono realiza la captura de pantalla.
2.-Puedes elegir 2 tipos de capturas:
    a)Pantalla completa: Como su nombre lo dice captura toda la pantalla.
    b)Seleccionado: Captura el área seleccionada. ¿Como seleccionar? Cuando se elige "Seleccionado" la ventana permite ser re dimensionada y sirve para capturar el área cubierta por la ventana de la aplicación.

3.-Tipo de Imagen: Selecciona el formato para exportar la imagen. Puede ser jpg, jpeg,gif,png . La opción predeterminada es png ya que genera imágenes más claras.

4.- Delay(segundos):  Es el tiempo que debe pasar entre ocultar la ventana de aplicación y realizar la captura. Evita que se incluya la ventana de aplicación en la captura. En caso de que aparezcan restos de la ventana se debe aumentar el valor. Si quiere incluir la ventana de la aplicación en la imagen seleccione 0.

5.-Guardar en: Su función es elegir la carpeta donde se guarda la imagen. Si no lo define se mostrará Ubicación de la aplicación. Esto quiere decir que la captura se almacenara en la carpeta donde se ubica la aplicación y se nombrara como captura_11062013_22-58-27.png  donde los números significan día,mes, año_hora-minuto-segundo

6.-Abrir imagen creada. Esta opción permite que después de generado el archivo se muestre con el visor de imágenes. Si marca la opción se mostrará la imagen, de lo contrario no.



Si deseas probar la aplicación puedes descargarla .

MEGA Screen.rar (54 KB)
DropBox Screen.rar(54 KB)
Box Screen.rar(54 KB)




3 comentarios:

  1. Aplicacion muy practica, GRACIAS!

    ResponderEliminar
  2. amigo descargo la aplicación pero sale un error

    ResponderEliminar
    Respuestas
    1. Yo uso diariamente la aplicación, me imagino que el problema es que no tienes instalado Java. Puedes descargarlo en http://java.com

      Eliminar