<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="500" height="450"> <param name="AudioStream" value="-1"> <param name="AutoSize" value="-1"> <param name="AutoStart" value="-1"> <param name="AnimationAtStart" value="-1"> <param name="AllowScan" value="-1"> <param name="AllowChangeDisplaySize" value="-1"> <param name="AutoRewind" value="0"> <param name="Balance" value="0"> <param name="BaseURL" value> <param name="BufferingTime" value="5"> <param name="CaptioningID" value> <param name="ClickToPlay" value="-1"> <param name="CursorType" value="0"> <param name="CurrentPosition" value="-1"> <param name="CurrentMarker" value="0"> <param name="DefaultFrame" value> <param name="DisplayBackColor" value="0"> <param name="DisplayForeColor" value="16777215"> <param name="DisplayMode" value="0"> <param name="DisplaySize" value="0"> <param name="Enabled" value="-1"> <param name="EnableContextMenu" value="0"> <param name="EnablePositionControls" value="-1"> <param name="EnableFullScreenControls" value="0"> <param name="EnableTracker" value="-1"> <param name="Filename" value="mms://221.0.77.150/cj4"> <param name="InvokeURLs" value="-1"> <param name="Language" value="-1"> <param name="Mute" value="0"> <param name="PlayCount" value="1"> <param name="PreviewMode" value="0"> <param name="Rate" value="1"> <param name="SAMILang" value> <param name="SAMIStyle" value> <param name="SAMIFileName" value> <param name="SelectionStart" value="-1"> <param name="SelectionEnd" value="-1"> <param name="SendOpenStateChangeEvents" value="-1"> <param name="SendWarningEvents" value="-1"> <param name="SendErrorEvents" value="-1"> <param name="SendKeyboardEvents" value="0"> <param name="SendMouseClickEvents" value="0"> <param name="SendMouseMoveEvents" value="0"> <param name="SendPlayStateChangeEvents" value="-1"> <param name="ShowCaptioning" value="0"> <param name="ShowControls" value="-1"> <param name="ShowAudioControls" value="-1"> <param name="ShowDisplay" value="-1"> <param name="ShowGotoBar" value="0"> <param name="ShowPositionControls" value="-1"> <param name="ShowStatusBar" value="-1"> <param name="ShowTracker" value="-1"> <param name="TransparentAtStart" value="0"> <param name="VideoBorderWidth" value="0"> <param name="VideoBorderColor" value="0"> <param name="VideoBorder3D" value="0"> <param name="Volume" value="0"> <param name="WindowlessVideo" value="0"> </object> Java中利用JMF编写摄像头拍照程序 利用JMF编写摄像头拍照程序 摄像头拍照程序用于现场拍照,生成照片,主要用到Java Media Framework(JMF)。 首先到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( ".control.FrameGrabbingControl "); buf = fgc.grabFrame(); // 获取当前祯并存入Buffer类 btoi = new BufferToImage((VideoFormat) buf.getFormat()); img = btoi.createImage(buf); // show the p_w_picpath 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 "); }
在网页上显示摄像头画面
原创
©著作权归作者所有:来自51CTO博客作者andywuchuanlong的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:json 概述

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
网络监控摄像头通过OBS取流变身电脑摄像头
OBS 网络摄像头接入腾讯会议
Windows 视频流 用户名 -
python从摄像头读取数据并在网页上显示
【代码】python从摄像头读取数据并在网页上显示。
python 开发语言 ide html flask -
如何用html5实现在网页上显示本地摄像头
(请注意目前仅Chrome和Opera支持)获得摄像头提供的视频流。我们需要做的是添...
php 前端 javascript ViewUI ide -
摄像头画面显示于unity场景
由于标题限制,这篇文章主要是讲在unity中调用摄像头,然后将摄像头捕捉到的画面显示到场景中,无论是UI画面还是场景中的
unity 游戏引擎 unity开发 UI System