來源:http://www.study-code.com/java/j2se/66419.htm
package com.test;
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;
/*******************************************************************************
* 該JavaBean可以直接在其他Java應用程式中調用,實現螢幕的"拍照" This JavaBean is used to snapshot the
* GUI in a Java application! You can embeded it in to your java application
* source code, and us it to snapshot the right GUI of the application
*
* @see javax.ImageIO
* @author liluqun ([email]liluqun@263.net[/email])
* @version 1.0
*
******************************************************************************/
public class GuiCamera {
private String fileName; // 檔案的首碼
private String defaultName = "GuiCamera";
static int serialNum = 0;
private String imageFormat; // 影像檔的格式
private String defaultImageFormat = "jpg";
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
/***************************************************************************
* 預設的檔案首碼為GuiCamera,檔案格式為PNG格式 The default construct will use the default
* Image file surname "GuiCamera", and default image format "png"
**************************************************************************/
public GuiCamera() {
fileName = defaultName;
imageFormat = defaultImageFormat;
}
/***************************************************************************
* @param s
* the surname of the snapshot file
* @param format
* the format of the image file, it can be "jpg" or "png"
* 本構造支援JPG和PNG檔案的儲存
**************************************************************************/
public GuiCamera(String s, String format) {
fileName = s;
imageFormat = format;
}
/***************************************************************************
* 對螢幕進行拍照 snapShot the Gui once
**************************************************************************/
public void snapShot() {
try {
// 拷貝螢幕到一個BufferedImage對象screenshot
BufferedImage screenshot = (new Robot())
.createScreenCapture(new Rectangle(0, 0,
(int) d.getWidth(), (int) d.getHeight()));
serialNum++;
// 根據檔案首碼變數和檔案格式變數,自動組建檔案名
String name = fileName + String.valueOf(serialNum) + "."
+ imageFormat;
File f = new File(name);
System.out.print("Save File " + name);
// 將screenshot對象寫入影像檔
ImageIO.write(screenshot, imageFormat, f);
System.out.print("..Finished!\n");
} catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String[] args) {
GuiCamera cam = new GuiCamera("d:\\qq", "bmp");//
cam.snapShot();
}
}