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();
}
}