python twain 扫描
阅读原文时间:2023年07月11日阅读:2

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

import twain

sm = twain.SourceManager(0)
ss = sm.OpenSource()

for i in range(3): //for ex. 3 documents in the scanner device
ss.RequestAcquire(0,0)
rv = ss.XferImageNatively()
if rv:
(handle, count) = rv
twain.DIBToBMFile(handle, '{i}.bmp'.format(i))

import twain

sm = twain.SourceManager(0)
sm.SetCallback(onTwainEvent)
ss = sm.OpenSource()
index = 0

for i in range(3): //for ex. 3 documents in the scanner device
ss.RequestAcquire(0,0)

def onTwainEvent(event):
if event == twain.MSG_XFERREADY:
saveImage()

def saveImage():
rv = ss.XferImageNatively()
if rv:
(handle, count) = rv
twain.DIBToBMFile(handle, '{index}.bmp'.format(index))
index += 1

import twain
sm = twain.SourceManager(0)
ss = sm.OpenSource()
ss.RequestAcquire(0,0)
rv = ss.XferImageNatively()
if rv:
(handle, count) = rv
twain.DIBToBMFile(handle, 'image.bmp')

1、降低扫描分辨率、能用灰度就不用彩色、能用24位彩色就不用32位彩色

2、使用自动进纸器 3、采用高压缩比的图像格式,能用jpg就不用tiff,能用tiff就不用bmp Source.GetCapabilityDefault(CapabilityCode) Source.GetCapability(CapabilityCode) Source.GetCapabilityCurrent(CapabilityCode) Source.SetCapability(CapabilityCode) Source.ResetCapability(CapabilityCode) Source.GetImageInfo():返回XResolution, YResolution, ImageWidth, ImageLength, SamplesPerPixel, BitsPerSample, BitsPerPixel, Planar, PixelType, Compression Source.GetImageLayout():返回((left, top, right, bottom) document_number, page_number, frame_number)

One of the CAP_* (Generic Capabilities), ICAP_ (Image Capabilities)

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章