Here i will tell you how to write a program using java which is capable of capturing screenshots(either whole or partial).And save it as an image.
Which java API ?
The java.awt.Robot class provides a useful method for capturing a screenshot.Here is the method prototype.
It is clear from the prototype that this function returns a BufferedImage and takes a Rectangle class object (portion of the screen to capture) as the argument.The BufferedImage which is returned could be saved using ImageIO class write method.Lets begin with the program.
1) Capturing full screen
In order to capture full screen using createScreenCapture(Rectangle screenRect)
screenRect should have the full screen size and in order to do that we will use Toolkit class of java.Rectangle screenRect =
new
Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
Now here begins the whole program.
/******************************************************************/
/* Author: Shashank sahu */
/* */
/* Description: Program which captures Screen shot of whole screen*/
/* */
/******************************************************************/
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class FullScreenCaptureExample {
public static void main(String[] args) {
try {
Robot robot = new Robot();
String format = "jpg";//can be,“png”, “bmp”,"jpeg" etc
String fileName = "screenshot." + format;
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenImg = robot.createScreenCapture(screenRect);
ImageIO.write(screenImg, format, new File(fileName));
System.out.println("screenshot saved!");
}
catch (AWTException | IOException ex) {
System.err.println(ex);
}
}
}
2)Capturing a portion of screen
You can also capture only a portion of screen by defining the rectangle object of createScreenCapture().
Rectangle area=new Rectangle(int startxpos,int startypos,int endxpos,int endypos)
startxpos >>Starting x position in pixels.
startypos>> Starting y position in pixels.
endxpos >> Ending x position in pixels.
endypos >>Ending y position in pixels
Here is the complete code.
/******************************************************************/ /* Author: Shashank sahu */ /* */ /* Description: Program which captures partial Screen shot */ /* */ /******************************************************************/ import java.awt.AWTException; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class PartialScreenCaptureExample { public static void main(String[] args) { try { Robot robot = new Robot(); String format = "jpg"; String fileName = "PartialScreenshot." + format; Rectangle captureRect = new Rectangle(0, 0, 100,100);/*top left corner to 100 pixels down and 100 pixels right*/
BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
ImageIO.write(screenFullImage, format, new File(fileName));
System.out.println("partial screenshot saved!");
} catch (AWTException | IOException ex) {
System.err.println(ex);
}
}
}
Comments
Post a Comment