Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

21/1/10

Captura de pantalla en java

JAN29



Ahora aqui dejo una sencilla clase que permite "capturar" en una imagen cualquier parte de la pantalla utilizando para ello el objeto Robot de java


La clase se llama "capture.java" y esta compuesta por metodos que permiten especificar, el tipo de imagen (JPG, PNG, BMP), las dimensiones de la captura, el lugar donde se guardara la imagen asi como el nombre de la imagen, el metodo principal es captureScreen() el cual utiliza todos los parametros anteriores para poder realizar la captura de pantalla mediante el uso del objeto Robot de java, el codigo se encuentra por demas comentado y es perfectamente entendible.


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class capture {
   private Dimension screenSize ;
   private Point p;   
   private String tipo = "jpg";
   private String path = "c:/";
   
     public void setpath(String f){
        this.path = f;
     }
     
    public void setdimension(Dimension d){
        this.screenSize = d;
    }
    
    public void setpoint(Point p){
            this.p = p;
    }
    
    public void settipo(String t){
        this.tipo = t;
    }   
    
    public capture(){
        //toda la pantalla
        this.screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        this.p = new Point(0,0);        
        this.tipo = "jpg";
        this.path = "C:/default";    
    }
        
    public void captureScreen()  {        
        try {           
            //crea el area de captura
            Rectangle screenRectangle = new Rectangle(p, screenSize);
            Robot robot = new Robot();
            BufferedImage image = robot.createScreenCapture(screenRectangle);            
            //guarda la imagen en disco
            ImageIO.write(image, tipo, new File(path + "." + tipo));
        } catch (IOException ex) {
            Logger.getLogger(capture.class.getName()).log(Level.SEVERE, null, ex);
        } catch (AWTException ex) {
            Logger.getLogger(capture.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Para bajarte el codigo, clic en la imagen, no pesa nada


5 comentarios:

Anónimo dijo...

jc no funciona el link pana por favor actualizalo gracias

eduardo dijo...

que tal, he desarrollado una aplicación en la cual capturo la pantalla del cliente y guardo la imagen en un servidor. el problema es cuando a esta aplicación la levanto como un servicio de windows. Las capturas salen negras. no se como solucionarlo ya que debe subirse a como de lugar como un servicio. es para monitoreo de usuarios.

jc mouse dijo...

eduardo: nose que decirte, pero si captura en local y no como servicio, tal vez este fallando en el proceso de guardado

Anónimo dijo...

Hola que tal!
Recibo los datos de la imagen por el puerto serie y con esos datos quiero armar un bmp.
Alguna sugerencia?

Anónimo dijo...

Amigo primero que todo muy bueno tu codigo, quisiera preguntarte por que "analice tu clase" y no veo como capturas el cursor del mouse, mi pregunta es si tu aplicación lo hace? y si no lo hace como lo harias?

espero tu respuesta
att. conejillo de indias otro programador sudaca

Post recomendado