I'm trying to specify programmatically settings for scanning in TWAIN session. Because amount of code here would be significant I'm going to try to explain开发者_运维知识库 the problem without pasting the entire code. I hope there's someone good at TWAIN to help me....
To do scanning settings I'm using lowlevel calls to native Twain library. The scanner is HP Scanjet 7000. At the moment I'm stuck with setting colour and bit depth options. What is important I haven't had any problems with two other scanners. just this model.
According to the specification before setting ICAP_BITDEPTH (page 480) I need to set ICAP_PIXELTYPE (535). So first I'm asking for the list of supported PixelTypes... And they are TWPT_BW (Black&White), TWPT_GRAY (Gray) and TWPT_RGB (RGB). Since I want to get black&white scans I'm trying to set this capabilityt to TWPT_BW. This results in an error and I don't understand why. As I said in two other models this is working.
Is it possible that this scanner disallows setting capabilities like this?
TWAIN Specification: http://www.twain.org/docs/TWAIN_2_1_Spec.pdf
This problem turned out to be a specification issue. It appears that hp scanjet scanners when setting PixelType they require TwainType.UInt16 and I was setting TwainType.Int16 as the first parameter. Thank you to user AlexKak I found the answer to this problem. http://www.codeproject.com/KB/dotnet/twaindotnet.aspx?msg=1313293#xx1313293xx
精彩评论