An ordinary PNG. An unexpected possibility.
A picture with
something more
inside.
A private message. A file. A filled-out form.
Put it inside a picture, and let the picture carry it.
Anyone can see the image. Open it with Piculum and the password to discover what’s inside.
In your browser. No account. No upload.

worth finding.
There’s a message in this picture.
Try the demo password: sunrise
Real encrypted data. Decoded here, on your device.
Picture unlocked
Decoded contents from this image
This message was read from the postcard’s pixels using the password you entered.
The picture is the package
Design once. Fill it again and again.
Define the layers.
Choose a picture and paint its layers: the areas that will hold data. Define what each layer holds, including any typed fields, and save the template.
Fill in the data.
You or someone else opens the template and enters the content for its layers. Use the same design to make as many different records as you need.
Encode and save.
Choose the passwords, encode the data into the picture, and save the resulting PNG. Keep it or send the original file to someone else.
Open and read.
Open the saved PNG in Piculum and enter the passwords to read its data. Any image viewer can still display the picture.
Send the file, not a screenshot. The data depends on exact pixels. Resizing or recompressing the image can destroy it. Keep the original PNG and your password; there’s no password recovery.
When you want to go further
Draw a form.
Keep the whole record.
Paint typed fields onto a picture once. Fill the template again and again. Each filled copy carries its own structured data, ready for Piculum to read.
Explore reusable templates →For the builders
The same idea, in your code.
The codec runs in browsers and Node. Build it into your own tools, with no API key required for the library.
npm install piculumGive your next picture something to carry.