截屏的代码(JAVA)

来源:互联网 发布:蚁群算法 知乎 编辑:程序博客网 时间:2024/05/17 09:20
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="png";     
          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://Hello",   "png");//     
    
                  cam.snapShot();     
          }     
  }