求教高手:怎么用TWAIN来控制扫描仪
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教高手:怎么用TWAIN来控制扫描仪相关的知识,希望对你有一定的参考价值。
参考技术A 你的设备要支持TWAIN协议才可以python twain 扫描
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)
以上是关于求教高手:怎么用TWAIN来控制扫描仪的主要内容,如果未能解决你的问题,请参考以下文章