Java定期自動截屏的代碼

ne3g 9年前發布 | 2K 次閱讀 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>

 本文由用戶 ne3g 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!