# include“ltwrappr.h”
虚拟L_INTLTwain::FindFastConfig(pszWorkingFolder, uFlags, nBitsPerPixel, nBufferIteration, pInFastConfigs, nInFastConfigsCount, ppTestConfigs, pnTestConfigsCount, pOutBestConfig, uStructSize)
确定最佳扫描器配置。
该函数可在文档/医疗工具包。
字符串,包含保存测试图像的工作文件夹的路径。
控制用户界面的显示和函数操作的标志。可能取值为:
价值 | 意义 |
---|---|
LTWAIN_SHOW_USER_INTERFACE | [0x0001]显示制造商的用户界面为非模态。 |
LTWAIN_MODAL_USER_INTERFACE | [0x0002]以模态对话框的形式显示制造商的用户界面。只有设置了LTWAIN_SHOW_USER_INTERFACE标志才有效。 |
LTWAIN_USE_THREAD_MODE | [0x0008]使用快速线程模式。 |
LTWAIN_CHECK_ALL_DEFAULT_BPP | [0x0010]测试所有支持的BPP。 |
LTWAIN_KEEPOPEN | [0x0020]扫描后保持TWAIN数据源打开。 |
LTWAIN_SUPPRESS_MESSAGE_BOXES | [0x0100]禁止在制造商的用户界面对话框之前显示的消息框 |
结果文件的像素深度。注意,并不是所有的像素位都适用于所有的文件格式。有效值请参见输出文件格式.如果nBitsPerPixel为0,文件将使用该格式支持的最接近的每像素位值存储。
此值用于确定将测试的内存配置的数量。该参数的最大值为10。
指向FASTCONFIG结构,该结构包含要测试的扫描配置数组。传递NULL以测试默认的扫描配置。
pInFastConfigs中引用的扫描配置的个数。通过0测试默认扫描配置。
指针的地址FASTCONFIG结构。该函数将使用测试配置的总数自动分配FASTCONFIG结构数组。
指向要用测试配置的数量更新的整数变量的指针。
指向FASTCONFIG结构将更新为扫描器的最佳配置。
属性的大小FASTCONFIG结构,以字节为单位,用于版本控制。使用sizeof (FASTCONFIG)。
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
此函数将测试调用所选扫描仪的扫描配置LTwain: SelectSource.它将用测试的最佳扫描配置更新pOutBestConfig参数。一旦确定了最佳扫描配置,就可以传递给传输模式、每像素位、格式和缓冲区大小的扫描配置值LTwain: AcquireMulti或LTwain: FastAcquire这样图像就能尽快被扫描。
如果要测试用户定义/自定义配置,需要将这些配置传递到pinfastconfigconfigcount中,并将配置数量传递到nInFastConfigsCount中。
要测试TWAIN驱动程序可用的默认配置,pInFastConfigs为NULL, nInFastConfigsCount为0。在这种情况下,该函数将基于传入nBitsPerPixel和nBufferIteration参数的值测试扫描配置。
属性可以缩短要测试的默认扫描配置列表LTwain: GetScanConfigs函数获取基于传输模式、每像素位和缓冲区数量的默认扫描配置列表。然后可以将该列表传递给LTwain::FindFastConfig,以确定最佳和最快的扫描配置。
如果在uFlags中设置了LTWAIN_CHECK_ALL_DEFAULT_BPP,那么该函数将测试所选扫描仪的每像素支持的所有位。如果这个标志没有在uFlags中设置,那么函数将使用iBitsPerPixel参数值。
如果在uFlags中设置了LTWAIN_USE_THREAD_MODE,那么图像采集过程将以线程模式运行。在某些扫描仪中,在线程中获取图像将提高获取图像的速度。在其他扫描器(例如高速扫描器)中,以线程模式获取图像将对获取图像的速度提供很少或没有改善。
只有当测试的扫描配置的传输模式是LTWAIN_BUFFER_MODE或LTWAIN_NATIVE_MODE时,才会使用nBitsPerPixel参数和LTWAIN_CHECK_ALL_DEFAULT_BPP标志。
只有当测试的扫描配置的传输模式是LTWAIN_BUFFER_MODE时,才会使用nBufferIteration参数。
如果你重写LTwain: FindFastConfigCallBack函数,则可以通过为回调函数返回除SUCCESS之外的任何值来停止扫描配置测试过程。通过为回调函数返回SUCCESS继续测试过程。
这个函数在ppTestConfigs中为扫描配置数组分配存储空间。当不再需要该存储时,通过调用释放该存储LTwain: FreeScanConfig.
LTWAIN_KEEPOPEN标志只在以下情况下有效:
此函数在运行时显示一些助手消息框,指导用户完成正在运行的测试。为了抑制这些消息,传递LTWAIN_SUPPRESS_MESSAGE_BOXES标志,这些消息将停止出现。
必需的dll和库
//通过LTwain::InitSession初始化会话并调用该函数
CMyTwain::FindFastConfigCallBack(pFASTCONFIG pResConfig)
{
L_TCHAR szBuffer [MAX_PATH];
如果(pResConfig - > bSuccess)
{
memset (szBuffer 0运算符(szBuffer));
wsprintf (szBuffer文本("传输模式= %d\n文件格式= %d\n缓冲区大小= %d\n所需时间= %d\n"),
pResConfig - > uTransferMode,
pResConfig - > nFileFormat,
pResConfig - > ulBufferSize,
pResConfig - > uTime);
消息框(NULL, szBuffer, TEXT(“结果扫描配置…”), MB_OK);
}
其他的
对话框(NULL,文本("测试配置失败"),文本(“错误!”), MB_OK);
返回成功;
}
L_INT LTwain__FindFastConfigExample(HWND HWND, CMyTwain *MyClass)
{
L_INT nRet;
pFASTCONFIG pTestConfigs = NULL;
L_INT nTestConfigsCount = 0;
pFASTCONFIG pFASTCONFIG =零;
L_INT nFastConfigCount;
FASTCONFIG BestConfig;
L_TCHAR szBuffer [MAX_PATH];
MyClass - > EnableCallBack(真正的);
nRet = MyClass->GetScanConfigs (1, LTWAIN_BUFFER_MODE, 5, &pFastConfig,运算符(FASTCONFIG) &nFastConfigCount);
如果(nRet != SUCCESS)
{
对话框(hWnd,文本("获取内存传输模式的扫描配置时发生错误!!"),文本(“错误! !”), MB_OK);
返回nRet;
}
memset (&BestConfig 0运算符(FASTCONFIG));
nRet = MyClass->FindFastConfig(MAKE_IMAGE_PATH(TEXT("")),
LTWAIN_SHOW_USER_INTERFACE,
1,
5,
pFastConfig nFastConfigCount,
&pTestConfigs,
&nTestConfigsCount,
&BestConfig,运算符(FASTCONFIG));
如果(nRet == SUCCESS)
{
对话框(hWnd,文本("LTwain::FindFastConfig函数成功。"),文本(“通知”), MB_OK);
memset (szBuffer 0运算符(szBuffer));
wsprintf (szBuffer文本("传输模式= %d\n文件格式= %d\n缓冲区大小= %d\n所需时间= %d\n"),
BestConfig.uTransferMode,
BestConfig.nFileFormat,
BestConfig.ulBufferSize,
BestConfig.uTime);
消息框(hWnd, szBuffer, TEXT(“最佳扫描配置…”), MB_OK);
MyClass - > FreeScanConfig (&pTestConfigs nTestConfigsCount);
}
其他的
{
对话框(hWnd,文本(" L_TwainFindFastConfig函数出错!!"),文本(“错误! !”), MB_OK);
返回nRet;
}
nRet = MyClass->FreeScanConfig(&pFastConfig, nFastConfigCount);
如果(nRet != SUCCESS)
返回nRet;
返回成功;
}