13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#!/usr/bin/perl
23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
33ed852eea50f9d4cd633efb8c2b054b8e33c253cristyuse Image::Magick;
43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# Hide an image within an image
73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$watermark=Image::Magick->new;
93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$watermark->ReadImage('smile.gif');
103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy($width, $height)=$watermark->Get('width','height');
113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# Hide image in image.
133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$image=Image::Magick->new;
153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$image->ReadImage('model.gif');
163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$image->SteganoImage(image=>$watermark,offset=>91);
173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$image->Write('model.png');
183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$image->Write('win:');
193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# Extract image from image.
213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#
223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$size="$width" . "x" . "$height" . "+91";
233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$stegano=Image::Magick->new(size=>$size);
243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$stegano->ReadImage('stegano:model.png');
253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$stegano->Write('stegano.gif');
263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$stegano->Write('win:');
27