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

/**
	 * 得到当前屏幕截图
	 * 
	 * @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();
	}


参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

songylwq

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值