在现代的医疗保健、文档管理和各种需要图像处理的应用程序中,能够控制摄像头和扫描仪是非常重要的。例如,医疗保健应用程序可能需要在接待处拍摄病人的照片,并将照片存储在服务器上的病人医疗档案中。稍后可以扫描报告并上传。
Dynamsoft的ImageCapture套件是一个浏览器插件,专为从网络摄像头和扫描仪捕获图像/文档而设计。该组件与Windows上的Internet Explorer(32位和64位)、Firefox、Chrome、Safari和Opera兼容,并为成像设备提供最全面的支持。
捕获来自摄像头(内置和数字)、扫描仪以及其他TWAIN/WIA/UVC兼容设备的图像。
与Windows上的Internet Explorer(32位和64位)、Firefox、Chrome、Safari和Opera兼容。
编辑捕获的图像:裁剪、更改图像大小、旋转、去倾斜等。
将图像上传到本地文件夹、Web服务器、FTP站点、SharePoint库、数据库和其他系统。
支持的图像格式包括BMP、JPEG、PNG、TIFF(单页和多页)和PDF(单页和多页)。
上传额外的文本信息以及图像。
强大的安全功能。支持SSL和Windows/Forms/Basic认证。
1D & 2D条码阅读器和OCR插件作为额外的选择提供。
以下部分将向展示如何将Dynamsoft的ImageCapture套件集成到Web应用程序中,如何实现图像/文档获取以及如何将扫描的图像存储到Web服务器上。但首先,请确保已经在开发机器上安装了SDK。如果还没有安装,请访问以下下载链接:
SDK为不同的浏览器提供了两个版本。
ActiveX版本:适用于Windows上的32位和64位IE
插件版本:适用于Windows上的Firefox、Chrome、Safari和Opera
将两个版本都嵌入到一个Web页面上非常简单,为客户提供了在不同浏览器中扫描图像而不需要访问多个页面的便利。
<embed type="Application/ImageCaptureSuite-Plugin" id="DWObject" OnPostTransfer="Dynamsoft_OnPostTransfer" OnPostAllTransfers="Dynamsoft_OnPostAllTransfers" pluginspage="DynamicWebTWAINPlugIn.msi" style="width:500px; height:500px;"></embed>
<object classid="clsid:E61B84D6-979B-4864-91B7-B8C140B58D54" id="DWObject" CodeBase="ImageCaptureSuite.cab#version=8,2" style="width:500px; height:500px;">
<param name="Manufacturer" value="Dynamsoft Corporation"/>
<param name="ProductName" value="ImageCapture Suite"/>
</object>
<object classid="clsid:5220cb21-c88d-11cf-b347-00aa00a28331" style="display:none;">
<param name="LPKPath" value="ImageCaptureSuite.lpk"/>
</object>
初始化ImageCapture套件后,可以调用SDK的方法和属性。
首先,可以使用SelectSource()或SelectSourceByIndex()来获取和选择计算机上可用的源。支持的源包括扫描仪和网络摄像头驱动程序。
if (DW_DWTSourceContainerID == "") {
DWObject.SelectSource();
} else {
DWObject.SelectSourceByIndex(document.getElementById(DW_DWTSourceContainerID).selectedIndex);
}
DWObject.CloseSource();
DWObject.OpenSource();
在选择了源之后,可以设置图像的属性,如分辨率、像素类型等。在扫描之前,使用iTwainType来检查所选源的类型。根据不同的设备类型(扫描仪或网络摄像头),可以设置不同的属性。
从选定的源捕获图像。
C# DWObject.IfDisableSourceAfterAcquire = true;
DWObject.AcquireImage();
指定服务器信息,包括服务器名称、端口号以及是否使用SSL。
strHTTPServer = DW_ServerName;
DWObject.HTTPPort = DW_strPort;
可以选择图像格式,然后将捕获的图像上传到数据库。支持的图像格式包括BMP、PNG、JPEG、TIFF和PDF。在给定的示例中,可以在Web页面上选择图像格式。
var CurrentPathName = unescape(location.pathname);
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);
strActionPage = CurrentPath + DW_ActionPage;
var uploadfilename = txt_fileName.value + "." + document.getElementsByName("ImageType").item(i).value;
if (strImageType == 2 && document.getElementById("MultiPageTIFF").checked) {
if ((DWObject.SelectedImagesCount == 1) || (DWObject.SelectedImagesCount == DWObject.HowManyImagesInBuffer)) {
DWObject.HTTPUploadAllThroughPostAsMultiPageTIFF(strHTTPServer, strActionPage, uploadfilename);
} else {
DWObject.HTTPUploadThroughPostAsMultiPageTIFF(strHTTPServer, strActionPage, uploadfilename);
}
} else if (strImageType == 4 && document.getElementById("MultiPagePDF").checked) {
if ((DWObject.SelectedImagesCount == 1) || (DWObject.SelectedImagesCount == DWObject.HowManyImagesInBuffer)) {
DWObject.HTTPUploadAllThroughPostAsPDF(strHTTPServer, strActionPage, uploadfilename);
} else {
DWObject.HTTPUploadThroughPostAsMultiPagePDF(strHTTPServer, strActionPage, uploadfilename);
}
} else {
DWObject.HTTPUploadThroughPostEx(strHTTPServer, DWObject.CurrentImageIndexInBuffer, strActionPage, uploadfilename, strImageType);
}
action页面(SaveToFile.aspx)用于接收图像数据并将数据发送到Web服务器或数据库。这里将使用Web服务器作为示例。
<%@ Page Language="C#" %>
<%
try {
String strImageName;
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile uploadfile = files["RemoteFile"];
strImageName = uploadfile.FileName;
uploadfile.SaveAs(Server.MapPath(".") + "\\UploadedImages\\" + strImageName);
} catch {
}
%>
完整的示例代码可以从本文下载。如果想先查看功能,提供了在线演示。