目 录
(一) 控件总体功能说明.. 2
(二) 控件集成使用说明.. 2
(三) 控件方法说明.. 4
3.1 启动视频捕捉.. 4
3.2 抓拍摄像头视频画面.. 4
3.3 读取抓拍的画面结果数据.. 4
3.3.1 按照jpg格式读取结果数据.. 4
3.3.2 按照bmp格式读取结果数据.. 4
(四) 控件属性及方法表格.. 5
(五)、常见问题.. 7
5.1 控件如何升级到新版本?.. 7
5.2 如何验证控件是否注册成功成为正式版本?.. 7
5.3 高清摄像头拍照结果上传失败的情况如何解决?.. 8
5.4 浏览器假死情况如何解决?.. 8
(一) 控件总体功能说明
摄像头视频采集控件用于在Web编程中辅助您完成摄像头图像采集功能,控件基于微软DirectX技术,支持几乎所有的USB外置摄像头及内置摄像头,通过在Web项目中引用该控件,可以简化您的摄像头图像采集过程,加快您的项目开发进度。
摄像头图像采集控件(以下简称控件)工作在客户端浏览器中,支持多种服务器端编程技术及部署环境,支持asp、jsp、php、asp.net等常见的服务器端编程技术,图像采集结果支持按照多种图像数据保存及导出使用。
控件内置图像裁剪编辑功能,便于您选取有意义的图像处理使用,控件支持图像旋转、客户端本地保存等功能。
(二) 控件集成使用说明
控件以cab压缩包格式发行,在项目中集成控件时需要复制ImageCapOnWeb.cab文件到项目中,然后在需要进行图像采集的页面中使用<object></object>的方式引入该控件。完整的引用控件的示例如下:
<object classid="clsid:34681DB3-58E6-4512-86F2-9477F1A9F3D8"
id="cap1" codebase="./cabs/ImageCapOnWeb.cab#version=2,0,0,0" width="100%" height="500">
<param name="Visible" value="0">
<param name="AutoScroll" value="0">
<param name="AutoSize" value="0">
<param name="AxBorderStyle" value="1">
<param name="Caption" value="WebVideoCap">
<param name="Color" value="4278190095">
<param name="Font" value="宋体">
<param name="KeyPreview" value="0">
<param name="PixelsPerInch" value="96">
<param name="PrintScale" value="1">
<param name="Scaled" value="-1">
<param name="DropTarget" value="0">
<param name="HelpFile" value>
<param name="PopupMode" value="0">
<param name="ScreenSnap" value="0">
<param name="SnapBuffer" value="10">
<param name="DockSite" value="0">
<param name="DoubleBuffered" value="0">
<param name="ParentDoubleBuffered" value="0">
<param name="UseDockManager" value="0">
<param name="Enabled" value="-1">
<param name="AlignWithMargins" value="0">
<param name="ParentCustomHint" value="-1">
<param name="key1" value="">
<param name="key2" value="">
</object>
上面的示例演示了如何在项目的页面中引用控件,注意红色标示的部分用于确定控件cab压缩包所在路径,要结合项目中的目录划分自行制定到控件压缩包的路径。
除了要在html页面中引入控件以外,客户端浏览器在访问控件所在页面时,需要提前调整浏览器设定,需要启用 ActiveX技术,因为控件未进行数字签名,因此需要启用浏览器的“未签名 ActiveX下载提示”功能。
如果需要上传控件的拍照结果,还需要额外编程读取拍照以后控件的数据值属性,取到经过base64格式编码的数据以后提交到服务器端解码并保存。
(三) 控件方法说明
3.1 启动视频捕捉
控件名称.start();
start()方法用于启动摄像头进行视频画面呈现,注意摄像头为独占性应用,即在同一时刻最多只有一个程序可以取得摄像头数据,因此在调试程序请先确保无其它程序或软件在读取摄像头数据。
3.2 抓拍摄像头视频画面
控件名称.cap();
Cap方法用于抓拍当前摄像头图像数据,抓拍结果保存到结果编辑窗口中。
3.3 读取抓拍的画面结果数据
3.3.1 按照jpg格式读取结果数据
控件名称. jpegBase64Data
通过读取控件的jpegBase64Data属性,可以取得抓拍结果图像的jpg格式结果数据经过base64编码格式转换的字符串数据,为了便于在web编程中传输数据内容,得到的图像数据是按照base64格式编码的字符串数据,使用前注意需要进行解码处理。
3.3.2 按照bmp格式读取结果数据
控件名称. bmpBase64Data
通过读取控件的bmpBase64Data属性,可以取得拍照结果的bmp格式数据经过base64编码处理后的字符串数据。可以用来上传到服务器端等情景下使用,但是注意bmp格式压缩比较jpg格式差很多,所以在需要上传的情况下应该尽量使用jpg格式的数据。
(四) 控件属性及方法表格
分类 |
名称 |
说明 |
控件方法 |
start() |
开始取得摄像头画面数据并显示在控件中。 |
控件方法 |
cap() |
拍照并停止摄像头动态画面捕捉 |
控件方法 |
stop() |
停止动态画面捕捉,当调用cap()方法以后会自动调用stop()方法。 |
控件方法 |
clear() |
清除拍照结果。 |
控件方法 |
startWith(int index) |
当计算机连接了多个摄像头时可以使用这个方法来启动指定的摄像头。例如启动第二个摄像头为控件名称.startWith(1);//注意第一个摄像头从0开始编号 |
控件方法 |
resizePicture(width,height) |
调整输出图像尺寸,例如需要调整输出图像尺寸为1024X768像素时可以使用 控件名称.resizePicture(1024,768); |
控件方法 |
AboutBox() |
显示控件关于对话框,可以查看控件当前工作状态,例如查看是否工作在正式授权模式下。 |
控件方法 |
savetoFile(filename) |
保存拍照结果到客户端计算机本地硬盘中,例如 控件名称.saveToFile(‘d://test.jpg’); |
控件方法 |
switchWatchOnly() |
切换到隐藏编辑按钮的方式,只显示视频窗口。 |
控件方法 |
switchFullMode() |
切换到控件缺省默认显示方式,显示控制按钮及编辑按钮等。 |
控件方法 |
drawText2Footer(text) |
在图片上绘制一段文字信息,注意绘制位置是固定的。 |
控件方法 |
drawTextInfo(x,y,fontsize, r,g,b,msg) |
在图片上绘制一段文字信息,参数x,y用于确定在那个位置开始绘制文字信息,坐标位置为从空间左上角为0,0坐标开始计算。Fontsize为字体大小,例如指定使用12号字体时传递参数值为12即可。r,g,b为绘制文字的红、绿、蓝三原色值,例如要绘制的文字为红色时可以指定r,g,b值为255,0,0即可。msg为要绘制的文字信息内容。 |
控件方法 |
getCamName(int idx) |
读取某一个摄像头设备的名称,通过读取控件的camCount属性可以取得客户端本机一共连接了多少个摄像头,然后可以遍历读取所有的摄像头设备名称。 |
控件方法 |
getFormatName (int idx) |
读取当前选中的摄像头支持的视频格式名称,可以通过先读取控件的formatCount属性取得当前摄像头支持的格式总数,然后遍历读取所有的视频规格名称。 |
控件方法 |
setCurrentCam(int idx) |
设置控件当前使用哪一个摄像头,第一个摄像头从0开始编号。 |
控件方法 |
setCurrentFormat (int idx) |
设置控件工作在某一中视频规格下,例如先通过读取formatCount取得支持的视频规格总数,然后通过getFormatName取得每一个规格的名称,然后再设置当前选中的视频规格。 |
控件属性 |
Key1,key2,licenseMode |
用于向控件提供授权码,key1和key2分别对应作者提供的key值,licenseMode值为授权工作模式。授权码需要联系控件作者付费后取得,作者邮件 peihexian@qq.com |
控件属性 |
jpegBase64Data |
用于取得jpeg格式的图像base64编码数据,jpeg格式数据量比bmp小巧很多,建议读取控件的此属相取得图像数据使用。 |
控件属性 |
bmpBase64Data |
用于取得bmp格式的图像base64编码数据,bmp格式数据量大,不建议使用。 |
控件属性 |
camCount |
用于取得客户端本机连接了多少个摄像头设备。 |
控件属性 |
formatCount |
用于取得客户端当前选中摄像头支持的视频格式总数。 |
(五)、常见问题
5.1 控件如何升级到新版本?
控件被客户端IE浏览器加载以后会在c:windowssystem32目录中生成一个ImageCapOnWeb.ocx文件,如果有新版本控件发布时,可以手动的删除system32目录中的ImageCapOnWeb.ocx文件以便浏览器再次重新下载新版本控件。
5.2 如何验证控件是否注册成功成为正式版本?
在联系控件作者购买授权码以后,配置控件的key1,key2,licenseMode这三个属性值,注意需要在每一个引用控件的页面中都要配置这三个属性,如果担心配置的参数值不正确而造成注册失败,可以调用控件的AboutBox()方法来验证控件工作模式。
示例:document.getElementById('cap1').AboutBox();
5.3 高清摄像头拍照结果上传失败的情况如何解决?
在个别web服务器上限制了客户端发送的http请求数据量大小,例如tomcat缺省限制客户端最大发送2M的http post数据(文件上传除外),我们取得的照片base64字符串数据在高清摄像头时有可能会很大,因此需要调整web服务器的参数来接受比较大的http post数据,不同的web服务器配置参数各不相同,请参考服务器手册调整参数。
5.4 浏览器假死情况如何解决?
个别的客户端计算机在使用控件后如果出现浏览器假死情况,从以下几个角度解决:
1.关闭应用程序保护(DEP),方法为:右键点击“我的电脑”->“属性”->“高级系统设置”->“高级”->“设置”->”数据执行保护”,选择“仅为基本windows程序和服务启用DEP(T)”
2.清除一下浏览器中的恶意网址插件等垃圾插件。