http://qs321.pair.com?node_id=725895
Category: Fun Stuff
Author/Contact Info zentara of perlmonks
Description: Just a simple script to show how to add semi-transparent images and text to an image, or in this case a blank US letter sized paper.... ready to run off reams of copies. This particular example is for Perl. The Programming Republic of Perl stamp is base64encoded into the script.
#!/usr/bin/perl
use warnings;
use strict;
use Image::Magick;
use MIME::Base64;

#Usage: Script.pl base_image 
#my $file = shift or die "need an image $!\n";
#my $image = Image::Magick->new;
#my $rc = $image->Read($file);

my $image = Image::Magick->new;
$image->Set(size=>'612x792');  # US letter 8.5 x 11 inches
my $rc = $image->Read("xc:white");

my $wimage = Image::Magick->new(magick=>'png');
my $stamp = get_stamp();
$wimage->BlobToImage($stamp);
#$wimage->Write('stamp.png'); #if you want to examine it

$rc = $image->Composite(
     gravity => "Center", 
     compose=>'Dissolve',
     image => $wimage,
      opacity => '5%',  #how much transparency
      tile  => 1,  
      );

foreach my $pos qw(North Center South){
$image->Annotate(pointsize => 36,
         fill      => '#00000008', #last 2 digits transparency in hex 
+ff=max
         text      => 'Just Another Perl Hacker',
         gravity   => $pos );
}

$image->Write("$0.png");

exit;

sub get_stamp{

return decode_base64( 
'iVBORw0KGgoAAAANSUhEUgAAAGEAAABhBAMAAAA0KNKQAAAAG1BMVEX///8AAAAhISFCQ
+kJSUlJ7
e3ucnJzw8PD////JTe+VAAAAAXRSTlMAQObYZgAACJ5JREFUeF7FmEuPuzoSxWdzb6/LMg
+lbe0yH
9UjzAWyZhOWAcMLyJsqDZacVHltQCPWxxw6kn//HXYw0R62WOuHHOVXGXU7+8b/RS32yql
+/+LlBe
JLvrn+ZvQU+G873mXGu9VuxQ//b6UgZKnNBpMFwk4vQboOYqKAaUDTJioVoF5NfJSi5XQ9
+P6kLcA
lrg1V0o2L79y4AUmYesl8dZHqxbynvDNT4mK8OLcbP0WZJgsA0sk4GFPxc+Qp1TmCGE7vw
+KEMnWp
oKT43Huzn+TKWNzmbH6lPYAvTwRxIN2sh3lHfozUYo7gSRjgRpmfxJa4ArMRAc9p/cNMZM
+AzADSA
5DxvgbjCIU/CGgse/MCkYjkULQALZQydTUYRz8SzttiRnmy+WygPwcaSZ7/1Ja5wv0KUkS
+0DmgT8
RHwzuchbLgGZ6aHL91oLk4ll1nvtvETYeQNZfbWI/DORELY+eje1rNGqztRxlcyw9Vr766
+tJJV2Z
QK8EL7TBh9IwgVB6tmMFPX1plN8MAB4U5OrhB70+yxMAoGU+t+tPViBuvcXW7y3wCVm11D
+035UA+
maigXeAVsDsJ/KJ0HSKCv/XTxae6Q4DYWmPS4FcpxDP0EHfqQ6yK4RYgb2kX4zfdQoQ48R
+A/ruLr
DHuSwBB7+APJAa5Q9LQL3kPREFEqmLcFOpW0+ABswWfgDwAX/RarZFhgCzocLQYA0ryHYp
+TtACVJ
QvKft1BRC24vdTk6dZwGi/dMJEpDPIOX+Nlbt3Y+AMHW14hDXaV0I5/ZA+iAp5T08AyQvy
+3iE1nD
AHlf+4gyUIqsUiEeTWsJByY30MMKezURNbvCHMBrEa8kUgY2mi82j1AMiNK+hDnefPrXVI
+Z2q6H8
CPEs1OqkOE1nk8cNGCc8IB3BC3iPQlIfMYHV4CNCUWMlySJj3qMMYIQRWeDrvZBpa8S5Q7
+oGMVtm
zXDgEQcYTaw5cM61f3Yd77KXO8Er6BsMOkTsgXiXsM+IgHCyAGqJVXCmLqO8E3/wbt7CCu
+doddiD
CPBCpb4TAAyIECLate7tht/XsNLt7AwQ+1M7I12kCoL4nmm5J5xyJV6rEC9slp0ccTY9LJ
+GZfKo1
0AfOFTT3TMZwxanWJiwZwHy/uDd3gQw4dDjqLIgB6oiBEa6NkYoZs/YBvAZf70QaokW8B8
+FIdIGA
pIW1IKkO1txh62VSYFV0gWvVLjzkWKMZgQGoVs86sAQjy5QeyyBaH8wxwwsAXJeuWbMTAC
+xxMRJX
0JxsoizIb+BxE2eoN3VpzPYGICBSziO40AwgDh9PHtNeJjIPX8kzO+Vls1sfomy96wAxWS
+cvd8JD
3IYTkZDIZCmTAUpQ8lQM8TVIdXRIL9RlVo5wA4awRTy1iqZHKbiKB0a5WDdFf0qV1kYWuS
+OkJf7k
uGMAgyOGAreRPjDNIe6BLKPVrRzMQehMJ+Nyqb+sB3Fs1ed4m28tkQZaacqKK4A6zrGsTJ
+UZrtWY
gY0ehwi3lTUF4E3CtFGpNs0rLK65h1VtbrrebZKR4M6DXsHKEgxolicky1Y2N7YQZ2aNZd
+5Xerhp
mV+idTN6iJZu4bnPh4iCq3zJi5TsijNZaFnUdT2c9mazT3OwykcPN8Az6zE05wY7knqbAz
+9lCoKU
Ns2xNPXRdXdPDpr5cvRwdByj7KklgAVRpvLyADwTzTBUvF7vzXG3pwOefTXWQSNjhtjt0I
+X1YF7Q
6fWxElwGVWlOl/xiTHUpwCp0Hk9i+g9uraKZJUBEg9ZlTwmblUN/0rNM6ygreg6A6k40V4
+AGw1IW
YYw9JyK9CX3aaMGZzvvIpGuTGdkX7r53wssZYX6xwjWmIdaSMFObCI9aM9BNlm42e1MtZQ
+sQnG6J
mzpBDMUWqEHE1sdhx/jiFh1OVaQlRJssLZb7Y2bolbv9cX/asxAUgPc6EtiCJ9a3Td0vtW
+JircRy
2M+jbIYog2lHvYYJkBxbxIFB4TZhltVNvuYRA51zFpz2ggvfEgV00z4/b9zmy1ECzGws4G
+k++Gul
t8RruI6iTHIeIt6QXoJx3uBdM2OOR2NMKe1VdXGQwIDe2PJQMhaoAp3GmfNHOhJBVVsd67
+0h9r63
BCgHuub6YBtFpgkk/hoHzkiccVLBvEN0AKIZI4E22YonIhgJPhJidOzyyqo+1X1GdPBKBC
+cMGI1O
kei0j069HIfUv8PHpJ9045JeCQAnAISf0uVlKqPLRmLrTyGHetQp2IPI3NUECIvWx1ROQ3
+HxmGrT
3/iuqEHgnGgmUqHWzXTPYD7NWjaF8fGjQBxYdFCayqDJR4I8pjOfXlBD/UGMEKibHRFpsB
+uBXj2I
dDJtLdlg4+AGb25iIqaguPDfy/hcCHr4rhtwRREZcM5wlJ4/iD/cS+fBdyZv6jnnHg6Mk2
+yO28G1
/v3c9xSE1hJiRKiOD11AAq1KxkFOb344xD1tZ9bDEV14L2JwqZiEABE4C92bBWL6/PEoam
+MDQUT5
XgfjzpVwgdgDUERvMwGPWPR+HX1DgJMYr8AKiw/egK3b4++xBOJicMj7Afl+3+102vAR1e
+zTmZoV
OOl1QgbGLcEsMK0PqT8R+zk+dIXAbcU1W4q9c5i0Xb58Oel/OEuqyJEsourNGQd30v9kou
+f4efUU
0Q32b2nP2lp80uXd5OZNftd897Ae6MoCPzPpgPYivvBw6w/4ZvEVcJW8Hz+hhZkEr/XfYr
+oqvpns
+COyzzqv2BrSzR4Et436rjKYLtjG0M5xm0NPJyBJncV3nWWIThJIC34rYICpMDFtjO+5xq
+ENMHcE
eDgSV+/5Z98d1EQWiAMc3Fi4E9C4h1P9/AN6LViOPSC2s6b1ACUU2BP+q68aKiGf8Yh4ts
+HmEL4W
uKfcRvqFSp6KxkZX/jW82URc/BpwLv8Sii8bdNpzkQob6Teq11wYrRRX2ii++ltfytQHxo
+n7Yccp
0e+Zp7qsqkv9Yg3+P/ovrxusJ+JGDQIAAAAASUVORK5CYII=');
}