明基扫描仪二次开发包
使用说明
明基电通信息技术有限公司·营销总部
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 接口说明(略)
(完)