Java调用摄像头并拍摄保存

转载 2012年05月10日 13:19:41

找到一篇关于java调用硬件(摄像头),一篇挺有意思的文章,索性转一下:

-------------------------------------------------------------------------------------------------------------

转自:http://www.usnews.com/education

-----------------------------------------------------------------------------------------------------------------------------------

 首先到sun下载最新的jmf,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp

  然后,说一下需求

  1. 用摄像头拍照

  2. 在文本框输入文件名

  3. 按下拍照按钮,获取摄像头内的图像

  4. 在拍下的照片上有一红框截取固定大小的照片。

  5. 保存为本地图像为jpg格式,不得压缩画质

  技术关键,相信也是大家最感兴趣的部分也就是如何让一个摄像头工作,并拍下一张照片了。

--------------------------------------------------------------------------------------------------------------

  利用jmf,代码很简单:

//利用这三个类分别获取摄像头驱动,和获取摄像头内的图像流,获取到的图像流是一个swing的component组件类

public static player player = null;
private capturedeviceinfo di = null;
private medialocator ml = null;

//文档中提供的驱动写法,为何这么写我也不知:)

string str1 = "vfw:logitech usb video camera:0";
string str2 = "vfw:microsoft wdm image capture (win32):0";
di = capturedevicemanager.getdevice(str2);
ml = di.getlocator();
try
{
 player = manager.createrealizedplayer(ml);
 player.start();
 component comp;
 if ((comp = player.getvisualcomponent()) != null)
 {
  add(comp, borderlayout.north);
 }
}
catch (exception e)
{
 e.printstacktrace();
}

  接下来就是点击拍照,获取摄像头内的当前图像。

  代码也是很简单:

private jbutton capture;
private buffer buf = null;
private buffertoimage btoi = null;
private imagepanel imgpanel = null;
private image img = null;
private imagepanel imgpanel = null;

jcomponent c = (jcomponent) e.getsource();
if (c == capture)//如果按下的是拍照按钮
{
 framegrabbingcontrol fgc =(framegrabbingcontrol)  player.getcontrol("javax.media.control.framegrabbingcontrol");
 buf = fgc.grabframe(); // 获取当前祯并存入buffer类
 btoi = new buffertoimage((videoformat) buf.getformat());
 img = btoi.createimage(buf); // show the image
 imgpanel.setimage(img);
}

  保存图像的就不多说了,以下为示例代码

bufferedimage bi = (bufferedimage) createimage(imgwidth, imgheight);
graphics2d g2 = bi.creategraphics();
g2.drawimage(img, null, null);
fileoutputstream out = null;
try
{
 out = new fileoutputstream(s);
}
catch (java.io.filenotfoundexception io)
{
 system.out.println("file not found");
}

jpegimageencoder encoder = jpegcodec.createjpegencoder(out);
jpegencodeparam param = encoder.getdefaultjpegencodeparam(bi);
param.setquality(1f, false);//不压缩图像
encoder.setjpegencodeparam(param);
try
{
 encoder.encode(bi);
 out.close();
}
catch (java.io.ioexception io)
{
 system.out.println("ioexception");
}

-------------------------------------------------------------------------------------------------------------


使用Java调用摄像头进行拍照源码

使用Java调用摄像头进行拍照源码文章分类:Java编程 使用Java调用摄像头进行拍照源码,并且有JMF下载地址。 JMF安装文件下载地址: http://www.blackswansoft.com...
  • zhou8622
  • zhou8622
  • 2015年03月02日 15:43
  • 4777

如何使用HTML5实现利用摄像头拍照上传功能(java版)

前台: id="contentHolder"> id="video" width="320" height="320" autoplay> id="picture" style="...
  • LULU11231123
  • LULU11231123
  • 2016年08月11日 11:57
  • 3179

JAVA 调用摄像头拍照(网上找的大家分享)

  • 2013年09月13日 17:46
  • 1.79MB
  • 下载

java Swing 中调用摄像头拍照源码(有说明)

  • 2013年10月24日 09:05
  • 4.94MB
  • 下载

java 如何调用摄像头并拍照保存照片

首先到sun下载最新的jmf,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp   然后,说一下需求   1. 用摄像头...
  • wmyasw
  • wmyasw
  • 2011年08月03日 10:04
  • 5347

能够正常使用的,经过测试的java+jquery+webcam调用本地摄像头拍照,然后将拍照结果上传数据库blob字段功能的实现(一)

近期项目中有调用本地摄像头拍照然后将拍照结果上传数据库blob字段的需求,想了很多的解决方案,由于各种原因都pass掉了,几经周折,最终决定采用jquery webcam这个jquery网络摄像头插件...
  • weimeixiehou
  • weimeixiehou
  • 2017年08月04日 09:47
  • 868

java调用摄像头拍照源代码

  • 2013年12月03日 09:27
  • 4.94MB
  • 下载

Chrome 谷歌浏览器调用摄像头并拍照上传 java示例

html页面: html5调用摄像头实现拍照 拍照 var video=document.getElementById("video"); var context=...
  • lozi1020
  • lozi1020
  • 2015年05月18日 10:41
  • 2253

JAVACV调用本地摄像头拍照

第一次写博客,老板要求用javacv实现拍照功能 各种百度加实验,记录下  也不知道有没有啥bug,非常的不专业。。。 首先准备jar包,来源:http://blog.csdn.net/e...
  • u011573025
  • u011573025
  • 2017年04月02日 16:05
  • 923

java程序中调用摄像头实现jsp程序摄像头数据采集

近期的一个项目需要实现摄像头图像采集,经过一系列的折腾以后,终于实现了这个功能,现整理一下。 本身就java技术来说,要实现摄像头二次开发,采集摄像头图片,需要使用到JMF,JMF适合使用在j2se...
  • peihexian
  • peihexian
  • 2010年05月11日 21:18
  • 39552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java调用摄像头并拍摄保存
举报原因:
原因补充:

(最多只允许输入30个字)