2

我正在尝试制作一个适用于 Linux 上的扫描仪的应用程序(我正在使用理智的后端)。扫描仪工作正常;我正在使用我的应用程序获取图像,但它不是 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() 总是返回“好”状态。所以,我很困惑,我将不胜感激。

4

1 回答 1

1

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

于 2016-07-21T10:54:56.563 回答