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.

1.5 KiB


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.


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.


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.