關於Java實現屏幕截圖

1.獲得屏幕大小
2.獲取屏幕大小的圖片
3.找個路徑寫出

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;

public class Test
{
 private String fileName; //文件的前綴
 static int serialNum=0;
 private String imageFormat; //圖像文件的格式
 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//工具包.獲取默認工具包.獲取屏幕大小
 //Dimension 類封裝單個對象中組件的寬度和高度(精確到整數)。該類與組件的某個屬性關聯。由 Component 類和 LayoutManager 接口定義的一些方法將返回 Dimension 對象。 


 public Test() 
 {
   this.fileName = "e:\\RaoYiLun";
   this.imageFormat="png";
}


/**
 * 
 * @param fileName 文件名
 * @param format 格式,支持jpg和png
 */
 public Test(String fileName,String format) {

 this.fileName = fileName;
 this.imageFormat=format;
 }

 /**
  * 快照
  */
 public void screenShot() {

 try {
         //new一個基本屏幕座標系對象Robot,創建一個屏幕捕獲,區域從(0,0)到屏幕大小,
         //Rectangle 指定座標空間中的一個區域,通過座標空間中 Rectangle 對象左上方的點 (x,y)、寬度和高度可以定義這個區域。
         //BufferedImage createScreenCapture(Rectangle screenRect)   創建包含從屏幕中讀取的像素的圖像。
         BufferedImage screenshot = (new Robot()).createScreenCapture(new
         Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
         serialNum++;//這裏加了一個後綴,防止覆蓋,就是偷個懶,其實應該用UUID
         //根據文件前綴變量和文件格式變量,自動生成文件名
         String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
         File f = new File(name);
         System.out.print("Save File "+name);
         //將screenshot對象寫入圖像文件
         //write(RenderedImage im, String formatName, File output)  使用支持給定格式的任意 ImageWriter 將一個圖像寫入 File。
         ImageIO.write(screenshot, imageFormat, f);
         System.out.print("...完成");
     }
         catch (Exception ex) 
         {
            System.out.println(ex);
         }
 }

 public static void main(String[] args)
 {
         Test cam= new Test("e:\\RaoYiLun", "png");//
         cam.screenShot();
 }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章