Как проверить форматы изображений, поддерживаемые сканером? - PullRequest
1 голос
/ 31 августа 2011

Я хотел бы получить форматы файлов, поддерживаемые сканером через интерфейс TWAIN. Существует пример как получить поддерживаемые форматы:

GetCapability(ICAP_IMAGEFILEFORMAT, unTest);
CString strType;
strType.Format("Type Supported %d\n", 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, невозможно вернуть такую ​​информацию в течение одного вызова.

Как я могу получить список поддерживаемых форматов по сканеру?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Я думаю, что получение всех поддерживаемых форматов файлов за один вызов выполнимо, так как «Контейнер для MSG_GET» и «Контейнер для MSG_SET» поддерживают TW_ENUMERATION.

1 голос
/ 03 октября 2011

Я полагаю, что вам придется запросить DS (например, попытаться установить желаемое значение), чтобы узнать, поддерживается ли нужный формат, а затем на основе результатов вы можете построить список или поддерживаемые форматы.Я думаю, что это так, как контейнер msgget,

TW_ONEVALUE - одно значение, чьи текущие значения и значения по умолчанию совпадают.Диапазон доступных значений для этого типа возможностей - это просто это единственное значение.Например, возможность, которая указывает на наличие податчика документов, может относиться к этому типу.

, а описание в разделе спецификации ICAP_IMAGEFILEFORMAT, по-видимому, подразумевает, что вы сможете установить только одно значениеили верните одно значение:

Приложение

Используйте этот ICAP, чтобы определить, какие форматы доступны для передачи файлов, и установить контекст для других согласований возможностей, таких как ICAP_COMPRESSION.Обязательно используйте операцию DG_CONTROL / DAT_SETUPFILEXFER / MSG_SET, чтобы указать формат, который будет использоваться для конкретного захвата.

Источник

Если не поддерживается, верните TWRC_FAILURE / TWCC_CAPUNSUPPORTED.Если операция не поддерживается, верните TWRC_FAILURE, TWCC_CAPBADOPERATION.(См. DG_CONTROL / DAT_CAPABILITY / MSG_QUERYSUPPORT)

В любом случае, я могу неправильно истолковать, но мне это кажется.

...