Skip to main content

Smart shrinking of the size and color palette of images

Project description


![GitHub stars](
![Docker build](
![Travis build](
![Package version](

This Repo packages up the work from [Mark Zucker]( into a python module and cli script

Convert scans of handwritten notes to beautiful, compact *PDFs* [see full writeup](

Note this package does not convert to PDF as the original module relies on ImageMagick, this is very easy to implement yourself.

These examples use the default settings in the Python module.

Original | NoteShrunk
**Size: 1.4MB**![Original example 1](Examples/Input/us_tax_form_1937.jpg?raw=true "Original US Tax return form from 1937") | **Size: 516KB**![NoteShunk example 1](Examples/Output/us_tax_form_1937.png?raw=true "NoteShrunk US Tax return form from 1937")
**Size: 73KB**![Original example 2](Examples/Input/winston_churchhill_letter.jpg?raw=true "Original letter from Winston Churchhill") | **Size: 51KB**![NoteShunk example 2](Examples/Output/winston_churchhill_letter.png?raw=true "NoteShrunk letter from Winston Churchhill")
**Size: 132KB**![Original example 3](Examples/Input/Restraint_of_domestic_animals.jpg?raw=true "Original page from 'Restraint of domestic animals'")| **Size: 109KB**![NoteShunk example 3](Examples/Output/Restraint_of_domestic_animals.png?raw=true "NoteShrunk page from 'Restraint of domestic animals'")


- Python 2 or 3
- NumPy 1.10 or later
- SciPy
- Image module from PIL or Pillow


**Ensure you have Numpy, SciPy and PIL installed:**

pip install numpy scipy pillow

pip install NoteShrinker


docker run -v $PWD/Examples/Input:/imgs challisa/noteshrinker /imgs/us_tax_form_1937.jpg -w

**Command line**
note-shrinker IMAGE1 [IMAGE2 ...]

**Integrating into your Python scripts**

from NoteShrinker import NoteShrinker

# Create a NoteShrink object full of images, either an array of filepaths, PIL images or numpy arrays
ns = NoteShrinker(['test.png'], **args)

# Shrink the images by calling the shrink method, this returns an array of PIL images encoded as RGB
shrunk = ns.shrink()

# Carry on with your image processing...
for img in shrunk:'example.png')

Project details

Download files

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

Files for NoteShrinker, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size NoteShrinker-0.2.0-py3-none-any.whl (9.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size NoteShrinker-0.2.0.tar.gz (6.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page