调用扫描仪的方案
近期由于項目需求,簡單研究了一下客戶端調用掃描儀的問題,總結了一下,大概有以下幾種方式:?
(1)TWAIN?
?????? TWAIN指TWAIN協議,全稱Toolkit Without An Interesting Name,無注名工具包協議,是應用軟件從計算機外設獲取靜態圖像的國際標準。?
?????? TWAIN是一項重要的接口標準,為軟件開發商和硬件設備生產廠商之間提供了一個統一的規范,以有效地避免系統及設備之間的不兼容問題。TWAIN協議為操作系統提供了軟件支持,使得符合TWAIN協議的軟件通過調用TWAIN協議接口就能從兼容TWAIN協議的外設上獲取靜態圖像,而不必考慮外設的功能差別。?
TWAIN共包括4個二進制文件。如果要使用該接口,就必須要保證他們被成功地安裝在本地計算機上。如下:?
TWAIN_32.DLL?
TWAIN.DLL?
TWUNKER_32.EXE?
TWUNKER_16.EXE?
在Windows 操作系統中,Microsoft已經把這些文件作為系統文件隨同操作系統一起發布了。可以在Windows安裝目錄中查找到這些文件。通過TWAIN提供的頭文件(twain.h),可以實現掃描功能。
??????? 存在問題:由于twain標準只是推薦標準,不是強制的標準;因此,有些掃描儀廠家在實現twain接口時通常不是嚴格按照twain規范進行,而只是部分遵守。這就導致了基于TWAIN標準實現的掃描儀調用應用接口在調用一些掃描儀時可能無法正常工作。
(2)Kodakimg?
?????? 映像KODAKIMG.EXE是Windows 95/ 98/NT 和 Windows 2000中用于圖像掃描、瀏覽和編輯的附件程序(在WINDOWS安裝過程中是可選的),分為自由版和專業版(需另外購買)。在Windows的安裝過程中,4個OCX Kodak控件(Kodak圖像編輯控件、Kodak圖像管理控件、Kodak圖像掃描控件及Kodak圖像縮略圖控件)隨著自由版映像程序的安裝也被一同安裝。這四個控件被允許用于任何的Windows開發工具中來開發與圖像有關的軟件產品。當然,自由版的映像程序限制并隱藏了這四個控件的一些屬性和方法;比如,編輯控件的DeSpeckle方法僅限于結合專業版的映像程序使用。
?????? 另外值得一提的是,專業版的映像程序通過引入新的圖像OCR控件提供了擴展的圖像處理能力。還有,Windows映像程序并沒有隨著Windows ME及Windows XP一同分發。在新的系統中,微軟想以“圖像與電傳瀏覽程序”和“掃描儀與相機向導”取而代之。要在新系統上使用Windows映像程序,必須另行購買Windows映像程序專業版本;但如果從Windows 2000系統升級到XP,依然有映像程序及四個控件可用。?
(3)Dynamic TWAIN ActiveX?
?????? Dynamic TWAIN ActiveX 控件可以使得你能從任何 TWAIN 兼容的設備獲取圖象。它有著精心設計的界面,以及內建的向導模式, Dynamic TWAIN 使用起來很簡單。你可以在若干代碼間做典型的 TWAIN 工作。同時, Dynamic TWAIN 功能很強大。它和 TWAIN V1.9規范兼容,內建了 TIFF 和 JPEG 的編解碼器。它還支持所有的三種圖象格式的轉換以及其他的特性。通過 Dynamic TWAIN ActiveX 控件,如果有 TWAIN 驅動器的話,你可以操作掃描儀、數字相機或捕捉卡。更高端的獲取功能使得能更容易使用它,就算條件再苛刻,低端的功能也能讓我們操作更彈性更易用。?
(4)WIA?
Windows 圖像采集 (WIA) 是最新 imaging 技術,在Microsoft Windows Millennium Edition中引入, 包含在更高版本的 MicrosoftWindows 操作系統中(例如WindowsXP,注意Windows2000不支持WIA)。 WIA 提供廣泛的支持以啟用 imaging 設備, 如掃描儀和數碼相機, 以與圖像應用程序 (例如, McrosoftPicture2000和 Adobe Photoshop)對接。?
WIA之前的成像設備行業標準是TWAIN標準。?
使用WIA,制造商只需要寫 WIA microdriver 以允許設備使用。 這類似于打印制造商提供 minidriver, 而其他WIA組件由操作系統實現。?
使用WIA, 獨立硬件供應商 (IHV) 可集中編寫代碼以提高設備功能。
????? WIA和TWAIN的關系是,WIA是微軟操作系統的影像獲取體系結構,屬于Windows操作系統驅動程序類;而TWAIN是開放協議,用來解決應用軟件對不同影像外設的可移植性調用。應當說,WIA是驅動層上的東西,它為應用程序提供SDK接口;而TWAIN協議在驅動程序和應用程序間提供一個公用接口。TWAIN的層次高于WIA。
轉載于:https://www.cnblogs.com/Peter-Luo/archive/2012/07/05/2577621.html
總結
- 上一篇: Rails non browser ap
- 下一篇: 四个经典例题