知识大全 Java中利用JMF编写摄像头拍照程序

Posted

篇首语:人生就像骑单车,想保持平衡就得往前走。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中利用JMF编写摄像头拍照程序相关的知识,希望对你有一定的参考价值。

Java中利用JMF编写摄像头拍照程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我把程序分为两种 有趣的和无趣的 最近做了几个有趣的项目 其中一个 应当就算是摄像头拍照程序了 用于现场拍照 生成照片 主要用到Java Media Framework(JMF)     首先到SUN下载最新的JMF 然后安装 media/jmf/index jsp    然后 说一下需求     . 用摄像头拍照     . 在文本框输入文件名     . 按下拍照按钮 获取摄像头内的图像     . 在拍下的照片上有一红框截取固定大小的照片      . 保存为本地图像为jpg格式 不得压缩画质    技术关键 相信也是大家最感兴趣的部分也就是如何让一个摄像头工作 并拍下一张照片了     利用JMF 代码很简单     //利用这三个类分别获取摄像头驱动 和获取摄像头内的图像流 获取到的图像流是一个Swing的Component组件类    public static Player player = null;  private CaptureDeviceInfo di = null;  private MediaLocator ml = null;    //文档中提供的驱动写法 为何这么写我也不知 )    String str = vfw:Logitech USB Video Camera: ;  String str = vfw:Microsoft WDM Image Capture (Win ): ;  di = CaptureDeviceManager getDevice(str );  ml = di getLocator();  try    player = Manager createRealizedPlayer(ml);  player start();  Component p;  if ((p = player getVisualComponent()) != null)    add(p 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( ntrol 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);  Graphics D g = bi createGraphics();  g 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( f false);//不压缩图像  encoder setJPEGEncodeParam(param);  try    encoder encode(bi);  out close();    catch (java io IOException io)    System out println( IOException );      已经申请将JWebCam建立为一个开源项目 放到GRO 大家发挥自己的想象力加入自己的代码吧 比如拍摄视频 添加图像处理功能 等等 cha138/Article/program/Java/Javascript/201311/25453

相关参考

知识大全 vivox6手机摄像头拍照时是歪的,拍摄后可以把它调整成正,但是拍摄时怎么调正

vivox6手机摄像头拍照时是歪的,拍摄后可以把它调整成正,但是拍摄时怎么调正建议您尝试以下方法处理:1、重启手机后再开启相机。2、进入手机设置--更多设置--应用程序--全部--找到相机清除数据和缓

知识大全 用Java编写简单的UDP网络通信程序

用Java编写简单的UDP网络通信程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java中

知识大全 Java进阶:Java编写通过代理访问的应用程序

Java进阶:Java编写通过代理访问的应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用Java 编写手机应用程序

时尚:用Java编写手机应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  不知从什么时候开

知识大全 跨平台编写Java程序注意事项

Java进阶:跨平台编写Java程序注意事项  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用

知识大全 使用UML编写Java应用程序 (2)实现

使用UML编写Java应用程序(2)实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序设计

知识大全 编写多线程Java应用程序常见问题

编写多线程Java应用程序常见问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!几乎所有使用AWT

知识大全 如何用 java 编写一个扫描仪程序

  javaainmaybeapowerfulsolutionyoucangotognomesktodownloadthenewestpackage   JavaTwainversionisapart

知识大全 使用 Java 编写 B/S 网络通信程序

使用Java编写B/S网络通信程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    网络上的系

知识大全 全面了解Java媒体架构JMF

全面了解Java媒体架构JMF  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java媒体架构(