📄 twainapi.h
字号:
typedef struct
{
int Version1;
int Version2;
char Manufacturer[34];
char ProductName[34];
} DSInfo;
extern "C" {
// 显示选择扫描仪对话框,用户选择扫描仪
// 这个函数不能在第一次扫描图象以后使用,否则会使后续的扫描无法进行
// 因为此函数会重新初始化Twain Manager
// hParentWnd: 父窗口句柄, 无法获得是可以设为 0
BOOL WINAPI TwainSelectSource(HWND hParentWnd);
// 选择指定名字的扫描仪,不存在时返回FALSE
// 可以用来判断所设扫描仪是否存在
// lpszScannerName, 扫描仪名字,一般与选择扫描仪对话框中显示的名字一致
// 完成后可以调用TwainGetDSInfo来获取扫描仪的详细信息
BOOL WINAPI TwainSelectSourceEx(HWND hParentWnd, char * lpszScannerName);
// rotate: 0正常, 1 顺时针90度, 2 180度, 3 逆时针90度
// invert: 0正常, 1 反色
// nType: 0 二值, 1 灰度, 2 彩色
// hParentWnd: 父窗口句柄, 无法获得是可以为 0
// nLeft,nTop, nWidth, nHeight坐标单位: 1/100英寸
// 如果nWidth或nHeight为零, 则使用Twain默认的大小和亮度
// 如果亮度太大或太小,使用twain默认的亮度。
// HP扫描仪有送纸器时大小设置无效
BOOL WINAPI TwainScanStart(HWND hParentWnd, int bTwainUI, int nType, int nResolution, int nBrightness, int nContrast,
int nLeft, int nTop, int nWidth, int nHeight,int Rotate,int invert);
// 设定使用的扫描仪名字,该函数设定的结果正确与否并不能马上知道,
// 在调用TwainScanStart后调用,只在第一次扫描图象时才能起作用。
// nOption=0 该扫描仪不存在则返回错误
// =1 扫描仪不存在时使用默认扫描仪
// =2 扫描仪不存在时弹出选择扫描仪对话框
// 该参数同时影响TwainSelectSourceEx的行为
// szScannerName[0]=0 取消选择,否则使扫描仪的产品名称,只要扫描仪名称中
// 包含lpszScannerName中指定的字符串即可。
BOOL WINAPI TwainSetSourceName(char * lpszScannerName,int nOption);
// Start和End之间可以多此调用扫描和探测纸张的函数
// 返回: TRUE 成功
BOOL WINAPI TwainScanImage(LPCSTR lpszImageFileName);
BOOL WINAPI TwainScanEnd(void);
// 仅在支持ADF的扫描仪上有效
// 每次扫描后,调用此函数。
// 如果ADF上仍有纸返回TRUE,没纸返回FALSE
BOOL WINAPI TwainHavePaper(void);
// ScanToBinary: 是否扫描成二值图象
// filter: 彩色图象时使用的虑色, 0为正常,1为虑红,2绿,3蓝
// option: 二值化方法(0-3)
// 此函数要在Start之后, 扫描之前调用
BOOL WINAPI TwainSetADVParameter(BOOL ScanToBinary,int filter,int Option);
// 从文件中获取图象, 也需要预先start, 旋转、反白、二值化参数都起作用
// 返回错误代码,0成功
int WINAPI ScanFromFile(LPCSTR lpszImageFileName, LPCSTR lpszSourceFileName);
// 获取扫描仪信息, 只有扫描完成或调用TwainSelectSourceEx后才能获得
BOOL WINAPI TwainGetDSInfo(DSInfo &);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -