Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to take a screenshot in Java? [duplicate]

Tags:

java

Possible Duplicate:
Is there a way to take a screenshot using Java and save it to some sort of image?

How to take a screenshot in Java?

like image 318
Adesara Avatar asked Dec 20 '10 14:12

Adesara


People also ask

How do you take a screenshot in Java?

We use java.It provides method like createScreenCapture which captures the current screen. This method returns captured image as BufferedImage object which can be saved as a file. It also uses ImageIO to save it as PNG image format.

How do you take a screenshot in Java for Minecraft?

This feature is exclusive to Java Edition. A screenshot taken in-game, using F1 to hide the heads-up display. Screenshots are images taken in-game by pressing the (by default) F2 key or Fn + F2 for Macs and some other keyboards.


2 Answers

Use Robot#createScreenCapture().

BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); ImageIO.write(image, "png", new File("/screenshot.png")); 
like image 129
BalusC Avatar answered Oct 27 '22 03:10

BalusC


You can find this code useful. this code will take screenshot in every 10 seconds

import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*;   public class screen2image {     SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd hh mm ss a");      public void robo() throws Exception     {         Calendar now = Calendar.getInstance();         Robot robot = new Robot();         BufferedImage screenShot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));         ImageIO.write(screenShot, "JPG", new File("d:\\"+formatter.format(now.getTime())+".jpg"));         System.out.println(formatter.format(now.getTime()));     }      public static void main(String[] args) throws Exception     {         screen2image s2i = new screen2image();         while(true)         {             s2i.robo();             Thread.sleep(10000);         }     } } 
like image 28
Raj Gupta Avatar answered Oct 27 '22 01:10

Raj Gupta