This class can be used to encrypt data (messages, files) and hide that data in images using steganography techniques. Steganography is the art and science of writing hidden messages in such a way that no one apart from the intended recipient knows of the existence of the message; this is in contrast to cryptography, where the existence of the message itself is not disguised, but the content is obscured.
It reads a given image in GIF, JPEG or PNG formats, encrypts data supplied by the user (a message, a file, a collection of both) and hides the encrypted data in the image by making subtle colour changes to certain pixels to store the data in the image symbolically. The resulting image is generated in PNG format (because PNG is lossless).
It can also perform the reverse operation by extracting the original data previously stored in an image using this package.
The advantage of steganography over cryptography alone is that messages do not attract attention to themselves, to messengers, or to recipients. An unhidden encrypted message, no matter how unbreakable it is, will arouse suspicion and may in itself be incriminating, as in some countries encryption is illegal.