java 调手机摄像头,java调用摄像头并照相
当前位置:我的异常网» 编程 » java调用摄像头并照相
java调用摄像头并照相
www.myexceptions.net 网友分享于:2014-03-02 浏览:16次
java调用摄像头并拍照
最近在做jmf的视频通信项目,于是先找了个代码连接下摄像头;
要求:jmf包(最好包含5个原始包)
jmf安装(没有测试这个条件是否必要,我直接先安装了)
eclipse下运行
代码如下
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import javax.imageio.ImageIO;
import javax.media.Buffer;
import javax.media.CannotRealizeException;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.sun.media.protocol.vfw.DataSource;
public class FirstCapture extends JPanel implements ActionListener{ private CaptureDeviceInfo captureDeviceInfo=null;
private MediaLocator mediaLocator=null;
private static Player player=null;
//private ImagePanel imagePanel=null;
private JButton capture;
private Buffer buffer=null;
private VideoFormat videoFormat=null;
private BufferToImage bufferToImage=null;
private Image image=null;
public FirstCapture()
{
setLayout(new BorderLayout());
setSize(320,550); captureDeviceInfo=CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0"); //这里放置的是视频驱动
mediaLocator=new MediaLocator("vfw://0"); //这里是视频地址
//imagePanel=new ImagePanel();
capture=new JButton("拍照");
capture.addActionListener(this);
DataSource ds = new DataSource();
ds.setLocator(mediaLocator);
try {
player=Manager.createRealizedPlayer(mediaLocator);
player.start();
Component comp;
Component comp1;
if((comp=player.getVisualComponent())!=null)
add(comp,BorderLayout.NORTH);
// if((comp1=player.getControlPanelComponent())!=null)
// add(comp1,BorderLayout.CENTER);
} catch (NoPlayerException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
} catch (CannotRealizeException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("ioe");
}
//add(imagePanel,BorderLayout.SOUTH);
add(capture,BorderLayout.CENTER);
}
@Override
public void print(Graphics g) {
// TODO Auto-generated method stub
super.print(g);
g.setColor(new Color(255,0,0));
g.drawLine(0, 0, 100, 100);
} public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new JFrame("FirstCapture");
FirstCapture cf = new FirstCapture();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
player.close();
System.exit(0);}});
f.add("Center",cf);
f.pack();
f.setSize(new Dimension(320,550));
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
FrameGrabbingControl fgc=(FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
buffer=fgc.grabFrame();
bufferToImage=new BufferToImage((VideoFormat)buffer.getFormat());
image=bufferToImage.createImage(buffer);
try {
ImageIO.write((RenderedImage) image, "jpg", new File("F:\\test.jpg"));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
// public static void saveImage(Image image,String path)
// {
// BufferedImage bi=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
// Graphics2D g2 = bi.createGraphics();
// g2.drawImage(image, null, null);
// FileOutputStream fos=null;
// try {
// fos=new FileOutputStream(path);
//
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
// }
}
文章评论
java 调手机摄像头,java调用摄像头并照相相关推荐
- 监控系统java调用摄像头_java调用摄像头实例
[实例简介] java调用摄像头实例,包含所需要的jar文件,下载即可运行. [实例截图] [核心代码] d7850a13-8dbf-42bb-934c-0f911d9ed010 └── Xuggle ...
- java中抓拍图像_JavaCV调用摄像头并抓拍图片保存到本地
添加依赖 org.bytedeco javacv-platform 1.4.1 org.bytedeco.javacpp-presets opencv-platform 3.4.1-1.4.1 jun ...
- java 调页储存_java调用存储过程
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...
- android 7调用摄像头,Android调用摄像头拍照(兼容7.0)
[实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...
- 调用摄像头_摄像头 | 浏览器调用摄像头并实现截图保存的效果
为了在QT上实现打开摄像头,拍照等操作.就写了这个. 1. 写一个vue组件 先写一个vue的组件,其内容基本如下: <el-button type="primary" @ ...
- 软件c#语言调用摄像头,C#调用摄像头的几种方式
C#调用摄像头的方式 本文将讲诉在C#的winform程序中如何调用摄像头: 1.调用USB摄像头 2.调用普通IP摄像头 3.通过摄像头SDK进行调用 使用的DLL 首先给上我所使用的DLL 调用U ...
- html5 直接调用摄像头,HTML5调用摄像头并拍照
利用html5特性,调用摄像头,并利用canvas拍照 先简单的添加需要的控件PICTURE 并在script中定义var video = document.getElementById(" ...
- Mac macOS 10.14 Mojave Xcode OpenCV 无法打开摄像头,调用摄像头权限错误
Mac macOS 10.14 Mojave Xcode opencv 调用摄像头权限错误 This app has crashed because it attempted to access pr ...
- 芝麻授权 java调用_【java】手机浏览器怎么调用支付宝进行用户授权呢?
开发的应用需要用户的芝麻信用授权,链接为https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=201801020151823 ...
最新文章
- [三个版本]自定义int()函数(Python实现)
- Windows API入门系列之七 -完善MessageBox
- Kotlin by属性委托
- 鸿蒙os 2.0跑分,预装鸿蒙OS 2.0!华为MatePad Pro2跑分曝光:麒麟9000、8GB内存
- [JavaWeb-HTML]HTML标签_块标签
- python123测验答案第二周温度转换二_python123练习题
- [转载] log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
- CTO用“汉德公式”来定责,我大写的服!
- Greg and Array CodeForces 296C 差分数组
- SQL:2016标准之新特性
- java前后端分离开发思路
- xshell 配置公钥 免密码登陆
- latex:表格排版示例
- OSPF P2MP 扩展知识
- ps特效制作人物碎片飞溅效果
- 基督里一切的丰盛_司布真
- Latex表格标题左对齐,并且table加粗
- 工业镜头基础知识整理
- bilinear 神经网络_基于多尺度双线性卷积神经网络的多角度下车型精细识别
- 推荐算法工程师,其实是个算命先生!