轉帖|使用教程|編輯:黃竹雯|2016-07-14 11:05:19.000|閱讀 1000 次
概述:LeadTools是全球最優秀的圖形、圖像處理開發包,它可以處理各種格式的文件,并包含所有圖形、圖像的處理和轉換功能,支持圖形、圖像、多媒體、條形碼、OCR、Internet、DICOM等等,具有各種軟硬件平臺下的開發包,是不可多得優秀軟件。LeadTools為“從TWAIN源獲取圖像”提供了支持。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LeadTools是全球最優秀的圖形、圖像處理開發包,它可以處理各種格式的文件,并包含所有圖形、圖像的處理和轉換功能,支持圖形、圖像、多媒體、條形碼、OCR、Internet、DICOM等等,具有各種軟硬件平臺下的開發包,是不可多得優秀軟件。LeadTools為“從TWAIN源獲取圖像”提供了支持。
本博文主要包括:
TWAIN是一項重要的接口標準,為軟件開發商和硬件設備生產廠商之間提供了一個統一的規范,以有效地避免系統及設備之間的不兼容問題。
從硬件到軟件,TWAIN包含四層:硬件、源、源管理器和軟件。
硬件廠家的TWAIN支持通常體現為支持TWAIN接口的驅動程序。
TWAIN的硬件層接口被稱為源,源管理器負責選擇和管理來自不同硬件廠家的源。
在微軟的Windows上,源管理器是以DLL方式實現。TWAIN軟件不直接調用硬件廠家的TWAIN接口,而是通過源管理器。
用戶在TWAIN軟件中選擇獲取圖像之后,TWAIN軟件和硬件通過一系列交涉來決定如何傳輸數據。軟件描述它需要的圖像,而硬件描述它能夠提供的圖像。如果軟硬件在圖像格式上達成一致,那么控制被傳遞到源。源現在可以設置掃描選項,以及開始掃描。
1. 打開Visual Studio .NET。
2. 點擊 文件->新建->項目…。
3. 打開新建項目對話框后,在模板中選擇“Visual C#”或“Visual Basic”,隨后選擇“Windows窗體應用程序”。在名稱欄中輸入項目名稱“Acquiring an Image”,并使用“瀏覽”按鈕選擇您工程的存儲路徑,點擊“確定”。
4. 在“解決方案資源管理器”中,右擊“引用”,選擇“添加引用”。根據當前工程的 Framework 版本和生成目標平臺,選擇添加相應的LeadTools控件,例如工程中的版本為 Framework 4.0、生成目標平臺是 x86,則瀏覽選擇Leadtools For .NET文件夾” LEADTOOLS_INSTALLDIR\Bin\DotNet4\Win32”,選擇以下的DLL“:
點擊“確定”按鈕,將以上所有的DLL添加到應用程序中。
將Form1調整到設計視圖,在工具箱(視圖->工具箱)拖拽一個RasterImageViewer實例至窗體。若您的工具箱沒有RasterImageViewer,點擊工具->選擇工具箱項…。點擊瀏覽從“LEADTOOLS_INSTALLDIR\Bin\DotNet4\Win32”中選擇Leadtools.WinForms.DLL,點擊打開并確定。
6. 切換至Form1的設計視圖,從工具箱(視圖->工具箱)里拖拽3個RadioButton控件的實例至窗體上,根據以下表格修改屬性:
Text | Name | Checked |
---|---|---|
本機 | radioNative | False |
存儲器 | radioMemory | False |
文件 | radioFile | False |
7. 從工具箱(視圖->工具箱)拖拽4個Button控件的實例至窗體上,根據以下表格修改相關屬性:
Text | Name |
---|---|
獲取 | buttonAcquire |
選擇源 | buttonSelectSource |
保存模板文件 | buttonSaveTemplateFile |
加載模板文件 | buttonLoadTemplateFile |
8. 切換至Form1的代碼視圖,在文件開始添加以下代碼:
[C#] using Leadtools; using Leadtools.Twain; using Leadtools.Codecs; using Leadtools.WinForms;
9. 聲明以下私有變量:
[C#] private TwainSession twnSession;
10. 為Form1的Load事件添加事件句柄,并添加以下代碼:
[C#] private void Form1_Load(object sender, System.EventArgs e) { try { twnSession = new TwainSession(); twnSession.Startup(this, "manufacturer", "productFamily", "version", "application", TwainStartupFlags.None); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
11. 為Form1的Closing事件添加事件句柄,代碼如下:
[C#] private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { twnSession.Shutdown(); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
12. 為twnSession AcquirePage事件添加事件句柄,并添加以下代碼:
[C#] private void twnSession_AcquirePage(object sender, TwainAcquirePageEventArgs e) { rasterImageViewer1.Image = e.Image; }
13. 為buttonAcquire Click 事件添加事件句柄,并添加以下代碼:
[C#] private void buttonAcquire_Click(object sender, System.EventArgs e) { try { twnSession.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(twnSession_AcquirePage); twnSession.Acquire(TwainUserInterfaceFlags.Show); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
14. 為buttonSelectSource Click事件添加事件句柄,并添加以下代碼:
[C#] private void buttonSelectSource_Click(object sender, System.EventArgs e) { try { twnSession.SelectSource(string.Empty); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
15. 為buttonSaveTemplateFile Click事件添加事件句柄,并添加以下代碼:
[C#] private void buttonSaveTemplateFile_Click(object sender, System.EventArgs e) { try { twnSession.SaveTemplateFile(@"c:\test.ltt"); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
16. 為buttonLoadTemplateFile Click事件添加事件句柄,并添加以下代碼:
[C#] private void buttonLoadTemplateFile_Click(object sender, System.EventArgs e) { try { twnSession.LoadTemplateFile(@"c:\test.ltt"); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
17. 為radioNative CheckedChanged事件添加事件句柄,并添加以下代碼:
[C#] private void radioNative_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = (UInt16)TwainTransferMechanism.Native; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
18. 為radioMemory CheckedChanged事件添加事件句柄,代碼如下:
[C#] private void radioMemory_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = (UInt16)TwainTransferMechanism.Memory; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
19. 為radioFile CheckedChanged事件添加事件句柄,代碼如下:
[C#] private void radioFile_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = (UInt16)TwainTransferMechanism.File; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
20. 編譯并運行程序。
DEMO下載:
文章轉自:葡萄城控件產品博客,//blog.gcpowertools.com.cn
本博文DEMO提供了使用LeadTools從TWAIN源獲取圖像的全部代碼。為了運行Demo代碼,請查看并免費下載LeadTools試用版。
如需幫助,請聯系!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn