java代码实现截图功能(屏幕截图)

 更新时间:2013年12月19日 09:50:03   作者:  
java代码实现截图功能,该JavaBean可以直接在其他Java应用程序中调用,默认的文件前缀为GuiCamera,文件格式为PNG格式,直接使用下面的类吧

复制代码 代码如下:

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;

/*******************************************************************
 * 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"
 * This JavaBean is used to snapshot the GUI in a
 * Java application! You can embeded
 * it in to your java application source code, and us
 * it to snapshot the right GUI of the application
 * @see javax.ImageIO
 * @author liluqun
 * @version 1.0
 *****************************************************/

public class Test
{
 private String fileName; //文件的前缀
 private String defaultName = "GuiCamera";
 static int serialNum=0;
 private String imageFormat; //图像文件的格式
 private String defaultImageFormat="png";
 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

 /****************************************************************
 * 默认的文件前缀为GuiCamera,文件格式为PNG格式
 * The default construct will use the default
 * Image file surname "GuiCamera",
 * and default image format "png"
 ****************************************************************/
 public Test() {
 fileName = defaultName;
 imageFormat=defaultImageFormat;

 }

 /****************************************************************
 * @param s the surname of the snapshot file
 * @param format the format of the image file,
 * it can be "jpg" or "png"
 * 本构造支持JPG和PNG文件的存储
 ****************************************************************/
 public Test(String s,String format) {

 fileName = s;
 imageFormat=format;
 }

 /****************************************************************
 * 对屏幕进行拍照
 * snapShot the Gui once
 ****************************************************************/
 public void snapShot() {

 try {
 //拷贝屏幕到一个BufferedImage对象screenshot
 BufferedImage screenshot = (new Robot()).createScreenCapture(new
 Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
 serialNum++;
 //根据文件前缀变量和文件格式变量,自动生成文件名
 String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
 File f = new File(name);
 System.out.print("Save File "+name);
 //将screenshot对象写入图像文件
 ImageIO.write(screenshot, imageFormat, f);
 System.out.print("..Finished!\n");
 }
 catch (Exception ex) {
 System.out.println(ex);
 }
 }

 public static void main(String[] args)
 {
 Test cam= new Test("d:\\Hello", "png");//

 cam.snapShot();
 }
}

相关文章

  • 通过volatile验证线程之间的可见性

    通过volatile验证线程之间的可见性

    这篇文章主要介绍了通过volatile验证线程之间的可见性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java优先队列 priority queue

    Java优先队列 priority queue

    本文主要介绍了Java优先队列 priority queue,优先队列是一种特殊的数据结构队列中每一个元素都被分配到一个优先权值,出队顺序按照优先权值来划分。一般有两种出队顺序高优先权出队或低优先权出队,想了解具体内容的小伙伴可以参考下文内容,希望对你有所帮助
    2021-12-12
  • idea为java程序添加启动参数的问题解析(program arguments,vm arguments,Environment variable)并在程序中获取使用

    idea为java程序添加启动参数的问题解析(program arguments,vm arguments,Envi

    这篇文章主要介绍了idea为java程序添加启动参数的问题解析(program arguments,vm arguments,Environment variable)并在程序中获取使用,本文给大家分享问题描述及解决方法,需要的朋友可以参考下
    2023-09-09
  • 解决Spring boot 整合Junit遇到的坑

    解决Spring boot 整合Junit遇到的坑

    这篇文章主要介绍了解决Spring boot 整合Junit遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Springboot+Mybatis实现分页加条件查询功能

    Springboot+Mybatis实现分页加条件查询功能

    这篇文章主要为大家详细介绍了Springboot+Mybatis实现分页加条件查询,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Java后端面试题最新整理

    Java后端面试题最新整理

    在本篇文章里小编给大家整理了一篇关于Java后端面试题最新整理内容,需要的朋友们可以参考下。
    2020-12-12
  • Spring Cloud应用实现配置自动刷新过程详解

    Spring Cloud应用实现配置自动刷新过程详解

    这篇文章主要介绍了Spring Cloud应用实现配置自动刷新过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Springboot项目对数据库用户名密码实现加密过程解析

    Springboot项目对数据库用户名密码实现加密过程解析

    这篇文章主要介绍了Springboot项目对数据库用户名密码实现加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • arthas jprofiler做复杂链路的调用分析

    arthas jprofiler做复杂链路的调用分析

    这篇文章主要为大家介绍了arthas jprofiler做复杂链路的调用分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 浅谈java反射和自定义注解的综合应用实例

    浅谈java反射和自定义注解的综合应用实例

    本篇文章主要介绍了java反射和自定义注解的综合应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论