Java定期自動截屏的代碼
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.util.Timer; import java.util.TimerTask;
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
@version 1.0 **/ public class GuiCamera extends TimerTask { private String fileName;//文件的前綴
private String defaultName = "GuiCamera";
static int serialNum = 0;
private String imageFormat;//圖像文件的格式
private String defaultImageFormat = "png";
Dimension dimension = 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;
}
/**
- 本構造支持JPG和PNG文件的存儲
- @param s the surname of the snapshot file
- @param format the format of the image file,
- it can be "jpg" or "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) dimension
.getWidth(), (int) dimension.getHeight()));
// 根據文件前綴變量和文件格式變量,自動生成文件名 String name = fileName + "." + 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 void run() { snapShot(); }
public static void main(String[] args) { Timer timer = new Timer(); int fileNumber = 0; timer.schedule(new GuiCamera("C://11//Hello" + ++fileNumber, "png"), 0, 10000); } } </pre>