Сканирование нескольких страниц с использованием (py)twain

Вот мой код:

import twain
for i in range(10):
    twain.acquire(str(i) + ".jpg", ds_name=b"B110,192.168.1.112 TWAIN",
                  dpi=200, pixel_type='gray', bpp=8, show_ui=False)

Я предполагаю, что каждый acquire вызывает сканирование на сканер, но это не так.

Как я могу сканировать несколько страниц с помощью pytwain?

Спасибо


person Sagar B Hathwar    schedule 20.03.2017    source источник


Ответы (1)


def multiScan(self):
    """ Scan and return an array of PIL objects 
        If no images, will return an empty array
    """

    self.scanner.RequestAcquire(0, 1)
    images = []
    handles = []
    try:
        handle, more = self.scanner.XferImageNatively()
        handles.append(handle)
    except twain.excDSTransferCancelled:
        return []
    while more != 0:
        try:
            handle, more = self.scanner.XferImageNatively()
            handles.append(handle)
        except twain.excDSTransferCancelled:
            more = 0

    for handle in handles:
        images.append(Image.open(StringIO(twain.DIBToBMFile(handle))))
        twain.GlobalHandleFree(handle)

    return images

Вот как я это делаю в своем пакете: https://github.com/spacemudd/webagent-scanner/blob/master/pyScanLib/twainLib.py

person Shafiq al-Shaar    schedule 09.02.2018