我想用python编写程序,可以从扫描仪获取输入并保存为jpg。 我不知道如何开始。 请帮忙。
答案 0 :(得分:6)
六年过去了,我今天来到这里寻找相同问题的答案。
不幸的是,当前接受的答案中的Pysane和python-imagescanner不再处于活动状态,但是在进一步搜索之后,我发现libinsane如今似乎是一个更好的选择。
答案 1 :(得分:3)
在Windows中,您要查看的模块称为Python TWAIN module,而在Linux(我认为是Mac)中,您应该查看pysane。
现在我正在深入研究这个问题,看起来有一个名为python-imagescanner的项目试图将这两种方法包装到一个公共库中,
来自imagescanner的documentation
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()
答案 2 :(得分:0)
我也是,六年后搜寻,我发现这个Capturing an Image from a WIA-compatible Digital Camera确实很有帮助。它使用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()
答案 3 :(得分:0)
这里只是提到其他方法,以防有人需要代码很少的简单方法,否则您可以使用@Marcelo 的答案 above。
这个想法是使用 Windows Fax and Scan 来扫描文档。 这是python中的代码。
import os
os.system("WFS")
它将为您打开 Windows 传真和扫描。现在您可以扫描您的文档了。
祝你好运!!