You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Justin Bass 233216dc92 Bug-fixes to add and fix tests. Decoding greatly improved. 4 years ago
colorsafe Bug-fixes to add and fix tests. Decoding greatly improved. 4 years ago
docs Bug-fixes to add and fix tests. Decoding greatly improved. 4 years ago
images Working decoding for scanned colordepth 1 images, slightly messy. 5 years ago
test Bug-fixes to add and fix tests. Decoding greatly improved. 4 years ago
.gitignore End to end tests, configurable output directory, fix bounds 4 years ago
LICENSE Initial commit 5 years ago
README.md Bug-fixes to add and fix tests. Decoding greatly improved. 4 years ago
setup.cfg Pypi initial config 5 years ago
setup.py Add constants, exceptions, and utils files 4 years ago

README.md

ColorSafe

A data matrix scheme for printing on paper and microfilm. Inspired by PaperBak, ColorSafe is written in Python and has a flexible specification. It aims to allow a few Megabytes of data (or more) to be stored on printable media for a worst case scenario backup, for extremely long-term archiving, or just for fun. With best practices, ColorSafe encoded data can safely withstand the vicissitudes of technology changes over long periods of time.

Examples

ColorSafe encoded data with default black and white settings looks like this:

Color depth 1

With a color depth of 2 (Cyan, Magenta, Yellow, White) it looks like this:

Color depth 2

With a color depth of 3 (Black, Red, Green, Yellow, Blue, Magenta, Cyan, White) it looks like this:

Color depth 3

Check out the images folder to see sample images of full pages.

Usage

To install:

pip install colorsafe

To encode a file with default settings, e.g. 100dpi:

colorsafe encode input.txt

This generates a single pdf and multiple png files with the black and white data matrices, which can then be printed and stored.

To decode, scan the images back at 3x resolution, e.g. 300dpi, and run decoding:

colorsafe decode scan_page0.bmp scan_page1.bmp

Which outputs the data on the given pages.

Try the argument -c 2 or 3 for colorized encoding and decoding modes.