JAVA实现屏幕定时截图

1.截取整个屏幕

功能:每隔200ms自动截取整个屏幕

public class GetImage extends TimerTask
{

    String saveDir = "H:\\whiplash";
    int imageName = 1;
    String imageFormat = "jpg";


    public void run(){

        try {
            //获取屏幕大小
            Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

            Rectangle rectangle = new Rectangle(screen);

            Robot robot  = new Robot();

            BufferedImage image = robot.createScreenCapture(rectangle);

            ImageIO.write(image, imageFormat, new File(saveDir, imageName++ + "." + imageFormat));

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args)throws Exception {
        Timer t = new Timer();
        //在指定时间安排指定任务
        //第一个参数,是安排的任务,第二个参数是执行的时间,第三个参数是过多长时间再重复执行
        Date date = new Date();
        t.schedule(new GetImage(), date,200);

    }
}

2.自定义截取屏幕位置与大小 

功能:每隔1s中自动截取指定区域

public class GetImage extends TimerTask
{

    int height = 120;
    int width = 1650;

    String saveDir = "H:\\whiplash";
    int imageName = 1;
    String imageFormat = "jpg";


    public void run(){

        try {
            Rectangle rectangle = new Rectangle(150,850,width,height);

            Robot robot  = new Robot();

            BufferedImage image = robot.createScreenCapture(rectangle);

            ImageIO.write(image, imageFormat, new File(saveDir, imageName++ + "." + imageFormat));

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args)throws Exception {
        Timer t = new Timer();
        //在指定时间安排指定任务
        //第一个参数,是安排的任务,第二个参数是执行的时间,第三个参数是过多长时间再重复执行
        Date date = new Date();
        t.schedule(new GetImage(), date,1000);

    }
}

猜你喜欢

转载自blog.csdn.net/qq_40298054/article/details/88984326