小方的Java博客
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
27 随笔 :: 17 文章 :: 115 评论 :: 0 Trackbacks
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
公告
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
(24)
AJAX(9)
(rss)
JAVA API 自学(2)
(rss)
其他技术(6)
(rss)
开发经验点滴(1)
(rss)
程序人生(3)
(rss)
非技术(3)
(rss)
随笔档案
(27)
2008年12月 (1)
2008年8月 (1)
2007年6月 (1)
2007年3月 (1)
2007年2月 (3)
2006年10月 (3)
2006年9月 (2)
2006年8月 (4)
2006年7月 (7)
2006年6月 (4)
文章分类
(17)
Hibernate(1)
(rss)
Html & Script(1)
(rss)
J2se 基础(3)
(rss)
J2se 高级(2)
(rss)
Java 学习方法(1)
(rss)
java 设计模式(2)
(rss)
Jsp(3)
(rss)
Servlet(1)
(rss)
Struts(2)
(rss)
其它(1)
(rss)
文章档案
(17)
2006年6月 (1)
2006年2月 (15)
2005年11月 (1)
相册
other
top
work.input_hint
连接专用
收藏夹
(1)
oo(1)
(rss)
BlogJava 朋友
中东大哥
在路上
快乐笛子
爱勤劳的鱼
最新随笔
1. DWR2.0的调用前拦截
2. [整理]sql语句一些实用技巧for oracle
3. [原创]毕业设计答辩之后感想
4. [整理]JavaScript的混合继承方法
5. [hibernate3]lab sysem项目一些建议
6. [整理]JavaScript最流行的2种定义类的方式
7. [原创/整理]首次发布DWR中文文档.PDF
8. [转载]"软件外包",中国软件行业何去何从?
9. [转载]与大学生谈软件外包
10. [原创]一个javascript的时钟
搜索
积分与排名
积分 - 74768
排名 - 741
最新评论
1. re: [原创]毕业设计答辩之后感想
同感!!!!!!!!!!!!!!
--wordcount
2. re: java多线程设计模式
高质量文章
--明明的JavaBlog
3. re: [整理] java.util.Calendar
评论内容较长,点击标题查看
--杨正益
4. re: [原创]公司实习中的领悟
看了你的,我才发现我做错了很多。我现在只是要专业知识而已。而已英语我从来就没有放在心上。看了你的我决定要好好的看英语了
--花花公子
5. re: [原创]DWR2.0的调用前拦截
在你这个应用里面怎么可以获得请求的URL呀,我想判断一下用户是否对某一个资源是否有访问权限的时候怎么样才能知道他是访问的那个资源呢
--小简
6. re: [原创]DWR2.0的调用前拦截
@bln13fb
这是我们公司自己的类,这里只是个范例,你自己有自己的类
--方佳玮
7. re: [原创/整理]首次发布DWR中文文档.PDF
支持您的事业!!!
--陈庚阳
8. re: [整理]SQL语句学习手册实例版
找的您好辛苦!您用心了!
--youyouday
9. re: [原创/整理]首次发布DWR中文文档.PDF
http://www.pusuo.net
--www.pusuo.net
10. re: [原创]DWR2.0的调用前拦截
ISessionContainer
SecurityFactory
如何导入
--bln13fb
阅读排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(7610)
2. [整理]JavaScript最流行的2种定义类的方式(6157)
3. [整理]SQL语句学习手册实例版(5633)
4. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(4974)
5. [原创] 用GWT做的输入前提示(3489)
6. [整理] java.lang.reflect(2978)
7. DWR2.0的调用前拦截(2892)
8. [整理]sql语句一些实用技巧for oracle(2759)
9. [整理]介绍一个GWT的网站(2315)
10. [整理] java.util.Calendar(1851)
评论排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(49)
2. [原创] 用GWT做的输入前提示(10)
3. [整理]SQL语句学习手册实例版(8)
4. [整理]sql语句一些实用技巧for oracle(6)
5. [原创]毕业设计答辩之后感想(6)
6. [原创]ajax in action 第9章 j2ee版 动态双组合功能(6)
7. [整理]介绍一个GWT的网站(4)
8. [原创]公司实习中的领悟(4)
9. [整理]什么才是最好处理中文方法(4)
10. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(3)
Java中利用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
"
);
}
posted on 2006-02-01 12:24
方佳玮
阅读(2126)
评论(1)
编辑
收藏
所属分类:
J2se 高级
评论
#
re: Java中利用JMF编写摄像头拍照程序
2007-09-06 16:49
F
F
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
用 Java 保存位图文件
Java中利用JMF编写摄像头拍照程序
Powered by:
BlogJava
Copyright © 方佳玮