`
songylwq
  • 浏览: 131752 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

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();
	}


分享到:
评论

相关推荐

    JAVA截图小工具

    它是Java类文件和其他资源的集合,可以通过Java运行时环境(JRE)执行。双击"ScreenShot.jar",程序将启动并开始运行。运行后,它会在当前目录下创建一个名为“image”的文件夹,用于存储用户截取的图片。 在程序的...

    纯Java实现整个网页截图项目源代码

    在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...

    网页截图工具,采用 Java Applet 实现

    总结来说,这款“网页截图工具,采用Java Applet实现”是一个利用Java的图形和交互能力在浏览器中捕获网页图像的应用。尽管现代Web技术提供了替代方案,但对于某些场景,Java Applet依然能提供一种有效的解决方案。...

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java 桌面图像获取带鼠标

    上述代码中,`Rectangle`对象定义了屏幕的大小,`createScreenCapture()`方法则返回指定区域的屏幕截图。注意,创建`Robot`对象可能会抛出`AWTException`,确保捕获并处理异常。 要显示鼠标图形,我们需要知道鼠标...

    java源码包3

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java计算雷达屏幕上两点之间距离的应用

    通过以上分析可以看出,这个Java程序涉及到了面向对象编程的核心概念和技术,同时也展示了如何利用这些技术解决实际问题——即计算雷达屏幕上两点间的距离。这对于学习Java语言和面向对象编程的人来说是一个很好的...

    java源码包2

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java开发技术大全(500个源代码).

    listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个类 Shape.java 一个用于测试的简单类 useArray1.java 用反射机制使用数组示例1 useArray2.java 用反射机制使用数组示例2 第10章 ...

    Java版 桌面画图工具

    在Java中,我们可以利用java.awt.Robot类来实现屏幕抓取。Robot类提供了一系列方法,如createScreenCapture(),用于捕获指定区域的屏幕图像。结合java.awt.Rectangle对象,我们可以精确地定义要截取的屏幕部分,从而...

    Java画笔程序代码,以实现窗口的形式运行

    `paint`方法是绘制图形的关键,它遍历`vec`中的所有向量(每个向量代表一条线段的所有点),并利用`drawPolyline`方法绘制出这些线段。这里通过将每个向量中的点转换为数组`x`和`y`,再调用`drawPolyline`进行绘制。...

    java SWT编写的截图程序

    总的来说,利用Java SWT编写截图程序是一种高效且灵活的方式,它允许开发者创建功能丰富、用户体验良好的桌面应用。通过上述的各个功能模块,我们可以构建出一个功能强大的截图工具,不仅能满足基本的截图需求,还能...

    Java常用方法总结

    ### Java常用方法总结 ...通过以上方法,可以有效地配置Java开发环境,同时也能更好地利用JFrame等Swing组件来构建功能丰富的GUI应用程序。这些技巧不仅适用于初学者,对于有一定经验的开发者来说也是很好的参考。

    java-记事本(可以运行的哦!)

    )”的程序是一个用Java编写的记事本应用,它具备了基本的文本编辑功能,并且能够运行在Java环境中。该程序不仅体现了Java在图形用户界面(GUI)开发中的应用,还展示了如何利用事件监听器来实现用户交互,以及如何...

    屏幕拍照(Java)

    通过上述介绍可以看出,“屏幕拍照(Java)”是一个简单但非常实用的功能,它不仅可以帮助开发者更好地理解应用程序在运行过程中的行为,还可以在出现问题时提供有力的诊断信息。通过使用Java标准库中的`Robot`和`...

    java贪吃蛇附详细步骤

    利用AWT或Swing的Graphics类进行绘图,清除屏幕,重新绘制蛇、食物和边界。通过延时(例如使用`Thread.sleep()`)实现简单的动画效果,使蛇看起来在移动。 8. **实验报告**: 实验报告应包括项目的概述、设计思路...

    java写的截屏程序

    Java编写的截屏程序是一种利用Java编程语言实现的桌面屏幕捕获工具,它允许用户从计算机屏幕上抓取图像。在Java中实现截屏功能主要涉及Java的图形和图像处理库,如AWT(Abstract Window Toolkit)和Swing库。下面...

    java图形时钟基于自带多媒体编程

    Java图形时钟是一种利用Java编程语言创建的可视化应用程序,它能模拟现实世界中的钟表,显示当前的时间。在这个项目中,开发者使用了Eclipse作为集成开发环境(IDE),结合Java的多媒体功能,来构建这个图形时钟。...

    java源码:Java实现跟踪鼠标运行坐标的源码.rar

    当鼠标移动时,程序可能使用`Graphics2D`类来更新屏幕上的信息,显示鼠标的当前坐标。`Graphics2D`是`Graphics`类的扩展,提供了更高级的绘图功能。 5. **Swing Timer**: 为了实现平滑的坐标更新,可能使用了`...

    java实现简单的记事本程序(内含源代码)

    我们可以通过它的getText()方法获取当前文本,通过setText()方法设置文本,以及通过append()方法追加文本。 6. **对话框**: - 记事本程序可能需要使用JOptionPane来弹出对话框,提示用户选择或输入信息,如打开或...

Global site tag (gtag.js) - Google Analytics