java 利用java運行時的方法獲得當前屏幕截圖的方法

將截屏圖片保存到本地路徑:java

package com.test;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class MainRun {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		try {
			Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
			BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(0,
					0,(int)dimension.getWidth(),(int)dimension.getHeight()));
			File file = new File("C:/screen.jpg");
			ImageIO.write(screenshot, "jpg", file);
		} catch (HeadlessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (AWTException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

web版,將顯示實時的圖片做爲流返回到頁面web

/**
	 * 獲得當前屏幕截圖
	 * 
	 * @param request
	 * @param response
	 */
	private void getScreenImg(HttpServletRequest request, HttpServletResponse response) throws Exception {
		Thread.sleep(3000);
		response.setContentType("image/jpg");
		ServletOutputStream sos = response.getOutputStream();
		// 禁止頁面緩存
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		// 建立內存圖象並得到其圖形上下文
		Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
		BufferedImage screenshot = (new Robot())
				.createScreenCapture(new Rectangle(0, 0, (int) dimension
						.getWidth(), (int) dimension.getHeight()));
		// 將圖像輸出到客戶端
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		ImageIO.write(screenshot, "jpg", bos);
		byte[] buf = bos.toByteArray();
		response.setContentLength(buf.length);
		sos.write(buf);
		bos.close();
		sos.close();
	}
相關文章
相關標籤/搜索