来源:
http://www.codeproject.com/Articles/432009/How-to-Capture-Edit-and-Upload-Images-Through-Your
此文中,我们想为读者提供我们产品有用的信息和服务,让开发者更快更好地了解我们产品的功能,将图像获取及编辑保存上传等功能集成到网页程序中去。
大名软件是领先的版本控制解决方案和TWAIN软件开发工具包供应商。其网页扫描SDK,即Dynamic Web TWAIN使你能够紧紧拥少量代码,就能够将在线文档扫描和上传的功能加到你的文档处理解决方案中去。
作为一个客户端的浏览器插件,Dynamic Web TWAIN让开发者能够从TWAIN兼容的设备仪器(如扫描仪、数码相机、网络摄像机等)获取图像。在获取图像以后,你可以将其编辑,再上传到文件系统、服务器、本地磁盘、FTP或者数据库中去。所有的这些操作可以通过浏览器来实现,包括32位和者64位的IE、火狐、谷歌浏览器、Safari和Opera。
在此文中,我将会介绍Dynamic Web TWAIN几个关键的特征,然后为你的网页程序提供一个扫描用的示例代码。若你想自己亲自尝试,不放试试我们的30天免费使用版。
我们只要简单的几行代码,就可以实现上述的所有功能。支持的编程语言包括JavaScript、ASP.NET(C#)、VB.NET、ASP、JSP和PHP。
function btnScan_onclick() {
WebTWAIN.SelectSource();
WebTWAIN.OpenSource();
WebTWAIN.IfShowUI = false;
WebTWAIN.Resolution = 300;
WebTWAIN.IfFeederEnabled = true;
WebTWAIN.IfDisableSourceAfterAcquire = true;
WebTWAIN.AcquireImage();
}
function btnShowImageEditor_onclick()
{
WebTWAIN.ShowImageEditor();//show the user interface of Image Editor
}
function btnRotateRight_onclick()
{
//rotate the image by 90 degrees clockwise
WebTWAIN.RotateRight(WebTWAIN.CurrentImageIndexInBuffer);
}
//remove an image
function btnRemoveCurrentImage_onclick() {
if (!CheckIfImagesInBuffer()) {
return;
}
WebTWAIN.RemoveAllSelectedImages();
if (WebTWAIN.HowManyImagesInBuffer == 0) {
TotalImage.value = WebTWAIN.HowManyImagesInBuffer;
CurrentImage.value = "";
return;
}
else {
UpdatePageInfo();
}
}
//remove all images in buffer
function btnRemoveAllImages_onclick() {
if (!CheckIfImagesInBuffer()) {
return;
}
WebTWAIN.RemoveAllImages();
TotalImage.value = "0";
CurrentImage.value = "";
}
除了上传到服务器,我们的TWAIN SDK还可以将图片保存到数据库(SQL Server和Oracle)。你可以根据你的需求更改SaveToFile.aspx文件。
function btnUpload_onclick()
{
var strActionPage;
var strHostIP;
var CurrentPathName = unescape(location.pathname); // get current PathName in plain ASCII
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);
strActionPage = CurrentPath + "SaveToFile.aspx"; //the ActionPage's file path
strHostIP = "localhost"; //The host's IP or name
WebTWAIN.HTTPPort = 80;
WebTWAIN.HTTPUploadThroughPost(strHostIP,0,strActionPage,"imageData.tif");
if (WebTWAIN.ErrorCode != 0)
alert(WebTWAIN.ErrorString);
else //succeded
alert("Image Uploaded successfully");
}
//SaveToFile.aspx
<%@ Page Language="c#" AutoEventWireup="false" Debug="True"%>
<%
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile uploadfile = files["RemoteFile"];
uploadfile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(".")
+ "/" + uploadfile.FileName);
在创建web页面后,你可以将你的程序部署到服务器上,比如IIS、Apache、Lotus Domino等。
产生ProductKey所需的序列号,并在代码中赋值。
插入<object>到源代码,确定其classid符合你现在所使用的版本。
在ProductKey中写入license信息。
function DW_ControlDetect() {
//若ErrorCode是0控件加载顺利
if (DWObject.ErrorCode == 0) {
DWObject.ProductKey = "xxx"; //请将”xxx”替换成产生工具里产生的序列号
}
}
<object classid="clsid:FFC6F181-A5CF-4ec4-A441-093D7134FBF2"
id="DynamicWebTwain1" width="143" height="156"
CodeBase = "DynamicWebTWAIN.cab#version=9,0">
</object>
这样,用户就可以访问你的页面,然后从他们的浏览器上进行文档扫描了。
若想自己尝试上述功能,你可以通过以下链接下载示例。
Dynamic Web TWAIN示例
若你想评估Dynamic Web TWAIN,可以下载免费使用版:
Dynamic Web TWAIN 30天免费试用
如果你有任何疑问,欢迎联系我们的技术支持团队:
twainsupport@dynamsoft.com
本文中所有的相关代码和文件都由The Code Project Open License (CPOL)授权。
联系客服