服务器之家

服务器之家 > 正文

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

时间:2019-10-25 13:29     来源/作者:java代码网

代码如下:


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

 
标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部