截取指定屏幕区域的屏幕,并保存到指定文件夹中,Demo如下:
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
public class Screenshot {
/**
* 截图
*
* @param filePath
* 截图保存文件夹路径
* @param fileName
* 截图文件名称
* @throws Exception
*/
public static void captureScreen(String filePath, String fileName) throws Exception {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
// 截图保存的路径
File screenFile = new File(filePath + fileName);
// 如果文件夹路径不存在,则创建
if (!screenFile.getParentFile().exists()) {
screenFile.getParentFile().mkdirs();
}
// 指定屏幕区域,参数为截图左上角坐标(100,100)+右下角坐标(500,500)
BufferedImage subimage = image.getSubimage(100, 100, 500, 500);
ImageIO.write(subimage, "png", screenFile);
}
public static void main(String[] args) throws Exception {
Date now = new Date();
SimpleDateFormat sdfPath = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdfName = new SimpleDateFormat("yyyyMMddHHmmss");
String path = sdfPath.format(now);
String name = sdfName.format(now);
captureScreen("D:" + File.separator + path + File.separator, name + ".png");
}
}