packagejavax.utils;importjava.awt.AWTException;importjava.awt.Dimension;importjava.awt.Rectangle;importjava.awt.Robot;importjava.awt.Toolkit;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjava.io.OutputStream;importjavax.imageio.ImageIO;/*** 截屏工具类
*
*@authorLogan
* @createDate 2019-04-15
*@version1.0.0
**/
public classPrintScreenUtils {/*** 图片类型
*
*@authorLogan
* @createDate 2019-04-15
*@version1.0.0
**/
public classImageType {public static final String JPG = "jpg";public static final String PNG = "png";public static final String GIF = "gif";
}/*** 截取当前屏幕图片
*
*@returnBufferedImage对象
*@throwsAWTException 抛出异常,由调用者处理*/
public static BufferedImage getImage() throwsAWTException {
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRect= newRectangle(screenSize);
Robot robot= newRobot();returnrobot.createScreenCapture(screenRect);
}/*** 截取当前屏幕图片并输出到指定文件
*
*@paramoutput 指定输出文件,默认输出png格式
*@return是否保存截屏成功
*@throwsIOException 抛出异常,由调用者处理
*@throwsAWTException 抛出异常,由调用者处理*/
public static boolean write(File output) throwsIOException, AWTException {returnwrite(ImageType.PNG, output);
}/*** 截取当前屏幕图片并输出到指定文件
*
*@paramimageType 输出图片类型
*@paramoutput 指定输出文件
*@return是否保存截屏成功
*@throwsIOException 抛出异常,由调用者处理
*@throwsAWTException 抛出异常,由调用者处理*/
public static boolean write(String imageType, File output) throwsIOException, AWTException {returnImageIO.write(getImage(), imageType, output);
}/*** 截取当前屏幕图片并输出到指定输出流
*
*@paramoutput 图片输出流,可以是网络响应输出流,文件输出流等。默认输出png格式
*@return是否输出截屏图片成功
*@throwsIOException 抛出异常,由调用者处理
*@throwsAWTException 抛出异常,由调用者处理*/
public static boolean write(OutputStream output) throwsIOException, AWTException {returnwrite(ImageType.PNG, output);
}/*** 截取当前屏幕图片并输出到指定输出流
*
*@paramimageType 输出图片类型
*@paramoutput 图片输出流,可以是网络响应输出流,文件输出流等
*@return是否输出截屏图片成功
*@throwsIOException 抛出异常,由调用者处理
*@throwsAWTException 抛出异常,由调用者处理*/
public static boolean write(String imageType, OutputStream output) throwsIOException, AWTException {returnImageIO.write(getImage(), imageType, output);
}
}