简易扫描仪访问(SANE)是用于控制扫描仪和照相机的应用程序编程接口(API)。在使用中,命令行应用程序scanimage可用于快速可靠地发送扫描程序命令以执行许多有用的功能。
这是充分利用SANE来扫描文档和照片的方法。
立即行动起来
可以使用程序包管理器来安装API。例如,在Debian系统中:
sudo apt install sane
…安装SANE API并提供命令行应用程序scanimage。(它还安装了前端工具xscanimage,scanadf和xcam)。运行以下命令将显示所有可用选项:
scanimage -h
现在,请务必注意,您可以在同一命令行中同时发送API命令和特定于扫描仪的命令。此外,-h的输出可能会有些混乱,这是因为API选项和扫描程序选项都只是以串联的方式打印到终端上。
如果未检测到扫描仪,则只会获得API选项。如果检测到扫描仪,则在检索扫描仪设备的信息,将其发送到API并进行格式化时,您可能会遇到明显的时间延迟。该命令似乎停顿了,但是只需等待它就可以完成。
提到过,如果只需要设备选项(扫描仪本身的“后端”选项),则可以使用-A选项:
scanimage -A
请注意,本文以SANE版本1.0.14-15为例。您的特定版本可能会有所不同,并且选项也有所不同。如有疑问,只需使用-h选项运行scanimage 。
当然,每个扫描仪都有自己特定的一组可能的选项,因此,请务必尝试使用各种方法来优化您发送的命令,以获得最佳结果。
简单的SANE命令
是的,简单和简单是我们所有人想要的。您必须从某处开始,可以用来扫描某些内容的最简单的命令是:
scanimage > scan_out
如果API检测到您的扫描仪,则此方法将起作用。在这种情况下,输出将直接发送到标准输出,然后重定向到文件scan_out。图像格式默认值为PNM,模式默认值(例如,线条,单色或彩色)由扫描仪确定。如果未检测到扫描仪,您将获得以下输出(或类似输出):
scanimage: no SANE devices found
您还将收到有关未设置输出格式的参考消息。这仅仅是因为图像格式默认为pnm。可以将其更改为TIFF,PNG或JPEG。
Output format is not set, using pnm as a default.
指定输出文件
可以使用>将标准输出重定向到文件,也可以发出显式选项来指定输出文件的名称和完整路径,例如:
scanimage -o scan_out.png
在这种情况下,API将输出PNG格式的图片。
列出和使用设备
是否要确保您的扫描仪被SANE检测到?运行以下命令:
scanimage -L
它将列出所有检测到的设备。如果单个设备同时连接了LAN和USB连接,它将在单独的行中列出它们。
例如,爱普生WorkForce WF-3640可能会像这样列出:
device `epson2:net:192.168.1.26' is a Epson PID 08B8 flatbed scanner
device `epson2:libusb:001:005' is a Epson PID 08B8 flatbed scanner
在这种情况下,您可以将其用作发送和接收数据的地址:
scanimage -d epson2:net:192.168.1.26 -o scan_out.png
或者
scanimage -d epson2:libusb:001:005 -o scan_out.png
请注意,如果您在另一个端口上拔下USB插头并重新连接,则USB地址将更改。在这种情况下,您需要确保您的设备地址与新列出的设备地址相同。
设置不同的图像格式
如果要使用其他图像格式,可以发出相同的命令,如下所示:
scanimage -o scan_out.tiff
SANE将尝试根据文件扩展名猜测格式。也可以使用以下方式显式设置格式:
scanimage --format=tiff -o scan_out.tiff
甚至这个:
scanimage --format=tiff > scan_out
批处理命令
那么,您还能从API中得到什么呢?您将获得以下内容:批处理命令,用于控制自动文档进纸器(ADF)以按顺序扫描页面。
尽管扫描仪可能仅产生图像格式,但也可以通过光学字符识别(OCR)应用程序(例如gocr)将其转换为文本。
请注意,为了生成合理详细的文档以进行文档保存或OCR转换,您可能必须发送特定于扫描仪的命令。这些将在下面说明。
批处理示例
您将根据最终结果的目的使用不同的格式。例如,如果您打算使用的OCR应用程序仅接受PNM图像,则您的图像文件格式应为PNM。
这是发送命令扫描打印文本页面以便由接受pnm图像的OCR应用程序进行转换的示例。在此命令中,特定于扫描仪的命令是–mode,–resolution和–source:
scanimage --batch=document-A-%d.pnm --format=pnm --batch-count=1 --mode Lineart --resolution 1200 --source Automatic
由于这些是扫描仪命令,而不是SANE API,因此它们会因品牌和型号而有所不同,可能需要进行一些实验。例如,以下代码段从后端的帮助输出中可能并不明显:
--source Automatic
用SANE扫描
无论您是拥有一堆旧家庭文件还是专业的保管人,使用SANE API进行扫描对于那些可以承受扫描仪和ADF严格机械要求的介质来说都是一个明显的选择。
将SANE API的功能与图像后处理或OCR应用程序结合使用,您可以将几乎所有值得保留的平面媒体数字化。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun44394.html