Come catturare lo screenshot del desktop

Vediamo come poter catturare lo screenshot del desktop in Java, per poterlo poi riutilizzare nelle nostre applicazioni.

Di seguito mostreremo una semplice classe Java che consente di catturare in una immagine il nostro desktop, cioè un modo semplice per effettuare lo screenshot. Il cuore della semplice applicazione che sarà definita di seguito, è situata all’interno della classe java.awt.Robot. In condizioni normali tale classe è utilizzata per creare e gestire eventi in modo particolare quando si vogliono eseguire test sull’applicazione oppure demo.

 

L’applicazione si compone essenzialmente di due metodi:

private static void captureScreen();

private static void writeImage(BufferedImage bufferedImage, 
                               String fileName);

Il primo metodo ha il compito di catturare lo screenshot. Questa operazione potrebbe sembrare complessa, ma grazie al metodo createScreenCapture() della classe Robot diventa una operazione elementare in quanto cattura l’immagine dello schermo e la salva in un oggetto di tipo BufferedImage.

/**
 * Metodo per la creazione dell'immagine
 */
private static void captureScreen(){
	Robot robot = null;
	try {
  	robot = new Robot();
	} catch (AWTException e) {
		System.err.println("Impossibile istanziare l'oggetto "+
                "Robot. Causato da: "+e.getMessage());
		System.exit(-1);
	}

	// Selezione l'intero schermo
	Rectangle captureArea = 
           new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
	BufferedImage bufferedImage = 
			 robot.createScreenCapture(captureArea);
	bufferedImage = robot.createScreenCapture(captureArea);
	ScreenShoot.writeImage(bufferedImage, "ScreenShot");
}

Il metodo writeImage non fa altro che scrivere sull’hard disk l’immagine tramite l’utilizzo della classe ImageIO , in particolare grazie all’uso del metodo write.

/**
 * Metodo per la scrittura dell'immagine 
 */
private static void writeImage(BufferedImage bufferedImage, 
	String fileName) {
	try{
		ImageIO.write(bufferedImage, 
				"png", new File(fileName+ ".png"));
	} 
  catch (IOException e){
  	System.err.println("Impossibile scrivere l'immagine :"
  			+ e.getMessage());
  }
}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.