为什么在协商 Twain 会话时设置 PixelType 不起作用?

Mar*_*cki 4 .net twain image-scanner

我正在尝试以编程方式指定 TWAIN 会话中的扫描设置。因为这里的代码量很大,所以我将尝试在不粘贴整个代码的情况下解释问题。我希望有擅长 TWAIN 的人来帮助我......

为了进行扫描设置,我使用对本机 Twain 库的低级调用。扫描仪是HP Scanjet 7000。目前我一直在设置颜色和位深度选项。重要的是我在使用另外两台扫描仪时没有遇到任何问题。只是这个模型。

根据设置ICAP_BITDEPTH(第480页)之前的规范,我需要设置ICAP_PIXELTYPE(535)。所以首先我要求提供支持的 PixelTypes 列表...它们是 TWPT_BW(黑白)、TWPT_GRAY(灰色)和 TWPT_RGB(RGB)。因为我想要获得黑白扫描,所以我尝试将此功能设置为 TWPT_BW。这会导致错误,我不明白为什么。正如我在另外两个模型中所说的,这是有效的。

该扫描仪是否可能不允许这样的设置功能?

TWAIN 规范: http://www.twain.org/docs/TWAIN_2_1_Spec.pdf

Mar*_*cki 5

这个问题原来是一个规格问题。看来 hp scanjet 扫描仪在设置 PixelType 时需要 TwainType.UInt16,而我将 TwainType.Int16 设置为第一个参数。感谢用户 AlexKak 我找到了这个问题的答案。 http://www.codeproject.com/KB/dotnet/twaindotnet.aspx?msg=1313293#xx1313293xx