A colorized data storage scheme for printing on paper.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



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.