1.获得屏幕大小
2.获取屏幕大小的图片
3.找个路径写出
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 javax.imageio.ImageIO;
public class Test
{
private String fileName; //文件的前缀
static int serialNum=0;
private String imageFormat; //图像文件的格式
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//工具包.获取默认工具包.获取屏幕大小
//Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。该类与组件的某个属性关联。由 Component 类和 LayoutManager 接口定义的一些方法将返回 Dimension 对象。
public Test()
{
this.fileName = "e:\\RaoYiLun";
this.imageFormat="png";
}
/**
*
* @param fileName 文件名
* @param format 格式,支持jpg和png
*/
public Test(String fileName,String format) {
this.fileName = fileName;
this.imageFormat=format;
}
/**
* 快照
*/
public void screenShot() {
try {
//new一个基本屏幕坐标系对象Robot,创建一个屏幕捕获,区域从(0,0)到屏幕大小,
//Rectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。
//BufferedImage createScreenCapture(Rectangle screenRect) 创建包含从屏幕中读取的像素的图像。
BufferedImage screenshot = (new Robot()).createScreenCapture(new
Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
serialNum++;//这里加了一个后缀,防止覆盖,就是偷个懒,其实应该用UUID
//根据文件前缀变量和文件格式变量,自动生成文件名
String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
File f = new File(name);
System.out.print("Save File "+name);
//将screenshot对象写入图像文件
//write(RenderedImage im, String formatName, File output) 使用支持给定格式的任意 ImageWriter 将一个图像写入 File。
ImageIO.write(screenshot, imageFormat, f);
System.out.print("...完成");
}
catch (Exception ex)
{
System.out.println(ex);
}
}
public static void main(String[] args)
{
Test cam= new Test("e:\\RaoYiLun", "png");//
cam.screenShot();
}
}