屏幕錄象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;
}
}