用JAVA捕获屏幕、屏幕录像、播放
来源:互联网 发布:守望先锋英雄详细数据 编辑:程序博客网 时间:2024/04/29 17:07
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
private Dimension screenSize;
private Rectangle rectangle;
private Robot robot;
private long i = 0;
private JPEGImageEncoder encoder;
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
rectangle = new Rectangle(screenSize);//可以指定捕获屏幕区域
try{
robot = new Robot();
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
}
}
new WnetWScreenRecord().start();
}
FileOutputStream fos = null;
while (true){
try{
BufferedImage image = robot.createScreenCapture(rectangle);//捕获制定屏幕矩形区域
fos = new FileOutputStream("C://records//" + i + ".jpg");
JPEGCodec.createJPEGEncoder(fos).encode(image);//图像编码成JPEG
fos.close();
i = i + 1;
Thread.sleep(40);//每秒25帧
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
try{
if (fos != null)fos.close();
}catch(Exception e1){}
}
}
}
}
//播放屏幕录像
package com.wnetw.project.media;
import java.awt.*;
import javax.swing.*;
import java.io.*;
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.show();
}
public static void main(String[] args){
new WnetWScreenRecordPlayer();
}
}
class Screen extends JPanel implements Runnable{
private BorderLayout borderLayout1 = new BorderLayout();
private Image cimage;
public void run(){
int i = 0;
while(true){
try{
cimage = loadImage(i + ".jpg");
i = i + 1;
repaint();
Thread.sleep(40);//与录像时每秒帧数一致
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
}
}
}
public Image loadImage(String name) {
Toolkit tk = Toolkit.getDefaultToolkit();
Image image = null;
image = tk.getImage("C:/records/" + name);
MediaTracker mt = new MediaTracker(this);
mt.addImage(image, 0);
try {
mt.waitForID(0);
}catch (Exception e) {
e.printStackTrace();
System.out.println(e);
}
return image;
}
public Screen() {
super();
this.setLayout(null);
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(cimage, 0, 0, null);
}
}
- 用JAVA捕获屏幕、屏幕录像、播放
- 屏幕录像
- SmartAuditor屏幕录像播放提示版本错误
- JAVA捕获当前屏幕图像
- 捕获屏幕
- 屏幕捕获
- 屏幕截图与屏幕录像
- 屏幕录像编程
- 屏幕录像工具
- FFmpeg 屏幕录像
- 屏幕录像系统
- androidscreencast 屏幕录像
- fedora 屏幕录像工具
- 屏幕录像方法
- C#实现屏幕录像
- C# 实现屏幕录像
- LINUX屏幕录像方法
- 屏幕录像专家CamStudio
- 十类人才薪金触顶
- c#命令
- 一个排列、组合的生成算法 [zz]
- xml数据岛用在页面中实现翻页
- 未知文件类型的问题
- 用JAVA捕获屏幕、屏幕录像、播放
- 常用的集合元素使用范例代码
- Textile, Garment Association to Meet Soon
- Brazil: Govt Plans CTC to Enhace Leather Quality
- Java实现图形验证码的生成部分
- 使用xmlhttp和Java session监听改善站内消息系统
- 比尔盖茨给adobe的五点意见
- Korea: Fierce Competition Batters Textiles Exports, Says MOCIE
- 操作系统