轉(zhuǎn)帖|使用教程|編輯:黃竹雯|2016-07-14 11:05:19.000|閱讀 1000 次
概述:LeadTools是全球最優(yōu)秀的圖形、圖像處理開發(fā)包,它可以處理各種格式的文件,并包含所有圖形、圖像的處理和轉(zhuǎn)換功能,支持圖形、圖像、多媒體、條形碼、OCR、Internet、DICOM等等,具有各種軟硬件平臺下的開發(fā)包,是不可多得優(yōu)秀軟件。LeadTools為“從TWAIN源獲取圖像”提供了支持。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
LeadTools是全球最優(yōu)秀的圖形、圖像處理開發(fā)包,它可以處理各種格式的文件,并包含所有圖形、圖像的處理和轉(zhuǎn)換功能,支持圖形、圖像、多媒體、條形碼、OCR、Internet、DICOM等等,具有各種軟硬件平臺下的開發(fā)包,是不可多得優(yōu)秀軟件。LeadTools為“從TWAIN源獲取圖像”提供了支持。
本博文主要包括:
TWAIN是一項重要的接口標(biāo)準(zhǔn),為軟件開發(fā)商和硬件設(shè)備生產(chǎn)廠商之間提供了一個統(tǒng)一的規(guī)范,以有效地避免系統(tǒng)及設(shè)備之間的不兼容問題。
從硬件到軟件,TWAIN包含四層:硬件、源、源管理器和軟件。
硬件廠家的TWAIN支持通常體現(xiàn)為支持TWAIN接口的驅(qū)動程序。
TWAIN的硬件層接口被稱為源,源管理器負(fù)責(zé)選擇和管理來自不同硬件廠家的源。
在微軟的Windows上,源管理器是以DLL方式實現(xiàn)。TWAIN軟件不直接調(diào)用硬件廠家的TWAIN接口,而是通過源管理器。
用戶在TWAIN軟件中選擇獲取圖像之后,TWAIN軟件和硬件通過一系列交涉來決定如何傳輸數(shù)據(jù)。軟件描述它需要的圖像,而硬件描述它能夠提供的圖像。如果軟硬件在圖像格式上達(dá)成一致,那么控制被傳遞到源。源現(xiàn)在可以設(shè)置掃描選項,以及開始掃描。
1. 打開Visual Studio .NET。
2. 點擊 文件->新建->項目…。
3. 打開新建項目對話框后,在模板中選擇“Visual C#”或“Visual Basic”,隨后選擇“Windows窗體應(yīng)用程序”。在名稱欄中輸入項目名稱“Acquiring an Image”,并使用“瀏覽”按鈕選擇您工程的存儲路徑,點擊“確定”。
4. 在“解決方案資源管理器”中,右擊“引用”,選擇“添加引用”。根據(jù)當(dāng)前工程的 Framework 版本和生成目標(biāo)平臺,選擇添加相應(yīng)的LeadTools控件,例如工程中的版本為 Framework 4.0、生成目標(biāo)平臺是 x86,則瀏覽選擇Leadtools For .NET文件夾” LEADTOOLS_INSTALLDIR\Bin\DotNet4\Win32”,選擇以下的DLL“:
點擊“確定”按鈕,將以上所有的DLL添加到應(yīng)用程序中。
將Form1調(diào)整到設(shè)計視圖,在工具箱(視圖->工具箱)拖拽一個RasterImageViewer實例至窗體。若您的工具箱沒有RasterImageViewer,點擊工具->選擇工具箱項…。點擊瀏覽從“LEADTOOLS_INSTALLDIR\Bin\DotNet4\Win32”中選擇Leadtools.WinForms.DLL,點擊打開并確定。
6. 切換至Form1的設(shè)計視圖,從工具箱(視圖->工具箱)里拖拽3個RadioButton控件的實例至窗體上,根據(jù)以下表格修改屬性:
Text | Name | Checked |
---|---|---|
本機 | radioNative | False |
存儲器 | radioMemory | False |
文件 | radioFile | False |
7. 從工具箱(視圖->工具箱)拖拽4個Button控件的實例至窗體上,根據(jù)以下表格修改相關(guān)屬性:
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下載:
文章轉(zhuǎn)自:葡萄城控件產(chǎn)品博客,//blog.gcpowertools.com.cn
本博文DEMO提供了使用LeadTools從TWAIN源獲取圖像的全部代碼。為了運行Demo代碼,請查看并免費下載LeadTools試用版。
如需幫助,請聯(lián)系!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn