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()

Другие вопросы по тегам