您的位置:首页 > 编程语言 > Java开发

java 利用java运行时的方法得到当前屏幕截图的方法

2017-10-18 00:00 441 查看
将截屏图片保存到本地路径:

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版,将显示实时的图片作为流返回到页面

/**
* 得到当前屏幕截图
*
* @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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: