屏幕录象java版软件,小心共享下.一时兴起写的哦.__捕获帧的类:WnetWScreenRecorder.java
//捕获帧的类
package com.zip;
import javax.swing.*;
import org.apache.commons.io.FileUtils;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
public class WnetWScreenRecorder extends Thread {
private static String f2;
private static boolean flag;
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 WnetWScreenRecorder(String f,boolean flag2) {
System.out.println("ffffw==="+f);
f2=f;
flag=flag2;
System.out.println("sss==="+f2);
// TODO 自动生成构造函数存根
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) {
WnetWScreenRecorder WnetWScreenRecorder=new WnetWScreenRecorder("c://123",true);
WnetWScreenRecorder.start();
}
public void run() {
System.out.println("ffff==="+f2);
FileOutputStream fos = null;
while (flag) {
try {
BufferedImage image = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域
File file=new File(f2);
if(!file.exists())
file.mkdir();
fos = new FileOutputStream(new File(file+"//"+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) {
}
}
}
}
public static String getF2() {
return f2;
}
public static void setF2(String f2) {
WnetWScreenRecorder.f2 = f2;
}
public static boolean isFlag() {
return flag;
}
public static void setFlag(boolean flag) {
WnetWScreenRecorder.flag = flag;
}
}