【问题标题】:sane_control_option - can not set optionsane_control_option - 无法设置选项
【发布时间】:2016-07-20 05:14:45
【问题描述】:

我正在尝试制作一个适用于 Linux 上的扫描仪的应用程序(我正在使用 sane-backends)。扫描仪工作正常;我正在使用我的应用程序获取图像,但它不是 A4 格式。分辨率为 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 dpi,13 的分辨率为 200 dpi,14 的分辨率为 320 dpi。我全部改成 400 dpi,再次检查,sane_control_option() 说所有选项都有 400 dpi;但是,我得到了一个与 A4 格式相同的图像 =(。我也尝试使用 44-47 选项,我更改了扫描区域,但结果一次又一次地相同。看起来它向我表明接受了更改,但它实际上没有接受。函数 sane_control_option() 总是返回“好”状态。所以,我很困惑,我将不胜感激。

【问题讨论】:

    标签: c++ linux scanning sane


    【解决方案1】:

    我想通了。我在 sane_control_option() 之前调用 sane_start()。因此,sane 在调用 sane_start 后不接受任何选项。先设置选项,然后调用 sane_start()

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2021-11-23
      • 2018-09-12
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多