Skip to main content

wia_scan 0.7.1

Project description


wia_scan
wia_scan

wia_scan on PyPI wia_scan PyPI License Coverage Status

InstallationUsageLicense

Introduction

A simple utility for using document scanners that support Windows Image Acquisition (WIA) and is easy to install. If your scanner works using Windows Fax and Scan, there is a good chance it will work with this python script. This package allows you to create your own efficient scanning loop or use the one the one already provided.

Use cases:

  • You have a flatbed scanner, and you need to scan a lot of documents, thus you don't want to use Windows Fax and Scan tool as it can introduce quite some overhead. This utility allows you to only press a few keystrokes in between scans, while you may need to turn the page or change the paper since you don't have an automatic feeding scanner like I don't.
  • Support scanners in your own application on Windows using a simple Python dependency

The utility supports a simple calibration process which is fully visual. The reason for this process is that my scanner's default brightness (corresponding to brightness=0) is too bright.

Alternatives: Existing WIA libraries, but to my surprise the ones I found required quite old versions of Python, which I didn't want since I wanted to combine the scanning process with some modern Python packages.

Installation

Requirements:

  • Windows
  • Python ≥ 3.7

wia_scan can be installed from the package repository by running

pip install wia_scan

Alternative: From Source

Download the source code in this repository and install flit using pip install flit and run the following command from the source folder

flit install

Usage

Scan Many Documents

The main use case of this utility is to scan many documents using a few key presses, this can be achieved by running

wia_scan many

During the process, the utility will ask you beforehand which quality profile should be used for the next scan, and multiple sides can be combined into a single picture.

Command Line Interface

  wia_scan list_devices [-v]
  wia_scan single [--file=<output_file>] [--dpi=<dpi>] [--brightness=<brightness>]
                  [--contrast=<contrast>] [--mode=<mode>] [-v] [--uid=<uid>] [-q]
  wia_scan many [--out=<output_folder>] [--brightness=<brightness>] [--contrast=<contrast>] [-v]
  wia_scan calibrate brightness [--start=<start_range>] [--end=<end_range>]
                [--num_runs=<num_runs>] [--out=<output_folder>] [--uid=<uid>] [-q]
  wia_scan --help
  wia_scan --version

Options:
  -h --help                    Show this screen.
  --version                    Show version.
  -v --verbose                 Verbose output
  -q --quiet                   Quiet=no output
  --dpi=<dpi>                  Dots per inch; the higher this setting the higher the
                               output resolution [default: 200]
  --brightness=<brightness>    Brightness setting for the scanner, goes from -1000 to
                               1000 [default: 0]
  --contrast=<contrast>        Contrast setting for the scanner, goes from -1000
                               to 1000 [default: 0]
  --mode=<mode>                RGB for colored, L for grayscale [default: RGB]
  --file=<output_file>         Image output file
  --out=<output_folder>        Scanned images output folder [default: .]
  --start=<start_range>        Lowest value of brightness scanned [default: -200]
  --end=<end_range>            Highest value of brightness scanned [default: 200]
  --num_runs=<num_runs>        Number of scans for the "calibration" process [default: 9]

Library Usage - Custom Loop

Example: Create your own python file custom_loop.py and scan many single sided documents from the same scanner while waiting for a single key press between scans:

from wia_scan import *

device = prompt_choose_device_and_connect()
for i in range(1000000):
    press_any_key_to_continue()
    pillow_image = scan_side(device=device, scan_profile=DEFAULT_SCAN_PROFILE)
    filename = f'{i}.jpeg'
    pillow_image.save(filename, subsampling=0, optimize=True,
             progressive=True, quality=80)

License

wia_scan is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wia_scan-0.7.1.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

wia_scan-0.7.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file wia_scan-0.7.1.tar.gz.

File metadata

  • Download URL: wia_scan-0.7.1.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for wia_scan-0.7.1.tar.gz
Algorithm Hash digest
SHA256 cc4218986e7d5e1c84f55bb4ac5e914654932d174a80b0f5b1393e5740bf1ac5
MD5 126a837239dadf6b5a7e196df426997a
BLAKE2b-256 89e0f901f7eabfe4b07749bdd314beaa04cef9a77b00e559edbc87535e13ace3

See more details on using hashes here.

File details

Details for the file wia_scan-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: wia_scan-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for wia_scan-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dc5a5febbf8af426f6afc3ca8c8a7ddb1f1ed8a2699f34192513b7aad550f5fd
MD5 b8cb48188276bac4b7fb59621160b762
BLAKE2b-256 8a55e6b9d8da21e4976e0b8573e96d8fe8a958247ee9fd3e575cbaf5085e3284

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page