Java 截屏工具类
PrintScreenUtils.java
package javax.utils; import java.awt.AWTException;
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 java.io.IOException;
import java.io.OutputStream; import javax.imageio.ImageIO; /**
* 截屏工具类
*
* @author Logan
* @createDate 2019-04-15
* @version 1.0.0
*
*/
public class PrintScreenUtils { /**
* 图片类型
*
* @author Logan
* @createDate 2019-04-15
* @version 1.0.0
*
*/
public class ImageType {
public static final String JPG = "jpg";
public static final String PNG = "png";
public static final String GIF = "gif";
} /**
* 截取当前屏幕图片
*
* @return BufferedImage对象
* @throws AWTException 抛出异常,由调用者处理
*/
public static BufferedImage getImage() throws AWTException {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRect = new Rectangle(screenSize); Robot robot = new Robot();
return robot.createScreenCapture(screenRect);
} /**
* 截取当前屏幕图片并输出到指定文件
*
* @param output 指定输出文件,默认输出png格式
* @return 是否保存截屏成功
* @throws IOException 抛出异常,由调用者处理
* @throws AWTException 抛出异常,由调用者处理
*/
public static boolean write(File output) throws IOException, AWTException {
return write(ImageType.PNG, output);
} /**
* 截取当前屏幕图片并输出到指定文件
*
* @param imageType 输出图片类型
* @param output 指定输出文件
* @return 是否保存截屏成功
* @throws IOException 抛出异常,由调用者处理
* @throws AWTException 抛出异常,由调用者处理
*/
public static boolean write(String imageType, File output) throws IOException, AWTException {
return ImageIO.write(getImage(), imageType, output);
} /**
* 截取当前屏幕图片并输出到指定输出流
*
* @param output 图片输出流,可以是网络响应输出流,文件输出流等。默认输出png格式
* @return 是否输出截屏图片成功
* @throws IOException 抛出异常,由调用者处理
* @throws AWTException 抛出异常,由调用者处理
*/
public static boolean write(OutputStream output) throws IOException, AWTException {
return write(ImageType.PNG, output);
} /**
* 截取当前屏幕图片并输出到指定输出流
*
* @param imageType 输出图片类型
* @param output 图片输出流,可以是网络响应输出流,文件输出流等
* @return 是否输出截屏图片成功
* @throws IOException 抛出异常,由调用者处理
* @throws AWTException 抛出异常,由调用者处理
*/
public static boolean write(String imageType, OutputStream output) throws IOException, AWTException {
return ImageIO.write(getImage(), imageType, output);
} }
以下是测试程序
PrintScreenTest.java
package com.java.test; import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.utils.PrintScreenUtils;
import javax.utils.PrintScreenUtils.ImageType; import org.apache.commons.io.FileUtils;
import org.junit.Test; /**
* @author Logan
* @createDate 2019-04-15
* @version 1.0.0
*
*/
public class PrintScreenTest { private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private SimpleDateFormat timeFormat = new SimpleDateFormat("yyyyMMddHHmmss"); @Test
public void demo() {
Date now = new Date();
String dir = dateFormat.format(now);
String name = timeFormat.format(now) + ".jpg";
File file = FileUtils.getFile(FileUtils.getUserDirectory(), dir, name); try {
FileUtils.forceMkdirParent(file);
System.out.println(file.getAbsolutePath());
boolean write = PrintScreenUtils.write(ImageType.JPG, file);
System.out.println(write);
} catch (Exception e) {
e.printStackTrace();
} } }
.
Java 截屏工具类的更多相关文章
- Java开发的一个简单截屏工具
//源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transfe ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- java文件处理工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...
- java格式处理工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
- Qt写一个截屏工具(窗口透明)
最近发现好多次打开QQ仅仅想用它来截屏 ⊙﹏⊙b汗 不如自己来写一个截屏工具,集成到自己的小工具箱里面 动手之前考虑一下要怎么实现,我考虑过的方案大概有下面两种 : 1. 监控全局鼠标事件 (真是“ ...
- 截屏工具 HyperSnap
听说Tencent开发了1款截屏工具,叫"snip".确实字体效果不错,但是丫只有for mac的,不知道脑子里怎么想的,该不是直接买了第三方的然后冠了个名儿吧. 那么Windows有没有类似的工具呢 ...
- Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类
Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类 =========================== ©Copyright 蕃薯耀 2017年9月25日 http://www ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- 使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。
1.使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间. package com.fline.aic.utils; import java.text.DateFormat ...
随机推荐
- Python数据可视化--matplotlib
抽象化|具体化: 如盒形图 | 现实中的图 功能性|装饰性:没有装饰和渲染 | 包含艺术性美学上的装饰 深度表达|浅度表达:深入层次的研究探索数据 | 易于理解的,直观的表示 多维度|单一维度:数据的 ...
- $('#').formValidation校验网址
$('#addCarouselInfoForm').formValidation({ message: '格式不正确', //不忽略隐藏域验证 excluded: [], icon: { valid: ...
- Mybatis学习笔记7 - select查询的相关属性使用
1.当接口的返回类型是集合List时,resultType要写集合中元素的类型 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean ...
- Kudu-Impala集成特性
不多说,直接上干货! Kudu-Impala 集成特性 CREATE / ALTER / DROP TABLE Impala 支持使用 Kudu 作为持久层来 creating(创建),alterin ...
- php字符串函数详解
nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $ ...
- jQuery 间歇式无缝滚动特效分享(三张图片平行滚动)
最近项目中门户首页需要做出图片间歇式无缝滚动特效,但是在网上找资料都是不太理想,不过可以指导.最后自己写了一个demo实现了这个特效,分享出来. 1.jquery.cxscroll.js /*! * ...
- Spring Boot集成Reactor事件处理框架的简单示例
1. Reactor简介 Reactor 是 Spring 社区发布的基于事件驱动的异步框架,不仅解耦了程序之间的强调用关系,而且有效提升了系统的多线程并发处理能力. 2. Spring Boot集成 ...
- jq实例
1.导航栏 <style type="text/css"> * {padding:0;margin:0;list-style:none;} img { width:11 ...
- JS动态创建SVG元素并绑定事件
var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.set ...
- MySQL中的information_schema
information_schema 数据库是MySQL自带的,可看作是一个数据库,确切说是信息数据库.其中保存着关于MySQL服务器所维护的所有其他数据库的信息.如数据库名,数据库的表,表栏的数据类 ...