Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Image and Text Watermarked Letters

by zentara (Archbishop)
on Nov 25, 2008 at 17:49 UTC ( [id://725895]=sourcecode: print w/replies, xml ) Need Help??
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=');
}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://725895]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2024-04-24 21:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found