如何检查扫描仪支持的图像格式

How to check image formats supported by scanner?

本文关键字:支持 图像 格式 扫描仪 何检查 检查      更新时间:2023-10-16

我想通过TWAIN接口获得扫描仪支持的文件格式。有一个如何获得支持格式的例子:

GetCapability(ICAP_IMAGEFILEFORMAT, unTest);
CString strType;
strType.Format("Type Supported %dn", unTest);

但我想这里有问题,因为ICAP_IMAGEFILEFORMAT成员没有一点掩码:

#define TWFF_TIFF        0    /* Tagged Image File Format     */
#define TWFF_PICT        1    /* Macintosh PICT               */
#define TWFF_BMP         2    /* Windows Bitmap               */
#define TWFF_XBM         3
#define TWFF_JFIF        4    /* JPEG File Interchange Format */
#define TWFF_FPX         5    /* Flash Pix                    */
...

所以如果扫描仪支持TIFF、PICT、BMP&JFIF不可能在一个电话内返回这样的信息。

如何通过扫描仪获取支持的格式列表?

我相信你必须查询DS(例如,尝试设置你想要的值(,看看你想要的格式是否得到支持,然后根据结果,你可以构建列表或支持的格式。我认为这就是消息获取容器的方式,

TW_ONEVALUE—单个值,其当前值和默认值为重合。此类型的可用值的范围能力就是这个单一的价值。例如指示文档存在的能力进料器可以是这种类型。

规范的ICAP_IMAGEFILEFORMAT部分的描述似乎意味着你只能设置一个值,或者返回一个值:

应用

使用此ICAP可确定哪些格式可用于文件传输,并设置诸如ICAP_COMPRESSION之类的其他能力协商。请确保使用DG_CONTROL/DAT_SETUPFILEXFER/MSG_SET操作来指定用于特定采集的格式。

如果不支持,则返回TWRC_FAILURE/TWCC_CAPUNSUPPORTED。如果不支持Operation,则返回TWRC_FAILURE、TWCC_CAPBADOOPERATION。(请参见DG_CONTROL/DAT_CAPABILITY/MSG_QUERYSUPPORT(

无论如何,我可能会误解,但对我来说就是这样。

我认为在一个调用中获得所有支持的文件格式是可行的,因为"Container for MSG_GET"answers"Container of MSG_SET"都支持TW_ENUMERATION。