本教程展示了如何创建一个WinForms c#应用程序,该应用程序从TWAIN源文件中获取图像。
概述 | |
---|---|
总结 | 本教程介绍了如何在c# WinForms应用程序中利用LEADTOOLS TWAIN SDK技术。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(10kb) |
平台 | WinForms c#应用程序 |
IDE | Visual Studio 2017, 2019 |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License而且在图像查看器中显示图像教程,在工作之前从TWAIN源代码获取一个图像- WinForms c#教程。
中创建的项目的副本开始在图像查看器中显示图像教程。如果您没有该项目,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过以下两种方法中的一种添加(但不能同时添加)。本项目需要参考资料如下:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools。吐温
Leadtools.Viewer.Controls.WinForms
如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ 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
有关应用程序需要哪些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 .深灰色;
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。Image = e.Image;
}
在设计器中,创建另一个带有文本的菜单下拉菜单选项
,在吐温
.
在选项
下拉菜单添加以下菜单项:
文本 | 名字 |
---|---|
本机 | nativeToolStripMenuItem |
与记忆 | memoryToolStripMenuItem |
文件 | fileToolStripMenuItem1 |
双击本地的
菜单项添加其事件处理程序,然后添加以下代码:
私人无效nativeToolStripMenuItem_Click (对象发送者,EventArgs
{
TwainCapability能力=新TwainCapability ();
capacity . information . containertype = TwainContainerType.OneValue;
capability.Information.Type = twaincapacitytype . imagetransfermechanism;
capacity . onevaluecapability . itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.Native;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
打开窗体的设计器并双击内存
菜单项添加其事件处理程序,然后添加以下代码:
私人无效memoryToolStripMenuItem_Click (对象发送者,EventArgs
{
TwainCapability能力=新TwainCapability ();
capacity . information . containertype = TwainContainerType.OneValue;
capability.Information.Type = twaincapacitytype . imagetransfermechanism;
capacity . onevaluecapability . itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.Memory;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
打开窗体的设计器并双击文件
菜单项编辑其事件处理程序,然后添加以下代码:
私人无效fileToolStripMenuItem1_Click (对象发送者,EventArgs
{
TwainCapability能力=新TwainCapability ();
capacity . information . containertype = TwainContainerType.OneValue;
capability.Information.Type = twaincapacitytype . imagetransfermechanism;
capacity . onevaluecapability . itemtype = TwainItemType.Uint16;
value = (UInt16)TwainTransferMechanism.File;
_session。SetCapability(能力,TwainSetCapabilityMode.Set);
}
按下运行项目F5,或选择调试->开始调试.
如果正确地执行了这些步骤,应用程序将运行。测试时,请遵循以下说明:
本教程展示了如何列出可用的TWAIN设备,并从这些设备获取扫描图像。它还涵盖了如何使用TwainSession
而且TwainCapability
类。