2011万能摄像头驱动绿色版
立即下载
工作以来都是做基于B/S的Web开发,很久没研究过C/S了。不过被朋友托帮他开发一个拍照之类的小功能。网上代码一大堆,但是真正能跑起来的估计没几个。本来打算周末做一下的,但这两天脑子乱糟糟的,一直没静下心来。现在已经晚上了,明天不做的话会很尴尬的。唉,只能暂时做一个了,在网上找资料自己做的时候发现了一些问题,就分享在博客上了,一来方便有需要的朋友直接拿来用,二来我在学习中如果遇到这些问题,也可以轻松解决。
我第一次接触摄像头视频是在大二的时候,当时实验室的一个小项目交给了我,就学了一点播放视频的知识。整个处理录制的监控视频的过程比较简单,因为不需要自己控制录像。但是拍照和录像都是自己控制的,所以稍微复杂一点。下面进入正题。
还是跟以前一样,只实现功能,没有过多美化界面。有需要的朋友可以自己动手做一下。比起现在这个日子,自己动手就能丰衣足食了。图1-1是程序主界面:
图 1-1
整个操作相机,实现拍照功能的过程,主要是通过一个第三方组件来实现的,叫做。它是一个国外的组件,所以打开起来有点慢,不过大家要有耐心。目前已经更新到2.2.5版本了,如果不想去官网下载的话,文章最后也给出了相应的下载地址,有需要的话直接用就可以了。程序实现也很简单,只要添加一个页面的引用就可以了,不过这个过程当中会引用一些其他的dll,有些并不是很常用的,所以这里我也把引用的dll都截图了(图1-2),大家自己做的时候可以参考一下。
图 1-2
上图1-1中间部分是用来实时显示打开摄像头后获取到的内容,是一个自定义控件,这里要解释一下,拖拽..dll到左边的工具箱区域,然后自定义控件就出来了。对了,我们也可以采用这种方法,把自己开发的自定义控件送给别人。前端准备好之后,我们开始分析后端代码。
整个思路就是先在电脑上找到相机设备,然后选择我们需要操作的设备,然后就可以拍照或者录像了。今天由于时间关系,只实现了拍照功能,下次再把录像功能做出来,等实现了之后我也会分享到这里,希望有需要的朋友注意。
当Form加载完成的时候我们监听它的Load事件,将检测到的摄像头设备添加到后面,供用户选择,关键代码如下:
无效(,e)
尝试
// 枚举所有视频输入设备
=新的(.);
如果 (. == 0)
新的 ();
( 在 )
..添加(.名称);
. = 0;
()
..添加("否");
=空;
当用户选择摄像头设备并点击连接时,我们打开摄像头并进行初始化,关键代码为:
//连接相机
空白 ()
=新的([.].);
. = 新..尺寸(320,240);
. = 1;
. = ;
.();
当用户点击关闭相机时,我们做关闭流程,代码:
//关闭相机
无效(,e)
.();
.();
当用户点击拍照时,我们从相机获取当前图片,保存到设置的路径下,然后关闭当前窗口。关键代码:
//照片
无效(,e)
尝试
如果 (。)
= ....(
.().(),
。零,
.,
.());
pE = 新的();
pE..添加(.());
=()+“\\”+“”+“.jpg”;
如果(文件。())
文件。();
( = 文件.())
pE. 保存();
//拍照完成后,关闭相机,同时刷新窗口
如果(!=空&&。)
.();
.();
这。();
(前任)
.Show("相机异常:" + ex.);
()
= 路径。(..)
+ 路径.ar.() + “”;
如果 (!。())
.();
;
关闭之后在bin目录下就能找到保存的图片了,当然如果能在程序里显示图片就更好了,不过时间关系我就不补充了,有需要的朋友可以自己实现一下,如果还有什么疑问欢迎一起交流。
到此这样一个简单的拍照功能就完成了,下面是源码下载地址。