View on
Mohammad S Anwar > Crypt-Image-0.03 > Crypt::Image



Annotate this POD

View/Report Bugs
Module Version: 0.03   Source   Latest Release: Crypt-Image-0.12


Crypt::Image - Interface to hide text into an image.


Version 0.03


It requires key image and a text message to start with. The text message is scattered through out the image and gaps are filled with random trash. RGB is used to hide the text message well from any algorithm that searches for similarities between 2 or more images which are generated by the same key. The UTF char code is randomly distributed between the R, G and B, which then gets added/substracted from the original RGB. So even if the same key image is used to encrypt the same text, it will look different from previously encrypted images and actual data pixels are unrecognizable from trash data, which also changes randomly every time.


The constructor takes at the least the location key image, currently only supports PNG format. Make sure your key image is not TOO BIG. Please refer to the image key.png supplied with the package tar ball to give you a start.

    use strict; use warnings;
    use Crypt::Image;
    my $crypter = Crypt::Image->new(file => 'your_key_image.png');



Encrypts the key image (of type PNG currently) with the given text & save it as the new image by the given file name. The length of the given text depends on height and width of the key image given in the constructor. It should not be longer than (width*height)-2.

    use strict; use warnings;
    use Crypt::Image;
    my $crypter = Crypt::Image->new(file => 'your_key_image.png');
    $crypter->encrypt('Hello World', 'your_new_encrypted_image.png');


Decrypts the given encrypted image and returns the hidden text.

    use strict; use warnings;
    use Crypt::Image;

    my $crypter = Crypt::Image->new(file => 'your_key_image.png');
    $crypter->encrypt('Hello World', 'your_new_encrypted_image.png');
    print "Text: [" . $crypter->decrypt('your_new_encrypted_image.png') . "]\n";


Mohammad S Anwar, <mohammad.anwar at>


Please report any bugs or feature requests to bug-crypt-image at or through the the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc Crypt::Image

You can also look for information at:


Joonas Vali, author of the blog gave me the idea for this module.


Copyright 2011 Mohammad S Anwar.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.


This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

syntax highlighting: