对于软件开发者来说,处理媒体文件或流是一项常见的任务。使用API与摄像头交互,如捕获视频流、图像配置文件、病患图表、客户ID卡等,是一个不错的选择。然而,直接使用API可能会让开发者感到困难,因为它虽然对应用至关重要,但也只是应用的一小部分。因此,不值得在上面花费太多时间。特别是对于Web应用开发者来说,他们非常需要减轻这种负担。基于这种考虑,Dynamsoft开发了ImageCapture Suite,这是一个用于图像捕获的浏览器插件。这个SDK基于DirectShow API,并且与所有USB视频设备类(UVC)和Windows图像获取(WIA)兼容的网络摄像头良好协作。除了捕获图像外,SDK还允许轻松编辑并将图像上传到Web服务器或数据库。
ImageCapture Suite的关键特性包括:
在本节中,将向展示实现三个基本图像处理过程的示例代码片段:图像捕获、编辑和上传。
从网络摄像头捕获图像。
DWObject.IfShowUI = document.getElementById("ShowUIForWebcam").checked;
if (DW_InWindows) {
DWObject.SelectMediaTypeByIndex(document.getElementById("MediaType").selectedIndex);
DWObject.SelectResolutionForCamByIndex(document.getElementById("ResolutionWebcam").selectedIndex);
}
DWObject.IfDisableSourceAfterAcquire = true;
可以从选定的网络摄像头驱动程序捕获图像。
捕获图像后,可以根据需要对其进行编辑。
function btnShowImageEditor_onclick() {
if (!DW_CheckIfImagesInBuffer()) {
return;
}
DWObject.ShowImageEditor();
DW_TempStr = DW_TempStr + "Show Image Editor:";
if (DW_CheckErrorString()) {
return;
}
}
如所见,在几行代码中添加了“显示图像编辑器”、“向右旋转”和“更改图像大小”功能。根据需求,还可以向Web应用中添加裁剪、添加文本等更多功能。
现在,可能希望将捕获的图像保存到本地磁盘。以下示例代码展示了如何保存图像。
function btnSave_onclick() {
var i, strimgType_save;
var NM_imgType_save = document.getElementsByName("imgType_save");
for (i = 0; i < 5; i++) {
if (NM_imgType_save.item(i).checked == true) {
strimgType_save = NM_imgType_save.item(i).value;
break;
}
}
DWObject.IfShowFileDialog = true;
txt_fileNameforSave.className = "";
var strFilePath = "C:\\" + txt_fileNameforSave.value + "." + strimgType_save;
// ... 省略部分代码 ...
}
一个好的组件应该易于开发者部署,更重要的是,对于客户来说安装和使用直观。可以从文章中下载完整的源代码。
有一个"Scripts\ProductKey.js"文件,其中包含一个临时试用产品密钥。如果在运行示例时遇到许可证错误,可以从Dynamsoft的网站下载ImageCapture Suite以获得有效的试用许可证。
要将示例部署到不同的客户端机器,只需将示例代码与ImageCapture Suite一起复制到Web服务器(IIS、Apache或Tomcat)。用户只需要在首次访问Web页面时在浏览器中下载并安装ActiveX/Plugin。