明基扫描仪二次开发包
?
?
明基掃描儀二次開發包
使用說明
?
?
?
?
?
?
?
?
?
明基電通信息技術有限公司·營銷總部
0512-68251233-2888
目錄
一,功能說明(3-3)
二,要求說明(3-3)
三,開發包文件結構說明(3-4)
四,scan.Dll接口說明(4-15)
五,ImageRWSB.dll 接口說明(15-17)(略)
?
一.?? 功能說明
本開發包是為明基掃描儀專門提供的,可以讓用戶進行二次開發的開發包。該開發包是用VC++ 6.0開發的動態連接庫(scan.dll)。接口簡單,調用方便,讓您可以在最短的時間內實現對明基掃描儀的功能定制。另外,本開發包還提供給用戶明基自行開發的影像文件讀寫庫(ImageRW.dll),提供了多種影像格式的支持,讓您可以方便的將掃描得到的影像數據存成各種格式(支持的文件格式有BMP, PCX, JPG, TIF, TGA, PNG)的影像文件。本開發包內還附有開發例程,即使你一點都不了解掃描儀的驅動過程, 也能在很短的時間里定制出符合你要求的應用程序(當然,你需要有一定的VC++編程能力), 比如說能在某個特定的區域內用特定的分辨率進行掃描。該例程還提供了如何使用漢王OCR實現文字識別的演示。
使用這個開發包,他們可以實現對掃描儀的自主操控,如自行控制預覽、掃描的位置、掃描分辨率色彩等各項參數,甚至還提供了常見的幾種圖形文件格式的讀寫,讓客戶很方便的實現掃描儀的控制以及圖像的讀寫操作,把更多的時間用于整個控制管理系統中更具應用價值的部分。
正因為二次開發包具備非常高的可擴展性,所以適用于多種行業多種應用。比如:數字圖書館和數字化檔案館等,如果再配合上光學文字識別軟件(OCR)等專門處理軟件,應用的領域更大,如:旅店業身份識別、機場及出入境身份識別、警(軍)用活體指紋、指紋錄入、考勤、錄入工廠、銀行金融票據、稅務、交通、工程測繪、地質考古、公安戶籍等等以及行業信息化數字化領域。在這些領域里,通用掃描控制根本沒有用武之地,所有的應用系統都需要量身定制、需要靈活自如的控制,這些都只能基于二次開發包的高擴展性。
二.?? 要求說明
此開發包需要配合明基提供之掃描儀設備以及設備驅動程序方可使用,使用前,請確認掃描儀設備已經正確安裝并工作。
三.?? 開發包文件結構說明
SDK:? 根目錄
/Include: 頭文件目錄(需要把該目錄添加到你得VC開發環境中)
?????? TwainExport.h: scan.dll的接口定義
?????? twain.h: 標準影像設備數據結構類型定義
?????? ImageRW.h:??? 圖像文件讀寫接口定義
/library:? 庫文件目錄(需要把該目錄添加到你得VC開發環境中)
?????? ImgRWSB.lib:圖像文件讀寫接口庫
/Src: 源文件目錄
?????? TwainExport.cpp:
/Bin: 動態連接庫目錄
??????? Scan.dll:????? 掃描儀驅動接口動態連接庫
???????? Formatdll.dll?? 圖像文件讀寫動態連接庫
/Sample: 例程目錄
???????? VC++ 例程
/document: 說明文件目錄
???????? 明基掃描儀開發包說明.doc:? 本說明文件
?
?
四.?? Scan.dll接口說明
初始化函數
1. HINSTANCE InitTwainDLL(LPCTSTR szDLLName);
返回值
如果成功返回Scan.dll的句柄,失敗為NULL。
參數
szDllName
???????? 指向scan.dll的絕對路徑名
注解
該接口函數必須第一個被調用成功,如果調用失敗請檢查路徑名是否書寫正確,或文件是否真的存在。
?2. VOID FreeTwainDLL(HINSTANCE hInst);??
返回值
無
參數
?hInst
????????? Scan.dll的句柄。
注解
該函數必須在程序推出時被調用,釋放scan.dll資源。
3. VOID? NewTwain (Htwain * phTwain);?
返回值
無
參數
?phTwain
????????? 指向掃描儀句柄的指針
注解
創建控制明基掃描儀的句柄
4. VOID? FreeTwainDLL(HTwain hTwain);
返回值
無
參數
?hTwain
????????? 掃描儀句柄
注解
創建控制明基掃描儀的句柄
5. BOOL? LoadSM (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
載入驅動管理器
6.? BOOL? UnloadSM (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
卸載驅動管理器
7. BOOL OpenSM (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
打開驅動管理器
8. BOOL CloseSM (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
關閉驅動管理器
9. BOOL OpenDS (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
打開驅動程序
10. BOOL CloseDS (HTwain hTwain);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
注解
關閉驅動程序
11. BOOL EnableDS (HTwain hTwain, BOOL bIsShowUI, HWND hWnd);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
bIsShowUI
????????? TRUE: 顯示驅動程序界面, FALSE: 不顯示
hWnd
????????? 驅動程序父窗口句柄
注解
透過驅動程序進行掃描
12. BOOL DisableDS (HTwain hTwain, BOOL bIsShowUI, HWND hWnd);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
bIsShowUI
????????? TRUE:驅動程序以打開界面, FALSE: 沒有打開
hWnd
????? ????驅動程序父窗口句柄
注解
使驅動程序掃描無效
13. BOOL DoMemXfer(HTwain hTwain, LPBITMAPINFO lpBmpInfo, LPBYTE lpData, LPSCANDATA lpScanData);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
lpBmpInfo
????????? 指向一個BMP位圖的頭信息結構
lpData
????????? 指向存放DIB數據空間的指針
lpScanData
?????????? 保留
注解
進行數據傳送
14. BOOL GetDefaultDriverName(HTwain hTwain, char *chDrvName, LPCSTR lpszNameFilter/*=NULL*/);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
chDrvName
????????? 指向一個字符串,將返回掃描儀驅動程序名稱
lpszNameFilter
?????????? 保留
注解
得到默認的掃描儀驅動程序的名稱
15. BOOL GetFirstDriverName(HTwain hTwain, char *chDrvName, LPCSTR lpszNameFilter/*=NULL*/);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
chDrvName
????????? 指向一個字符串,將返回掃描儀驅動程序名稱
lpszNameFilter
?????????? 保留
注解
得到第一個掃描儀驅動程序的名稱
16. BOOL GetNextDriverName)(HTwain hTwain, char *chDrvName, LPCSTR lpszNameFilter/*=NULL*/);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
chDrvName
????????? 指向一個字符串,將返回掃描儀驅動程序名稱
lpszNameFilter
?????????? 保留
注解
得到下一個掃描儀驅動程序的名稱
17. BOOL GetCapImageType(HTwain hTwain, int &type);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
&type
????????? 將返回影像類型
?
注解
得到影像類型
TWPT_BW???????? 黑白
TWPT_GRAY??? 灰度
TWPT_RGB??????? 彩色
18. BOOL SetCapImageType(HTwain hTwain, int type);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
type
???? ?????影像類型
?
注解
設置掃描的影像類型
TWPT_BW???????? 黑白
TWPT_GRAY??? 灰度
TWPT_RGB??????? 彩色
19. BOOL GetResRange(HTwain hTwain, int &tmin,int &tmax);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
&tmin
????????? 返回一個最小的分辨率
&tmax
?????????? 返回一個最大的分辨率
注解
得到掃描儀的掃描分辨率的范圍
20. BOOL SetCapXRes(HTwain hTwain, int res);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
res
????????? 掃描分辨率
注解
設置掃描儀橫向的掃描分辨率
21. BOOL SetCapYRes(HTwain hTwain, int res);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
res
????????? 掃描分辨率
注解
設置掃描儀縱向的掃描分辨率
22. BOOL GetScaleRange(HTwain hTwain, double &tmin,double &tmax);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
&tmin
????????? 返回一個最小的縮放比例
&tmax
?????????? 返回一個最大的縮放比例
注解
得到影像所反比例的范圍
23. BOOL SetCapXScale(HTwain hTwain, float scale);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
scale
????????? 縮放比例
?
注解
設置影像橫向的縮放比例
24. BOOL SetCapYScale(HTwain hTwain, float scale);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
scale
????????? 縮放比例
?
注解
設置影像縱向的縮放比例
25. BOOL GetMaxScanArea(HTwain hTwain, float &tright,float &tbottom);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
&tright
????????? 返回一個最大掃描的寬度,單位英寸
&tbottom
?????????? 返回一個最大掃描的高度,單位英寸
注解
得到掃描儀的最大掃描范圍
26. BOOL SetScanSize(HTwain hTwain, float fLeft, float fTop, float fRight, float fBottom);
返回值
成功TRUE, 失敗FALSE
參數
?hTwain
????????? 掃描儀句柄
fLeft
????????? 掃描范圍的左邊界
fTop
???????? 掃描范圍的上邊界?
fRight
???????? 掃描范圍的右邊界
fBottom
???????? 掃描范圍的下邊界
注解
設置掃描范圍,單位英寸
27. TW_INT16 TwainFilter(HTwain hTwain, LPMSG lpMsg);
返回值
驅動程序返回的消息
MSG_XFERREADY:驅動程序已準備好進行數據傳輸
MSG_CLOSEDSREQ:
參數
?hTwain
????????? 掃描儀句柄
lpMsg
???????? 窗口消息
注解
將窗口消息傳遞給下層驅動程序,并返回狀態值。
五.? ImageRWSB.dll 接口說明(略)
(完)
總結
以上是生活随笔為你收集整理的明基扫描仪二次开发包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php gearman 定时任务,php
- 下一篇: 全民奇迹修复云服务器跨服,传送受限攻防逆