Home

Awesome

pdvrdt

Use CLI tools pdvin & pdvout with a PNG image, to embed or extract any file, up to 2GB (cover image + data file).

Compatible hosting sites, listed below, have their own much smaller image size limits:-

There are many other image hosting sites on the web that may also be compatible.

Demo Image
Image credit: @carochan_me / PIN: 2512678412

Your embedded data file is compressed (depending on file type) and encrypted with PIN protection.

Usage (Linux - pdvin / pdvout)


user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvin$ g++ main.cpp -O2 -lz -s -o pdvin
user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvin$ sudo cp pdvin /usr/bin

user1@linuxbox:~/Desktop$ pdvin 

Usage: pdvin [-m|-r] <cover_image> <data_file>  
       pdvin --info

user1@linuxbox:~/Desktop$ pdvin my_cover_image.png document.pdf
  
Saved "file-embedded" PNG image: prdt_17627.png (1245285 bytes).

Recovery PIN: [***3483965536***]

Important: Please remember to keep your PIN safe, so that you can extract the hidden file.

Complete!

user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvout$ g++ main.cpp -O2 -lz -s -o pdvout
user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvout$ sudo cp pdvout /usr/bin

user1@linuxbox:~/Desktop$ pdvout

Usage: pdvout <file_embedded_image>
       pdvout --info
        
user1@linuxbox:~/Desktop$ pdvout prdt_17627.png

PIN: **********

Extracted hidden file: document.pdf (1016540 bytes).

Complete! Please check your file.

By default (no options selected), pdvin embeds your data file within the last IDAT chunk of the PNG image.
For Mastodon, the data file is stored within the compressed iCCP chunk of the PNG image.

To create "file-embedded" PNG images compatible for posting on Mastodon, use the -m option with pdvin.

https://github.com/user-attachments/assets/b4288b5c-c70e-48d4-a845-32da9b67c2e1

To correctly download images from X/Twitter or Reddit, click the image in the post to fully expand it, before saving.

In addition to the 5MB image size limit, X/Twitter also has the following dimension size limits.

https://github.com/user-attachments/assets/781d42a6-5583-4d08-80aa-a78f0d1a837d

To create "file-embedded" PNG images compatible for posting on Reddit, use the -r option with pdvin.
From the Reddit site, click "Create Post" then select "Images & Video" tab, to post your PNG image.

To correctly download an image from Flickr, click the download arrow near the bottom right-hand corner of the page and select Original for the size of image to download.

You can try the pdvrdt Web App if you don't want to download and compile the source code.

https://github.com/user-attachments/assets/e2a16184-7f60-4d1b-afda-3facc8a67269

ImgPile - You must sign in to an account before sharing your data-embedded PNG image on ImgPile.
Sharing your image without logging in, your embedded data will not be preserved.

My other programs you may find useful:-