6

我想用python编写程序,它可以从扫描仪获取输入并保存为jpg。我不知道如何开始。请帮忙。

4

4 回答 4

7

六年过去了,我今天来到这里寻找同一个问题的答案。

不幸的是,当前接受的答案中的 Pysane 和 python-imagescanner 不再有效,但经过进一步搜索后,我发现libinsane现在似乎是一个更好的选择。

于 2020-02-26T21:47:00.653 回答
4

在 Windows 中,您要查看的模块称为Python TWAIN 模块,而在 Linux(我认为是 Mac)中,您应该查看pysane

现在我正在研究这个,看起来有一个名为python-imagescanner的项目试图将这两种方法包装到一个公共库中,

来自 imagescanner 的文档

Getting access to a scanner device:

 from imagescanner import ImageScanner

 # instantiate the imagescanner obj 
 iscanner = ImageScanner()

 # get all available devices
 scanners = iscanner.list_scanners()

 # choose one of the devices
 scanner = scanners[0]

 # scan your file (returns a PIL object)
 scanner.scan()
于 2013-03-26T06:58:24.963 回答
0

在这里仅提及其他方法,以防有人需要具有少量代码的简单方法,否则您可以使用上面的@Marcelo 答案。

这个想法是使用Windows 传真和扫描来扫描文档。这是python中的代码。

import os
os.system("WFS")

它将为您打开 Windows 传真和扫描。现在您可以扫描您的文档了。

祝你好运!!

于 2021-07-17T15:20:02.423 回答
0

我也是,六年后搜索,我发现这个从 WIA 兼容的数码相机捕获图像真的很有帮助。它使用win32com.client.

它适用于我的扫描仪 Cannon DR-C240。

代码:

import win32com.client, time, os

WIA_COM = "WIA.CommonDialog"

WIA_DEVICE_UNSPECIFIED = 0
WIA_DEVICE_CAMERA = 2

WIA_INTENT_UNSPECIFIED = 0

WIA_BIAS_MIN_SIZE = 65536
WIA_BIAS_MAX_QUALITY = 65536

WIA_IMG_FORMAT_PNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"

WIA_COMMAND_TAKE_PICTURE="{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}"

def acquire_image_wia():
    wia = win32com.client.Dispatch(WIA_COM) # wia is a CommonDialog object
    dev = wia.ShowSelectDevice()
    for command in dev.Commands:
        if command.CommandID==WIA_COMMAND_TAKE_PICTURE:
            foo=dev.ExecuteCommand(WIA_COMMAND_TAKE_PICTURE)

    i=1
    for item in dev.Items:
        if i==dev.Items.Count:
            image=item.Transfer(WIA_IMG_FORMAT_PNG)
            break
        i=i+1

    fname = 'wia-test.png'
    if os.path.exists(fname):
        os.remove(fname)
    image.SaveFile(fname)

os.chdir("c:/temp")
acquire_image_wia()
于 2020-06-08T21:33:41.803 回答