关于Java实现屏幕截图

1.获得屏幕大小
2.获取屏幕大小的图片
3.找个路径写出

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;

public class Test
{
 private String fileName; //文件的前缀
 static int serialNum=0;
 private String imageFormat; //图像文件的格式
 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//工具包.获取默认工具包.获取屏幕大小
 //Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。该类与组件的某个属性关联。由 Component 类和 LayoutManager 接口定义的一些方法将返回 Dimension 对象。 


 public Test() 
 {
   this.fileName = "e:\\RaoYiLun";
   this.imageFormat="png";
}


/**
 * 
 * @param fileName 文件名
 * @param format 格式,支持jpg和png
 */
 public Test(String fileName,String format) {

 this.fileName = fileName;
 this.imageFormat=format;
 }

 /**
  * 快照
  */
 public void screenShot() {

 try {
         //new一个基本屏幕坐标系对象Robot,创建一个屏幕捕获,区域从(0,0)到屏幕大小,
         //Rectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。
         //BufferedImage createScreenCapture(Rectangle screenRect)   创建包含从屏幕中读取的像素的图像。
         BufferedImage screenshot = (new Robot()).createScreenCapture(new
         Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
         serialNum++;//这里加了一个后缀,防止覆盖,就是偷个懒,其实应该用UUID
         //根据文件前缀变量和文件格式变量,自动生成文件名
         String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
         File f = new File(name);
         System.out.print("Save File "+name);
         //将screenshot对象写入图像文件
         //write(RenderedImage im, String formatName, File output)  使用支持给定格式的任意 ImageWriter 将一个图像写入 File。
         ImageIO.write(screenshot, imageFormat, f);
         System.out.print("...完成");
     }
         catch (Exception ex) 
         {
            System.out.println(ex);
         }
 }

 public static void main(String[] args)
 {
         Test cam= new Test("e:\\RaoYiLun", "png");//
         cam.screenShot();
 }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值