package xs.camera.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.media.MediaLocator;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import net.sf.fmj.ui.application.CaptureDeviceBrowser;
import net.sf.fmj.ui.application.ContainerPlayer;
import net.sf.fmj.ui.application.PlayerPanelPrefs;
public class Camera extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel cameraPanel=null;//摄像头面板
private static int num=0;
public Camera() throws Exception{
this.setTitle("摄像头截图工具");
this.setSize(480, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.cameraPanel=new JPanel();
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(this.cameraPanel, BorderLayout.CENTER);
ContainerPlayer containerPlayer=new ContainerPlayer(this.cameraPanel);
MediaLocator locator=CaptureDeviceBrowser.run(null);//弹出摄像头设备选项
PlayerPanelPrefs prefs=new PlayerPanelPrefs();
containerPlayer.setMediaLocation(locator.toExternalForm(), prefs.autoPlay);
JPanel btnPanel=new JPanel(new BorderLayout());
final JTextField path=new JTextField("E:/java");
path.setColumns(30);
btnPanel.add(path, BorderLayout.WEST);
JButton okBtn=new JButton("截图");
okBtn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
Dimension imageSize=cameraPanel.getSize();
BufferedImage image=new BufferedImage(imageSize.width,imageSize.height,BufferedImage.TYPE_INT_ARGB);
Graphics2D g=image.createGraphics();
cameraPanel.paint(g);
g.dispose();
try {
String filePath=path.getText();
File file=new File(filePath);
if(!file.exists()) file.mkdirs();
ImageIO.write(image, "png", new File(file.getAbsoluteFile()+"/"+num+".png"));
num++;
} catch (Exception e2) {
e.paramString();
}
}
});
btnPanel.add(okBtn, BorderLayout.EAST);
this.getContentPane().add(btnPanel, BorderLayout.SOUTH);
}
public void start(){
}
public static void main(String[] args) {
try {
Camera c=new Camera();
c.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java基于FMJ实现打开摄像头实时录制
共24个文件
jar:15个
dll:2个
class:2个
5星 · 超过95%的资源 需积分: 50 163 下载量 11 浏览量
2015-08-16
05:36:27
上传
评论 2
收藏 2.13MB ZIP 举报
温馨提示
Java基于JMF、FMJ实现打开摄像头实时录制-测试通过 兼容Window32、Linux32/64 项目中包含源码、所需JAR、DLL、OS
资源推荐
资源详情
资源评论
收起资源包目录
CameraToFMJ.zip (24个子文件)
CameraToFMJ
bin
xs
camera
view
Camera.class 3KB
Camera$1.class 2KB
libcivil.so 77KB
.settings
org.eclipse.jdt.core.prefs 629B
src
xs
camera
view
Camera.java 2KB
.project 387B
.classpath 1KB
lib
gstreamer-java.jar 265KB
jdom.jar 150KB
ffmpeg-java.jar 63KB
lti-civil-no_s_w_t.jar 66KB
jna.jar 262KB
jorbis-0.0.15.jar 58KB
jogg-0.0.7.jar 7KB
jspeex.jar 96KB
jl1.0.jar 103KB
mp3spi1.9.4.jar 24KB
fmj.jar 984KB
tritonus_share.jar 100KB
jheora-patch.jar 53KB
vorbisspi1.0.2.jar 13KB
theora-java.jar 44KB
jdshow.dll 64KB
civil.dll 156KB
共 24 条
- 1
资源评论
- wzm1234562016-11-19win7 64位用不了呀。
- wang_sun_19832018-03-23可以看一下,不过不是很好用。
- a_hundred_miles2017-07-06不能在64位得系统上运行 com.lti.civil.CaptureException: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\Desktop\CameraToFMJ\civil.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform at
- angie2016-01-30这个资源推荐看看
cgwxsmha
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功