使用 OS 工具扫描图像 Python 3
Use OS tools to scan in an image with Python 3
我正在使用 python 构建一个应用程序,它需要能够连接到扫描仪并处理来自结果 pdf/jpeg/whatever 的数据。我一直在尝试找到一种连接到扫描仪以请求扫描的方法,但没有真正的进展。
我查看了所有我能找到的选项,包括这个答案:I want to connect my program to image scanner
我发现的大多数解决方案都说你需要使用 pyTwain、pySane、Libinsane、python-imagescanner 或类似的东西,它们似乎都围绕着将 TWAIN 用于 Windows或 Linux 的 SANE。我有一个 printer/scanner 组合,但我找不到它的 TWAIN 驱动程序,因为它不是 'enterprise' 打印机,但即便如此我也不知道用户会拥有这个特定的打印机,所以我正在寻找更通用的解决方案。
让我感到困惑的是,我仍然可以通过使用 Windows 传真和扫描让扫描仪正常扫描,所以我觉得必须有办法让扫描仪接收到来自程序的扫描命令。
我真的不需要对扫描仪进行太多控制,只需“扫描图像并在此处保存文件 ___”即可。那么,有没有什么办法可以让 Windows 发送“扫描”命令并将输出保存到我可以访问的特定文件中?也许只是通过 os.system()
像命令一样使用? (基本上,如果windows能做到,难道我就用windows工具不行吗?)
通过 linux 执行此操作的方法也会有所帮助,但 Windows 10 是主要问题。
我不能只为 Windows 回答 Linux。
与扫描仪对话的通用方法是通过 Windows 图像采集。
在大多数情况下,扫描仪需要一些驱动程序支持,这通常可以通过 MsPaint 扫描(或者如果安装了传真扫描)轻松确认。
因此,首先检查 Windows 设备中包含的扫描仪,然后右键单击扫描或尝试在画图中进行扫描。
如果您看到此类消息,则表示客户端未启用通过 WIA 使用扫描仪,您将需要安装合适的 WIA 驱动程序。
一旦克服了这个障碍,您就可以使用 WIA-CMD-Scanner 应用程序尝试使用 https://github.com/nagimov/wia-cmd-scanner 将图像获取到文件中,它是一个 35 KB 的小编译 VB exe .
因此在我的测试中,该扫描仪仅 returns 全压板扫描 21.59 cm x 29.70 cm(使用此工具不会减少扫描区域。)注意它仅适用于第一台扫描仪,正如 Windows 所发现的(您需要修改针对特定型号的代码)。
适合我的命令 (YMMV)
wia-cmd-scanner.exe /w 0 /h 0 /dpi 300 /color RGB /format PNG /output .\scan.png
Scanning to file .\scan.png (dpi = 300, color mode 'RGB', output format 'PNG')
Scan finished in 27 seconds
自述文件中有设置日期/使用for循环的示例https://github.com/nagimov/wia-cmd-scanner#scripting-and-automation
我正在使用 python 构建一个应用程序,它需要能够连接到扫描仪并处理来自结果 pdf/jpeg/whatever 的数据。我一直在尝试找到一种连接到扫描仪以请求扫描的方法,但没有真正的进展。
我查看了所有我能找到的选项,包括这个答案:I want to connect my program to image scanner
我发现的大多数解决方案都说你需要使用 pyTwain、pySane、Libinsane、python-imagescanner 或类似的东西,它们似乎都围绕着将 TWAIN 用于 Windows或 Linux 的 SANE。我有一个 printer/scanner 组合,但我找不到它的 TWAIN 驱动程序,因为它不是 'enterprise' 打印机,但即便如此我也不知道用户会拥有这个特定的打印机,所以我正在寻找更通用的解决方案。
让我感到困惑的是,我仍然可以通过使用 Windows 传真和扫描让扫描仪正常扫描,所以我觉得必须有办法让扫描仪接收到来自程序的扫描命令。
我真的不需要对扫描仪进行太多控制,只需“扫描图像并在此处保存文件 ___”即可。那么,有没有什么办法可以让 Windows 发送“扫描”命令并将输出保存到我可以访问的特定文件中?也许只是通过 os.system()
像命令一样使用? (基本上,如果windows能做到,难道我就用windows工具不行吗?)
通过 linux 执行此操作的方法也会有所帮助,但 Windows 10 是主要问题。
我不能只为 Windows 回答 Linux。
与扫描仪对话的通用方法是通过 Windows 图像采集。
在大多数情况下,扫描仪需要一些驱动程序支持,这通常可以通过 MsPaint 扫描(或者如果安装了传真扫描)轻松确认。
因此,首先检查 Windows 设备中包含的扫描仪,然后右键单击扫描或尝试在画图中进行扫描。
如果您看到此类消息,则表示客户端未启用通过 WIA 使用扫描仪,您将需要安装合适的 WIA 驱动程序。
一旦克服了这个障碍,您就可以使用 WIA-CMD-Scanner 应用程序尝试使用 https://github.com/nagimov/wia-cmd-scanner 将图像获取到文件中,它是一个 35 KB 的小编译 VB exe .
因此在我的测试中,该扫描仪仅 returns 全压板扫描 21.59 cm x 29.70 cm(使用此工具不会减少扫描区域。)注意它仅适用于第一台扫描仪,正如 Windows 所发现的(您需要修改针对特定型号的代码)。
适合我的命令 (YMMV)
wia-cmd-scanner.exe /w 0 /h 0 /dpi 300 /color RGB /format PNG /output .\scan.png
Scanning to file .\scan.png (dpi = 300, color mode 'RGB', output format 'PNG')
Scan finished in 27 seconds
自述文件中有设置日期/使用for循环的示例https://github.com/nagimov/wia-cmd-scanner#scripting-and-automation