当前位置:我的异常网» 编程 » 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调用摄像头并照相相关推荐

  1. 监控系统java调用摄像头_java调用摄像头实例

    [实例简介] java调用摄像头实例,包含所需要的jar文件,下载即可运行. [实例截图] [核心代码] d7850a13-8dbf-42bb-934c-0f911d9ed010 └── Xuggle ...

  2. java中抓拍图像_JavaCV调用摄像头并抓拍图片保存到本地

    添加依赖 org.bytedeco javacv-platform 1.4.1 org.bytedeco.javacpp-presets opencv-platform 3.4.1-1.4.1 jun ...

  3. java 调页储存_java调用存储过程

    这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...

  4. android 7调用摄像头,Android调用摄像头拍照(兼容7.0)

    [实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...

  5. 调用摄像头_摄像头 | 浏览器调用摄像头并实现截图保存的效果

    ​为了在QT上实现打开摄像头,拍照等操作.就写了这个. 1. 写一个vue组件 先写一个vue的组件,其内容基本如下: <el-button type="primary" @ ...

  6. 软件c#语言调用摄像头,C#调用摄像头的几种方式

    C#调用摄像头的方式 本文将讲诉在C#的winform程序中如何调用摄像头: 1.调用USB摄像头 2.调用普通IP摄像头 3.通过摄像头SDK进行调用 使用的DLL 首先给上我所使用的DLL 调用U ...

  7. html5 直接调用摄像头,HTML5调用摄像头并拍照

    利用html5特性,调用摄像头,并利用canvas拍照 先简单的添加需要的控件PICTURE 并在script中定义var video = document.getElementById(" ...

  8. Mac macOS 10.14 Mojave Xcode OpenCV 无法打开摄像头,调用摄像头权限错误

    Mac macOS 10.14 Mojave Xcode opencv 调用摄像头权限错误 This app has crashed because it attempted to access pr ...

  9. 芝麻授权 java调用_【java】手机浏览器怎么调用支付宝进行用户授权呢?

    开发的应用需要用户的芝麻信用授权,链接为https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=201801020151823 ...

最新文章

  1. [三个版本]自定义int()函数(Python实现)
  2. Windows API入门系列之七 -完善MessageBox
  3. Kotlin by属性委托
  4. 鸿蒙os 2.0跑分,预装鸿蒙OS 2.0!华为MatePad Pro2跑分曝光:麒麟9000、8GB内存
  5. [JavaWeb-HTML]HTML标签_块标签
  6. python123测验答案第二周温度转换二_python123练习题
  7. [转载] log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
  8. CTO用“汉德公式”来定责,我大写的服!
  9. Greg and Array CodeForces 296C 差分数组
  10. SQL:2016标准之新特性
  11. java前后端分离开发思路
  12. xshell 配置公钥 免密码登陆
  13. latex:表格排版示例
  14. OSPF P2MP 扩展知识
  15. ps特效制作人物碎片飞溅效果
  16. 基督里一切的丰盛_司布真
  17. Latex表格标题左对齐,并且table加粗
  18. 工业镜头基础知识整理
  19. bilinear 神经网络_基于多尺度双线性卷积神经网络的多角度下车型精细识别
  20. 推荐算法工程师,其实是个算命先生!

热门文章

  1. 简单3D翻页相册制作教程
  2. nginx 手机版页面判断_nginx通过user-agent判断是否手机浏览器的方法
  3. .net服务器报请求出错
  4. Java 字符串转Map
  5. 编写 Java用于显示人的姓名和年龄
  6. 关于idea工具栏按钮的添加(以暂停键为例)
  7. Toad 安装BMF出错 1603
  8. 生鲜超市管理系统(JavaSSH)
  9. oppok7和小米10青春版 的区别 哪个好
  10. Oracle基础梳理之pivot函数和unpivot函数-No6