An combination of Twain and SANE API
- Python 2.6/2.7 (Windows)
- Python 2.6-3.4 (Linux)
- SANE API for Linux, Mac OS
- TWAIN API for Win32
- pyScanLib() - Main Class
- getScanners() - Return Scanner with Name
- setScanners(scannerName)
- setDPI(dpi)
- setScanArea(left,top,width,height) - For scanning selected Area size in Inches
- getScannerSize() - Return scanner size eg. (left, top, right, bottom)
- setPixelType("color") - bw (Black & White), gray and color
- scan() - Start Scanning
- closeScanner() - Unselect selected scanner
- close() - Destory connected API Class
- pixelToInch(pixel) - Convert Pixel(s) to Inch(es)
- cmToInch(cm) - Convert Centimeter(s) to Inch(es)
- inchTomm(inch) - Convert Inch(es) to Millimeter(s)
- mmToInch(mm) - Convert Millimeter(s) to Inch(es)
- Linux or Mac OS
- brew install sane-backends
- pip install python-sane
- Windows
- Download and install twain from TWAIN PyPI
from pyScanLib import pyScanLib
ls = pyScanLib() # load scanner library
devices = ls.getScanners()
ls.setScanner(devices[0])
ls.setDPI(300)
# A4 Example
ls.setScanArea(width=8.26,height=11.693) # (left,top,width,height) in inches
ls.setPixelType("color") # bw/gray/color
pil = ls.scan()
pil.show()
pil.save("scannedImage.jpg")
ls.closeScanner() # unselect selected scanner, set in setScanners()
ls.close() # Destory whole class
Check exampleUsage.py in repo
- Known to work on Linux (Python 3.4) Pull #1
- Known to work on Mac OS Pull #2
- Not tested on Linux by author, however work perfect on Windows.
- Implement scanPreview()
pyScanLib uses BSD 2-Clause License.