ㄓㄤㄑㄧㄤ

Java屏幕录像

//记录屏幕、类似录像 
package chapter08;

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;

public class WnetWScreenRecorder extends Thread {

    private Dimension screenSize;
    private Rectangle rectangle;
    private Robot robot;
    private long i = 0;
    @SuppressWarnings("unused")
    private JPEGImageEncoder encoder;

    public  WnetWScreenRecorder() {
        screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        rectangle = new Rectangle(screenSize);// 可以指定捕获屏幕区域
        try {
            robot = new Robot();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
    }

    public static void main(String[] args) {
        new WnetWScreenRecorder().start();
    }

    public void run() {
        FileOutputStream fos = null;
        while (true) {
            try {
                BufferedImage image = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域
                fos = new FileOutputStream("C:\\records\\" + i + ".png");
                JPEGCodec.createJPEGEncoder(fos).encode(image);// 图像编码成JPEG
                fos.close();
                i = i + 1;
                Thread.sleep(25);// 每秒25帧
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println(e);
                try {
                    if (fos != null)
                        fos.close();
                } catch (Exception e1) {
                }
            }
        }
    }
}
//记录屏幕、类似录像 
package chapter08;

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;

public class WnetWScreenRecorder extends Thread {

    private Dimension screenSize;
    private Rectangle rectangle;
    private Robot robot;
    private long i = 0;
    @SuppressWarnings("unused")
    private JPEGImageEncoder encoder;

    public  WnetWScreenRecorder() {
        screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        rectangle = new Rectangle(screenSize);// 可以指定捕获屏幕区域
        try {
            robot = new Robot();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
    }

    public static void main(String[] args) {
        new WnetWScreenRecorder().start();
    }

    public void run() {
        FileOutputStream fos = null;
        while (true) {
            try {
                BufferedImage image = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域
                fos = new FileOutputStream("C:\\records\\" + i + ".png");
                JPEGCodec.createJPEGEncoder(fos).encode(image);// 图像编码成JPEG
                fos.close();
                i = i + 1;
                Thread.sleep(25);// 每秒25帧
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println(e);
                try {
                    if (fos != null)
                        fos.close();
                } catch (Exception e1) {
                }
            }
        }
    }
}


//记录屏幕、类似录像 
package chapter08;

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;

@SuppressWarnings("serial")
// 播放屏幕录像

public class WnetWScreenRecordPlayer extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    Dimension screenSize;

    public WnetWScreenRecordPlayer() {
        super();
        screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        this.setSize(screenSize);
        Screen p = new Screen();
        Container c = this.getContentPane();
        c.setLayout(borderLayout1);
        c.add(p, "Center");
        new Thread(p).start();
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new WnetWScreenRecordPlayer();
    }

}

 

posted @ 2015-03-16 11:39  ㄓㄤㄑㄧㄤ  阅读(795)  评论(1)    收藏  举报
哈哈,页脚部分。