java jmf获取图像_java利用jmf实现拍照功能
首先到SUN下载最新的JMF,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp http://www.bt285.cn
然后,说一下需求
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)//如果按下的是拍照按钮 http://www.5a520.cn
{
FrameGrabbingControl fgc =(FrameGrabbingControl)player.getControl
("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame(); // 获取当前祯并存入Buffer类 http://www.bt285.cn
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);//不压缩图像 http://www.bt285.cn
encoder.setJPEGEncodeParam(param);
try
{
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}
已经申请将JWebCam建立为一个开源项目,放到GRO,大家发挥自己的想象力加入自己的代码吧,比如拍摄视频,添加图像处理功能,等等
posted on 2009-05-21 21:03 江苏520 阅读(1613) 评论(0) 编辑 收藏
java jmf获取图像_java利用jmf实现拍照功能相关推荐
- java jmf获取图像_用JMF打开摄像头获取图像
今天学习用JAVA中的JMF来打开摄像头,这个小程序对我来说还是有点难度的.然后我在网上找的一些资料,网上的资料很多而且比较杂,对于我们新人来说,没有分辨能力,走了很多弯路.下面我把我的学习过程展示出 ...
- java多线程 游戏_java利用多线程和Socket实现猜拳游戏
本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...
- java preferences设置_Java利用Preferences设置个人偏好
Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...
- java jxl包_java利用JXL包操作Excel表
源码 package test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; im ...
- java 获取温度_Java利用RXTX串口通信工具类获取DS18B20温度传感器的温度值
环境:Windows10,Eclipse4.5.2,JDK1.7 设备:DS18B20温度传感器(4线,485接口),USB转485接口转换器,笔记本电脑 注意点:RTU传输,使用的是字节,那么在程序 ...
- java 字母随机数_Java利用随机数生成字母
RandomStr.java package sample; public class RandomStr { public static void main(String[] args) { //定 ...
- java kafka 消费_java利用kafka生产消费消息
1.producer程序 package com.test.frame.kafka.controller; import kafka.javaapi.producer.Producer; import ...
- java 查找注解_Java利用反射如何查找使用指定注解的类详解
前言 最近有些空,想自己写个跟spring里的注解一样的注解来用,然后希望能找到使用了自己写了注解的类,下面来介绍一下实现方法 声明,下面代码是没看过spring源码写的,基本上都是网上找的博客,整理 ...
- java获取屏幕截图_java 利用java运行时的方法得到当前屏幕截图的方法
将截屏图片保存到本地路径: package com.test; import java.awt.AWTException; import java.awt.Dimension; import java ...
最新文章
- LeetCode 583. Delete Operation for Two Strings--动态规划 DP--Java,Python,C++解法
- [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引
- 大众汽车和鸿蒙,鸿蒙系统下个月即将与大众见面,首发平台并非手机
- 想赚钱广而告之是必不可少的
- 百度App网络深度优化系列(一):DNS优化
- pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析
- 解决办法!!!!UnsupportedClassVersionError Unsupported major.minor version 52.0
- GoComb.com搜索引擎问世:改进搜索体验
- GLASS数据批量下载
- HTML5会砸掉iOS和Android的饭碗么?
- xp系统打印机服务器报错,互联网要点:Win7系统连接XP共享打印机报错0X000004如何解决...
- springboot接口接参注解详解 controller @Valid
- RGB颜色规律小研究
- 对北京大学红旗在线的一次友情检测
- sublime3:解决拼音不跟随问题+markdown插件
- python 英语分词_基于Python NLTK库进行英文文本预处理
- 南京邮电大学计算机专业录取分数线2019,南京邮电大学录取分数线
- 【人工智能】机器人的未来发展:从工业自动化到知识自动化
- mysql MDL锁如何解决_理解MySQL的MDL元数据锁
- 通过设置路由器来实现局域网和外网的传奇SF架设
热门文章
- WPS删除粘贴后的[]中括号痕迹
- 运动蓝牙耳机哪个品牌最好、运动蓝牙耳机排行榜推荐
- 【娱见】乐视开始折腾路由器,小米与极路由还会好过吗?
- bmp图片灰度化和二值化
- easyExcel自定义背景颜色easyPoi自定义修改表头背景色
- 【黑马程序员pink老师前端】HTML综合案例(二)
- 【漏洞复现-骑士cms-代码执行】vulfocus/骑士cms_cve_2020_35339
- wordpress入门主题_设置和运行WordPress网站的终极入门指南
- win10系统文件拖拽卡顿_windows10鼠标拖动窗口有延迟如何修复
- 牛客14709 奇♂妙拆分 枚举