1 packageCamera;2 importjava.awt.image.BufferedImage;3 import java.io.*;4 import javax.imageio.*;5 import java.awt.*;6 /*******************************************************************7 * 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"8 * This JavaBean is used to snapshot the GUI in a9 * Java application! You can embeded10 * it in to your java application source code, and us11 * it to snapshot the right GUI of the application12 *@seejavax.ImageIO13 *@authorVisec·Dana14 *@version1.015 *****************************************************/
16 public classGuiCamera {17 private String fileName; //文件的前缀
18 private String defaultName = "GuiCamera";19 static int serialNum=0;20 private String imageFormat; //图像文件的格式
21 private String defaultImageFormat="png";22 Dimension d=Toolkit.getDefaultToolkit().getScreenSize();23
24 /****************************************************************25 * 默认的文件前缀为GuiCamera,文件格式为PNG格式26 * The default construct will use the default27 * Image file surname "GuiCamera",28 * and default image format "png"29 ****************************************************************/
30 publicGuiCamera() {31 fileName =defaultName;32 imageFormat=defaultImageFormat;33
34 }35 /****************************************************************36 *@params the surname of the snapshot file37 *@paramformat the format of the image file,38 * it can be "jpg" or "png"39 * 本构造支持JPG和PNG文件的存储40 ****************************************************************/
41 publicGuiCamera(String s,String format){42 fileName =s;43 imageFormat=format;44 }45 /****************************************************************46 * 对屏幕进行拍照47 * snapShot the Gui once48 ****************************************************************/
49 public voidsnapShot(){50 try{51 //拷贝屏幕到一个BufferedImage对象screenshot
52 BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));53 //根据文件前缀变量和文件格式变量,自动生成文件名
54 String name=fileName+String.valueOf(serialNum)+"."+imageFormat;55 File f = newFile(name);56 System.out.print("Save File "+name);57 //将screenshot对象写入图像文件
58 ImageIO.write(screenshot, imageFormat, f);59 System.out.print("..Finished!\n");60 }61 catch(Exception ex) {62 System.out.println(ex);63 }64 }65 }