本教程展示了如何创建一个WinForms c#应用程序来从TWAIN源文件中获取图像。
概述 | |
---|---|
总结 | 本教程将介绍如何在c# WinForms应用程序中利用LEADTOOLS TWAIN SDK技术。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(10kb) |
平台 | WinForms c#应用程序 |
IDE | Visual Studio 2017, 2019 |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
来熟悉创建项目的基本步骤添加引用和设置License而且在图像查看器中显示图像教程,在工作之前从TWAIN源代码- WinForms c#获取图像教程。
在Visual Studio中,创建一个新的c# Windows Winforms项目,并添加以下必要的LEADTOOLS引用。
所需的参考资料取决于项目的目的。可以通过以下两种方法中的一种或另一种添加引用(但不能同时添加)。对于这个项目,需要以下参考资料:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools。吐温
Leadtools.Viewer.Controls.WinForms
如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS21 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Fax.dll
Leadtools.Codecs.Tif.dll
Leadtools.Controls.WinForms.dll
Leadtools.Drawing.dll
Leadtools.Twain.dll
有关特定格式需要哪些Codec dll的完整列表,请参阅文件格式支持.
许可证解锁项目所需的特性。它必须在调用任何工具包函数之前设置。有关详细信息,包括不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中详细介绍了添加LEADTOOLS NuGet和本地引用以及设置许可证添加引用和设置License教程。
创建了项目、添加了引用、设置了许可证、添加了ImageViewer、加载和保存代码之后,就可以开始编码了。
在解决方案资源管理器,双击Form1.cs
显示设计器。右键单击设计器并选择视图代码
或按F7.这将显示表单背后的代码。将以下语句添加到使用
块的顶部Form1.cs
:
//在顶部使用块
使用系统;
使用先;
使用Leadtools;
使用Leadtools.Codecs;
使用Leadtools.Controls;
使用Leadtools.Twain;
添加以下全局变量:
//添加这个全局变量
私人TwainSession _session;
将下面的代码添加到Form1_Load
事件初始化TWAIN会话。
私人无效Form1_Load (对象发送器,EventArgs
{
_view =新imageview ();
_view。Dock = DockStyle.Fill;
_view。BackColor = Color.DarkGray;
Controls.Add (_view);
_viewer.BringToFront ();
//这将启动TWAIN会话
_session =新TwainSession ();
_session。启动(这.Handle,“制造商”,“productFamily”,“版本”,“应用程序”, TwainStartupFlags.None);
}
在解决方案资源管理器,双击Form1.cs
再提设计师的事单击事件的图标。属性窗口.然后,双击FormClosing事件处理程序(如果不存在)。
将以下代码添加到Form1_FormClosing
事件处理程序来关闭TWAIN会话。
私人无效Form1_FormClosing (对象发送器,FormClosingEventArgs
{
_session.Shutdown ();
}
开放Form1.cs
在解决方案资源管理器然后加一个吐温
下拉菜单,旁边文件
.菜单条的创建包含在在图像查看器中显示图像教程。在吐温
下拉菜单添加以下菜单项:
文本 | 的名字 |
---|---|
选择源 | selectSourceToolStripMenuItem |
与页面 | acquireImageToolStripMenuItem |
双击新增的选择源
菜单项以添加其事件处理程序。添加以下代码来选择TWAIN源代码。
私人无效selectSourceToolStripMenuItem_Click (对象发送器,EventArgs
{
_session。SelectSource (字符串空虚);
}
导航回Form1.cs
设计器,并双击获取图像
菜单项以添加其事件处理程序。添加以下代码,使应用程序监听扫描的图像。一旦一个页面被扫描,应用程序将获取该图像,并将图像加载到imageview.
私人无效acquireImageToolStripMenuItem_Click (对象发送器,EventArgs
{
_session。AcquirePage + =新EventHandler < TwainAcquirePageEventArgs > (_session_AcquirePage);
_session.Acquire (TwainUserInterfaceFlags.Show);
}
私人无效_session_AcquirePage (对象发送器,TwainAcquirePageEventArgs
{
//在ImageViewer中设置扫描图像
_view。图像= e.图像;
}
在设计器中,创建另一个带有文本的菜单下拉菜单选项
,紧挨着吐温
.
在选项
下拉菜单添加以下菜单项:
文本 | 的名字 |
---|---|
本机 | nativeToolStripMenuItem |
与记忆 | memoryToolStripMenuItem |
文件 | fileToolStripMenuItem1 |
双击本地的
菜单项添加其事件处理程序,然后添加以下代码:
私人无效nativeToolStripMenuItem_Click (对象发送器,EventArgs
{
TwainCapability能力=新TwainCapability ();
capability.Information.ContainerType = TwainContainerType.OneValue;
capability.Information.Type = TwainCapabilityType.ImageTransferMechanism;
itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.Native;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
打开窗体的设计器并双击内存
菜单项添加其事件处理程序,然后添加以下代码:
私人无效memoryToolStripMenuItem_Click (对象发送器,EventArgs
{
TwainCapability能力=新TwainCapability ();
capability.Information.ContainerType = TwainContainerType.OneValue;
capability.Information.Type = TwainCapabilityType.ImageTransferMechanism;
itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.Memory;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
打开窗体的设计器并双击文件
菜单项来编辑它的事件处理程序,然后添加以下代码:
私人无效fileToolStripMenuItem1_Click (对象发送器,EventArgs
{
TwainCapability能力=新TwainCapability ();
capability.Information.ContainerType = TwainContainerType.OneValue;
capability.Information.Type = TwainCapabilityType.ImageTransferMechanism;
itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.File;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
通过按运行项目F5,或选择调试->开始调试.
如果正确地执行了这些步骤,应用程序将运行。对于测试,请遵循以下说明:
本教程展示了如何列出可用的TWAIN设备,并从这些设备获取扫描图像。还介绍了如何使用TwainSession
而且TwainCapability
类。