zoukankan      html  css  js  c++  java
  • 使用Java实现静默屏幕截图

    代码实现了使用Java静默截屏(截屏的时候不需要申请权限,不会有任何弹窗),并自动打开截取的屏幕图片,

    我们把这个部分编译一下,使用java 类名,可以实现快速截取当前屏幕信息,或者是在编辑器里点击运行,来执行这部分代码

    楼主编译完成的class文件 https://files.cnblogs.com/files/nanstar/javaScreen.zip

    运行成功截图(前提是电脑上需要安装的有Java环境)

    编译文件 javac javaScreen.java

    运行文件 java javaScreen

    代码部分

    package com.order.order;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * @author 小墨
     * @date 2020/9/13 23:57
     * 实现效果:
     * 运行程序后可以直接截取当前屏幕内容并保存到指定路径,然后使用默认的图片查看程序自动打开截取的屏幕图片
     * 实现思路:
     * 首先获取屏幕的宽和高,然后使用工具类捕捉屏幕,使用当前时间创建目录和文件,然后打开文件
     */
    public class javaScreen {
    
    	public static void main(String[] args) throws AWTException, IOException {
    		// 获取屏幕的尺寸(屏幕宽高)
    		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    		System.out.println("屏幕的宽和高是:" + screenSize.getWidth() + " x " + screenSize.getHeight());
    
    		// 使用工具类截取屏幕
           //利用获取到的屏幕宽高捕捉当前的屏幕内容
    		BufferedImage image = new Robot().createScreenCapture(new Rectangle(screenSize));
    
    		// 设置日期格式,作为目录名(例如:20200914)
    		DateFormat dfDirectory = new SimpleDateFormat("yyyyMMddhhmmss");
    
    		// 使用自定义路径创建一个用于保存图片的文件夹,我定义在了D盘
    		File screenCaptureDirectory =
    			new File(
                "D:\"
                    + File.separator
                    + "ScreenCapture"
                    + File.separator
                    + dfDirectory.format(new Date()));
    
    		//判断目录是否存在,不存在的话直接创建
    		if (!screenCaptureDirectory.exists()) {
    			//创建目录的操作
    			screenCaptureDirectory.mkdirs();
    			System.out.println("目录 " + screenCaptureDirectory.getName() + " 创建成功");
    		}
    
    		// 设置日期格式,作为图片名
    		DateFormat dfImageName = new SimpleDateFormat("yyyyMMddhhmmss");
    
    		// 指定路径,并以特定的日期格式作为图片的名称
    		File imageFile = new File(screenCaptureDirectory, (dfImageName.format(new Date()) + ".png"));
    
    		// 以指定的图片格式将截取的图片写到指定的文件
    		ImageIO.write(image, "png", imageFile);
    
    		// 自动打开刚才截屏的照片
    		if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
    			Desktop.getDesktop().open(imageFile);
    		}
    	}
    }
    
    
    

    效果图预览

    如有运行问题,欢迎留言咨询,楼主看到后会第一时间来解答的
  • 相关阅读:
    php一些技巧函数
    让apache不区分图片和文件后缀大小写
    ajax的同步和异步问题 (转)
    windows上在linux客户端上传小文件lrzsz
    linux查看时间和修改时间
    mysql常用命令
    yum安装 lnmp
    linux网卡设置详解
    centos最小安装,之后想安装x-windows,安装图形界面 startx
    optimize table table_name myisam mysql自动清除删除过留下的空记录
  • 原文地址:https://www.cnblogs.com/nanstar/p/13664317.html
Copyright © 2011-2022 走看看