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
jc no funciona el link pana por favor actualizalo gracias
ResponderEliminarque 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.
ResponderEliminareduardo: nose que decirte, pero si captura en local y no como servicio, tal vez este fallando en el proceso de guardado
ResponderEliminarHola que tal!
ResponderEliminarRecibo los datos de la imagen por el puerto serie y con esos datos quiero armar un bmp.
Alguna sugerencia?
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?
ResponderEliminarespero tu respuesta
att. conejillo de indias otro programador sudaca