See https://en.wikipedia.org/wiki/Visual_cryptography to get the idea.
On Debian GNU/Linux you need libnetpbm-dev (and a C++ compiler, of course):
c++ -Wall -O3 -o visualcrypto visualcrypto.cc -lnetpbm
My program only can read PGM files. Therefore you run
visualcrypto -z 4444 -i example-code.pgm
and got 2 images: left_example-code.pgm and right_example_code.pgm:


