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