社区
Java SE
帖子详情
如何用java接收摄像头的视频?
shine1982
2006-02-23 11:33:49
大家好!
我要完成这样一个程序:
有一个摄像头,在java的程序的某个面板上显示这个摄像头拍摄的内容。
我估计过程是这样的:要调用摄像头的驱动,建立与视频流的连接,然后读取这个流,然后把它以某种方式显示在面板上。
不过我没有任何这方面的经验,也不知道该用到哪些类和方法,如何实现,还请高手指点,谢谢!
...全文
3165
5
打赏
收藏
如何用java接收摄像头的视频?
大家好! 我要完成这样一个程序: 有一个摄像头,在java的程序的某个面板上显示这个摄像头拍摄的内容。 我估计过程是这样的:要调用摄像头的驱动,建立与视频流的连接,然后读取这个流,然后把它以某种方式显示在面板上。 不过我没有任何这方面的经验,也不知道该用到哪些类和方法,如何实现,还请高手指点,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnyxlxw
2006-03-01
打赏
举报
回复
强烈mark
hui_feng
2006-02-28
打赏
举报
回复
mark
全粘架构师
2006-02-27
打赏
举报
回复
mark
mq612
2006-02-24
打赏
举报
回复
以前见过一个相关文章,还没验证,你试试:
程序分为两种,有趣的和无趣的,最近做了几个有趣的项目,其中一个,应当就算是摄像头拍照程序了。用于现场拍照,生成照片,主要用到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("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");
}
PE041025
2006-02-24
打赏
举报
回复
mark
java
调用大华
摄像头
4. **处理
视频
流**:
接收
摄像头
返回的
视频
流数据,使用
Java
的多媒体处理库解码并显示在界面上。 5. **播放控制**:实现暂停、播放、快进、快退等功能,这需要对
视频
流进行适当的缓冲和控制。 6. **异常处理**:...
基于
Java
代码的USB
摄像头
采集与显示
本项目聚焦于使用
Java
语言实现USB
摄像头
的
视频
采集与显示功能,这在多媒体应用、监控系统或者远程会议等领域都有广泛的应用。下面我们将深入探讨这个主题涉及的技术点。 首先,
Java
本身并不直接支持USB设备的操作,...
Java
直连4g
摄像头
demo
在本项目中,"
Java
直连4g
摄像头
demo" 是一个使用
Java
编程语言实现的解决方案,旨在解决设备与服务器不在同一网络环境下,无法通过局域网传输
视频
的问题。这种情况下,传统的NVR(网络
视频
录像机)
视频
流对接方式不再...
Java
对接大华
摄像头
进行抓图和录像的demo
在
Java
后端开发中,对接大华
摄像头
进行远程抓图和录像是一项常见的任务,尤其在监控系统、
视频
会议或者安全防护等领域。这个"
Java
对接大华
摄像头
进行抓图和录像的demo"提供了一个实例,帮助开发者理解如何实现这一...
java
调用
摄像头
制作头像
OpenIMAJ 是一个开源的
Java
库,特别适合于计算机视觉任务,如捕获和处理
摄像头
视频
流。 2. **图片处理**: 为了调整所拍图片的大小和位置,开发者可能使用了
Java
的`
java
.awt.image.BufferedImage`类和相关的图像...
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章