sane_control_option - не могу установить опцию
Я пытаюсь создать приложение, которое работает со сканером в Linux (я использую sane-backends). Сканер работает нормально; Я получаю изображение с помощью моего приложения, НО это не формат А4. Имеет разрешение 1696*3743. Я использовал sane_get_parametrs(), и получил это:
Формат кадра: 1
Последний кадр: 1
Байт на строку: 5088
Пиксель на строку: 1696
Линии: 3743
Глубина: 8
Вот почему я хочу настроить сканер, используя мое приложение. Когда я использовал sane_get_option_descriptor(), я получил следующие параметры:
- 12 - Устанавливает разрешение отсканированного изображения.
- 13 - Устанавливает горизонтальное разрешение отсканированного изображения.
- 14 - Устанавливает вертикальное разрешение отсканированного изображения.
- 44 - Верхнее левое x положение области сканирования.
- 45 - Верхняя левая y позиция области сканирования.
- 46 - Внизу справа x положение области сканирования.
- 47 - Внизу справа y положение области сканирования.
Используя sane_control_option(), я обнаружил, что опция номер 12 имеет разрешение 400 точек на дюйм, 13 имеет 200 точек на дюйм, а 14 имеет 320 точек на дюйм. Я изменил все на 400 точек на дюйм, проверил еще раз, и sane_control_option() сказал, что все опции имеют 400 точек на дюйм; Тем не менее, я получил изображение с тем же не форматом А4 =(. Я также пытался играть с параметром 44-47, я изменил область сканирования, но результат был снова и снова. Похоже, он показывает мне, что изменения приняты, но он на самом деле не принимал. Функция sane_control_option() всегда возвращает "хороший" статус. Итак, я запутался, и я буду признателен за любую помощь.
1 ответ
Я понял. Я вызываю sane_start() перед sane_control_option(). Следовательно, sane не принимает никаких опций после вызова sane_start. Сначала установите параметры, а затем вызовите sane_start()