How does one embed license (or other) information into a PNG file?

I want to preface this by saying no, I don't mean steganography. What I'm looking for isn't simply putting text etc. into an image file through things like Outguess or OpenStego.

A software company that makes voice synthesizers, Plogue, does something rather unique that I've seen with their licenses. Rather than give you a key, serial number, or something standard like that, they give you a .PNG file that looks like a credit card almost. Embedded and encrypted into this .PNG is your license information for the program -- simply click-and-drag the image onto the program, and it unlocks.

Is it possible for anyone to do this without specialized programs that cost a hefty penny? If so, how would one do it? I feel like this is something that could be used much more often, especially now in the realm of the NFT when digital images supported by the blockchain are commonplace.


Any or all of the following methods can be used:

  • Add metadata, see https://stackoverflow.com/questions/8113314/does-png-support-metadata-fields-like-author-camera-model-etc
  • Invisible watermarking, which hides metadata in the image data itself at the level of noise
  • Visible marking, usually by adding a visible copyright mark in the image

Embedded metadata would be machine readable. A visible mark is readable by everyone, and difficult to remove without damaging the image. Watermarking is hidden and only visible to the author and difficult to remove, but could be used to prove the image's original source.