首先到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实现拍照功能相关推荐

  1. java jmf获取图像_用JMF打开摄像头获取图像

    今天学习用JAVA中的JMF来打开摄像头,这个小程序对我来说还是有点难度的.然后我在网上找的一些资料,网上的资料很多而且比较杂,对于我们新人来说,没有分辨能力,走了很多弯路.下面我把我的学习过程展示出 ...

  2. java多线程 游戏_java利用多线程和Socket实现猜拳游戏

    本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...

  3. java preferences设置_Java利用Preferences设置个人偏好

    Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...

  4. java jxl包_java利用JXL包操作Excel表

    源码 package test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; im ...

  5. java 获取温度_Java利用RXTX串口通信工具类获取DS18B20温度传感器的温度值

    环境:Windows10,Eclipse4.5.2,JDK1.7 设备:DS18B20温度传感器(4线,485接口),USB转485接口转换器,笔记本电脑 注意点:RTU传输,使用的是字节,那么在程序 ...

  6. java 字母随机数_Java利用随机数生成字母

    RandomStr.java package sample; public class RandomStr { public static void main(String[] args) { //定 ...

  7. java kafka 消费_java利用kafka生产消费消息

    1.producer程序 package com.test.frame.kafka.controller; import kafka.javaapi.producer.Producer; import ...

  8. java 查找注解_Java利用反射如何查找使用指定注解的类详解

    前言 最近有些空,想自己写个跟spring里的注解一样的注解来用,然后希望能找到使用了自己写了注解的类,下面来介绍一下实现方法 声明,下面代码是没看过spring源码写的,基本上都是网上找的博客,整理 ...

  9. java获取屏幕截图_java 利用java运行时的方法得到当前屏幕截图的方法

    将截屏图片保存到本地路径: package com.test; import java.awt.AWTException; import java.awt.Dimension; import java ...

最新文章

  1. LeetCode 583. Delete Operation for Two Strings--动态规划 DP--Java,Python,C++解法
  2. [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引
  3. 大众汽车和鸿蒙,鸿蒙系统下个月即将与大众见面,首发平台并非手机
  4. 想赚钱广而告之是必不可少的
  5. 百度App网络深度优化系列(一):DNS优化
  6. pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析
  7. 解决办法!!!!UnsupportedClassVersionError Unsupported major.minor version 52.0
  8. GoComb.com搜索引擎问世:改进搜索体验
  9. GLASS数据批量下载
  10. HTML5会砸掉iOS和Android的饭碗么?
  11. xp系统打印机服务器报错,互联网要点:Win7系统连接XP共享打印机报错0X000004如何解决...
  12. springboot接口接参注解详解 controller @Valid
  13. RGB颜色规律小研究
  14. 对北京大学红旗在线的一次友情检测
  15. sublime3:解决拼音不跟随问题+markdown插件
  16. python 英语分词_基于Python NLTK库进行英文文本预处理
  17. 南京邮电大学计算机专业录取分数线2019,南京邮电大学录取分数线
  18. 【人工智能】机器人的未来发展:从工业自动化到知识自动化
  19. mysql MDL锁如何解决_理解MySQL的MDL元数据锁
  20. 通过设置路由器来实现局域网和外网的传奇SF架设

热门文章

  1. WPS删除粘贴后的[]中括号痕迹
  2. 运动蓝牙耳机哪个品牌最好、运动蓝牙耳机排行榜推荐
  3. 【娱见】乐视开始折腾路由器,小米与极路由还会好过吗?
  4. bmp图片灰度化和二值化
  5. easyExcel自定义背景颜色easyPoi自定义修改表头背景色
  6. 【黑马程序员pink老师前端】HTML综合案例(二)
  7. 【漏洞复现-骑士cms-代码执行】vulfocus/骑士cms_cve_2020_35339
  8. wordpress入门主题_设置和运行WordPress网站的终极入门指南
  9. win10系统文件拖拽卡顿_windows10鼠标拖动窗口有延迟如何修复
  10. 牛客14709 奇♂妙拆分 枚举