I want to take a snapshot of desktop screen in java. How can i do this.
This is similar to pressing print screen and paste data in ms-paint, and then save file in .png or .jpg format.
I want to take a snapshot of desktop screen in java. How can i do this.
This is similar to pressing print screen and paste data in ms-paint, and then save file in .png or .jpg format.
Like this:
Robot r = new Robot();
Toolkit t = Toolkit.getDefaultToolkit();
Dimension d = t.getScreenSize();
Image i = r.createScreenCapture(new Rectangle(0,0,d.width,d.height));
Copy and paste following code in your Java class and invoke the method captureScreen() with file name as argument. The screen shot will be stored in the file that you specified in argument.
import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.File; ... public void captureScreen(String fileName) throws Exception { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle screenRectangle = new Rectangle(screenSize); Robot robot = new Robot(); BufferedImage image = robot.createScreenCapture(screenRectangle); ImageIO.write(image, "png", new File(fileName)); } ...
Explained in the following link
get your screen details from GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsConfiguration cg // get your screen configuration from above
Rectangle rect = cg.getBounds();
final BufferedImage image;
image = new Robot().createScreenCapture(rect);
file = new File(yourFilePath);
String extension = "png" // or any other image extension.
ImageIO.write(bufferedImage, extension, file);
Try This:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice screen = env.getDefaultScreenDevice();
robot = new Robot(screen);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
BufferedImage img = robot.createScreenCapture(new Rectangle(0,0,d.width,d.height));
Robot robot = new Robot();
String format = "jpg";
String fileName = "D://FullScreenshot." + format;
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
ImageIO.write(screenFullImage, format, new File(fileName));