虚拟主机行业最新资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:站长资讯>-> 在线教程-> JSP教程
Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码
作者:网友供稿 点击:125
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
首先到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");
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:[1] 
相关主题
  • java中的测不准原理_java认证
  • java中两个字符串“Equals”和“==”的区别-JSP教程,Java技巧及代码
  • Java中调用外部命令-JSP教程,Java技巧及代码
  • java中四种操作xml方式的比较-JSP教程,Java与XML
  • java中访问数据库操作-JSP教程,Java技巧及代码
  • Google

    热门文章
    ·IReport与JasperReport开发详解一-JSP教程,Java技巧及代码
    ·JSTL(JSP标准标签库)介绍-JSP教程,资料/其它
    ·格式化输入日期时间控件 JieFormattedDateBox-JSP教程,Java技巧及代码
    ·JSTL简化JSP编码-JSP教程,Jsp/Servlet
    ·JUnit和单元测试入门简介-JSP教程,Java技巧及代码
    ·从数据库中读取一个图片并保存为一个图片文件-JSP教程,数据库相关
    ·Java Swing入门基础-JSP教程,Java技巧及代码
    ·IntelliJ IDEA培训-JSP教程,Java技巧及代码
    ·通过JSP的预编译消除性能瓶颈-JSP教程,Jsp/Servlet
    ·Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码

    最新文章
    ·J2ME中的时间处理方法
    ·J2ME播放声音流程简介
    ·J2ME开发之手机键盘使用注意问题
    ·J2ME 记录管理存储
    ·MVC模式在j2me项目中的应用(二)
    ·MVC模式在j2me项目中的应用(一)
    ·J2ME中使用记录存储系统(RMS)存储信息
    ·J2ME与MIDP开发(1)
    ·用简单的J2ME程序测试MIDlet的生命周期
    ·JAVA基础:提升JSP应用程序的七大绝招

    相关主题
  • java中的测不准原理_java认证
  • java中两个字符串“Equals”和“==”的区别-JSP教程,Java技巧及代码
  • Java中调用外部命令-JSP教程,Java技巧及代码
  • java中四种操作xml方式的比较-JSP教程,Java与XML
  • java中访问数据库操作-JSP教程,Java技巧及代码



  • 友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 一班在线
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机


    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
      打印  刷新  关闭


    联系我们  |  广告服务  |  免责声明  |  友情连接
    Copyright ?2005 - 2006 All Rights Reserved
    蜀ICP备05000045号