双工模式下的pythontwain库从每个sid获取单独的映像

2024-05-13 20:50:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pythontwain库在双工模式下进行扫描,并从两边各取一幅图像。在

import twain
sm = twain.SourceManager(0)
ss = sm.OpenSource('Plustek MobileOffice D600')

ss.SetCapability( twain.CAP_DUPLEXENABLED, twain.TWTY_BOOL, True )
ss.RequestAcquire(0,0)
rv = ss.XferImageNatively()
if rv:
    (handle, count) = rv
    twain.DIBToBMFile(handle, 'image.bmp') 

代码只得到一个图像,但是在http://twainmodule.sourceforge.net/提供的库文档中,我不知道如何从中独立获取take图像。我知道这是可能的,因为我可以从一个封闭源代码库CLScan(http://www.commandlinescanning.com)获得一个演示。在

欢迎提出任何建议。在


Tags: 图像importhttp模式sssmhandlerv
1条回答
网友
1楼 · 发布于 2024-05-13 20:50:31

我在GitHub上找到了示例代码TwainBackend.py。可以使用循环保存所有可用图像:

import twain

index = 0;

def next(ss):
    try:
        print ss.GetImageInfo()
        return True
    except:
        return False

def capture(ss):
    global index
    rv = ss.XferImageNatively()
    fileName = str(index) + '_image.bmp';
    index+=1;
    print rv;
    if rv:
        (handle, count) = rv
        twain.DIBToBMFile(handle, fileName) 

sm = twain.SourceManager(0)
ss = sm.OpenSource('Plustek MobileOffice D600')

try:    
    ss.SetCapability( twain.CAP_DUPLEXENABLED, twain.TWTY_BOOL, True)
except:
    print "Could not set duplex to True"

print "acquire image"
ss.RequestAcquire(0,0)

while next(ss):
    capture(ss)

print('Done')

相关问题 更多 >