2025-02-10

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 (liluqun@263.net)   
 * @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:\\", "jpg");//   
 
  cam.snapShot();   
  }   
}

作者“ERDP技術架構”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *