最近的项目中有一个需求开发,情况是这个样子的:将页面上的某一个部分拿下来以后。以图片的形式保存,在网上搜了一下,采取的方式大致分为三种。
下面是最简单的一个小demo
public class GuiCamera {
/**
* 默认的文件前缀为GuiCamera,文件格式为PNG格式 The default construct will use the default
* Image file surname "GuiCamera", and default image format "png"
*/
private final static String FORMAT_PNG = "png";
private final static String FORMAT_JPG = "jpg";
private static String filePath = "";// 存放路径
private static String fileName = "GuiCamera_"; // 文件的前缀
private static int serialNum = 0;
private static String imageFormat = GuiCamera.FORMAT_PNG; // 图像文件的格式
private static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
/**
* 对屏幕进行拍照 snapShot the Gui once
*/
public static void snapShot() throws Exception {
try {
GuiCamera.filePath = "D://";
// 拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(1087, 71, 135,
21));
serialNum++;
// 根据文件前缀变量和文件格式变量,自动生成文件名
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");
String name = filePath + fileName + sdf.format(c.getTime()) + "." + imageFormat;
File f = new File(name);
// 将screenshot对象写入图像文件
ImageIO.write(screenshot, imageFormat, f);
} catch (Exception e) {
throw e;
}
}
public static void main(String[] args) throws Exception {
GuiCamera.filePath = "D://";
GuiCamera.snapShot();
}
}