知识大全 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网络通信程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java中
Java进阶:Java编写通过代理访问的应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
时尚:用Java编写手机应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 不知从什么时候开
Java进阶:跨平台编写Java程序注意事项 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用
使用UML编写Java应用程序(2)实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序设计
编写多线程Java应用程序常见问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!几乎所有使用AWT
javaainmaybeapowerfulsolutionyoucangotognomesktodownloadthenewestpackage JavaTwainversionisapart
使用Java编写B/S网络通信程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 网络上的系
全面了解Java媒体架构JMF 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java媒体架构(