双工模式下的python-twain库从每一侧获得单独的图像

时间:2015-03-28 14:50:54

标签: python twain

我正在尝试使用双工模式下的python-twain库进行扫描,并从每一侧获取两个图像。

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/提供了库文档,我不知道如何从中获取独立的图像。我知道是可能的,因为我可以从一个密切的源库CLScan(http://www.commandlinescanning.com)获得一个演示。

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

我在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')