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(); } }