操作系统:Windows 10 x64

参考:https://blog.csdn.net/weixin_40657079/article/details/83961708

 1 import java.awt.AWTException;
2 import java.awt.Desktop;
3 import java.awt.Dimension;
4 import java.awt.Rectangle;
5 import java.awt.Robot;
6 import java.awt.Toolkit;
7 import java.awt.image.BufferedImage;
8 import java.io.File;
9 import java.io.IOException;
10 import java.text.DateFormat;
11 import java.text.SimpleDateFormat;
12 import java.util.Date;
13
14 import javax.imageio.ImageIO;
15
16 public class Main {
17
18 public static void main(String[] args) throws AWTException, IOException {
19 // 获取屏幕的尺寸
20 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
21 System.out.println("The width and the height of the screen are " + screenSize.getWidth() + " x " + screenSize.getHeight());
22
23 // 截取屏幕
24 BufferedImage image = new Robot().createScreenCapture(new Rectangle(screenSize));
25
26 // 设置日期格式,作为目录名
27 DateFormat dfDirectory = new SimpleDateFormat("yyyyMMdd");
28 // 创建一个用于保存图片的文件夹
29 File screenCaptureDirectory = new File("J:" + File.separator + "ScreenCapture" + File.separator + dfDirectory.format(new Date()));
30 if (!screenCaptureDirectory.exists()) {
31 screenCaptureDirectory.mkdirs();
32 System.out.println("The directory " + screenCaptureDirectory.getName() + " is created.");
33 }
34
35 // 设置日期格式,作为图片名
36 DateFormat dfImageName = new SimpleDateFormat("yyyyMMddhhmmss");
37 // 指定路径,并以特定的日期格式作为图片的名称
38 File imageFile = new File(screenCaptureDirectory, (dfImageName.format(new Date()) + ".png"));
39
40 // 以指定的图片格式将截取的图片写到指定的文件
41 ImageIO.write(image, "png", imageFile);
42
43 // 自动打开图片(没看懂!)
44 if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
45 Desktop.getDesktop().open(imageFile);
46 }
47 }
48 }

控制台输出的信息:

The width and the height of the screen are 1920.0 x 1080.0
The directory 20190504 is created.

新创建的文件夹,以及截取的图片:

截取的图片:

Java 实现截屏的更多相关文章

  1. java实现截屏

    import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit ...

  2. JAVA之网页截屏

    先吐槽一下下: 表示接近两个月没有敲代码了,现在看一下代码都感觉有点生了.三天打鱼两天晒网是不行的,再说我本来就有“健忘症”,真的是木有办法啊 ̄へ ̄.我一直信奉一句话:“勤能补拙”,它也是我学习路上的 ...

  3. 一个类实现Java截屏并保存到指定文件夹

    不知小伙伴们有没有遇到过使用java来截屏的需求,截屏后保存到指定的目录,在桌面上没有任何体现,完全不知道已经被截屏了.至于截屏后怎么做,可能有的老铁只是好奇想知道某人在干啥?也有的老铁可能想进行文字 ...

  4. Java开发的一个简单截屏工具

    //源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transfe ...

  5. JAVA实现的截屏程序

    http://hadeslee.iteye.com/blog/125386 http://www.jb51.net/article/75114.htm JAVA截屏程序(第三版) JavaEXTSwi ...

  6. 【解决Jira】Chrome提示Java插件因过期而遭到阻止(JIRA上传截屏截图)

    最近经常被这个问题所困扰:用Chrome访问JIRA上传截屏截图时,地址栏下面弹出通知,提示JAVA插件已过期.但是由于公司要求统一开发环境和设置,不能更新到最新版,就像这样: 结果网页上的Java就 ...

  7. Java实现网页截屏功能(基于phantomJs)

    公司最近有个需求:把用户第一次的测量身体信息和最近一次测量信息进行对比,并且需要把对比的数据截成图片可以发给用户(需要在不打开网页的情况下实时对网页进行截图然后保存到服务器上,返回图片地址),通过网上 ...

  8. Java 截屏工具类

    PrintScreenUtils.java package javax.utils; import java.awt.AWTException; import java.awt.Dimension; ...

  9. java截屏简单例子

    原文:http://www.open-open.com/code/view/1444211411979 java截屏 * 运行后将当前屏幕截取,并最大化显示. * 拖拽鼠标,选择自己需要的部分. * ...

随机推荐

  1. Unity添加自定义拓展方法

    Shepherdog|2014-04-08 10:50|16151次浏览|Unity(373)0 通常你会发现你不能修改正在使用的那些类,无论它是基础的数据类型还是已有框架的一部分,它提供的方法让你困 ...

  2. 程序员你的maven多模块项目如何对外输出为一个构件?

    上图为常见的台式机,程序员,你看了有啥启发? 台式机生产线 我的maven代码工程 xxx 显示器 xxx-web 主机 xxx-app 键盘 xxx-domian 鼠标 xxx-infrastrat ...

  3. webpack3.10.0(入门系列基本概念1)

    一.概念 webpack的核心是一个用于现代JavaScript应用程序的静态模块打包程序.当webpack处理您的应用程序时,它会递归地构建一个依赖图,其中包含应用程序所需的每个模块,然后将所有这些 ...

  4. Oracle的dbms_random.value(min,max)函数包括边界值吗?数据是如何分布的?

    事先申明下,我的DB环境是Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production,不保证在其它版本下也 ...

  5. JDK1.7之前的Bug之静态代码块

    程序的主入口是main方法,但是在jdk1.7之前,可以没有main方法也一样能运行,很是不可思议,到底是什么原因呢?,大家都知道在类中定义了静态代码块的话,是首先执行代码块里的语句的,如果把静态代码 ...

  6. ui自动化--鼠标操作ActionChains

    需要先引入鼠标操作模块:from selenium.webdriver.common.action_chains import ActionChains 实际上ActionChains这个模块的实现的 ...

  7. python语法,基础

    1.用缩进表达代码逻辑:推荐缩进4个空格 2.注释和续行与shell一样 在pycharm中,按ctrl + / 可以快速添加/取消注释 3.多个语句书写在同一行,可以使用分号进行分割.但不推荐 输出 ...

  8. Java 的各种内部类、Lambda表达式

    内部类 内部类是指在一个外部类的内部再定义一个类.内部类的出现,再次打破了Java单继承的局限性. 内部类可以是静态 static 的,也可用 public,default,protected 和 p ...

  9. Vue中vue.config的配置

    vue-cli 3.x 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动在根目录中创建 vue.config.js. vue.config.js 是一个可选的配置文件,如果 ...

  10. [LeetCode]64. 最小路径和(DP)

    题目 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4 ...