NAME
GD::RPPNG - Package for generating human only readable images
DESCRIPTION
GD::RPPNG - Package for generating human-only readable images
The GD::RPPNG (Random Password PNG) module was created to provide an
easy access to human-only readable images. This is very usefull to avoid
automatic processing of authentication. (ie: subscription to free email
accounts).
SYNOPSIS
use GD::RPPNG;
# create a new image
$myimage = new GD::RPPNG;
# configure the image
$myimage->Config (
Xsize => 400,
Ysize => 75,
CharSet => 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789',
CodeLen => 8,
FontMinPT => 12,
FontMaxPT => 28,
yDivert => 10,
Angle => 45,
XLinesFactor => 10,
YLinesFactor => 10,
Transparent => 0,
Colors => 1,
bgColor => 'FFFFFF',
fgColor => '000000',
Code => 'mypasswd',
DebugCode => 0,
);
# add TrueType(C) fonts
$myimage->AddFonts (
'/usr/X11R6/lib/X11/fonts/truetype/arial.ttf',
'/usr/X11R6/lib/X11/fonts/truetype/courier.ttf',
);
# generate the image
( $mycode, $mypng ) = $image->GenImage();
METHODS
$object = new GD::RPPNG
Creates a new object and sets all default options (see next METHOD
for detailed description):
Xsize => 400
Ysize => 75
CharSet => 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'
CodeLen => 8
FontMinPT => 12
FontMaxPT => 28
yDivert => 10
Angle => 45
XLinesFactor => 10
YLinesFactor => 10
Transparent => 0
Colors => 1
bgColor => 'FFFFFF'
fgColor => '000000'
Code => ''
DebugCode => 0
$object->Config()
With this method you can override all the default options shown
above.
'Xsize' defines the width of the image in pixels. here's an example:
$object->Config( Xsize => 400 )
'Ysize' defines the height of the image in pixels. here's an
example:
$object->Config( Ysize => 75 )
'CharSet' defines the list of chars which may be used to generate
the "code". Depending on the fonts you will use, its recommended to
skip I,L,0,O and 1 as they might be confusing. here's an example:
$object->Config( CharSet => 'ABCDEFGHJKMNOPQRSTUVWXYZ23456789%$#@' )
'CodeLen' defines the number of chars to be used to generate the
"code". here's an example:
$object->Config( CodeLen => 8 )
'FontMinPT' defines the minimal font size to use. here's an example:
$object->Config( FontMinPT => 12 )
'FontMaxPT' defines the maximal font size to use. here's an example:
$object->Config( FontMaxPT => 24 )
'yDivert' defines, in percent of the image height, the vertical
range in which chars may be printed. here's an example:
$object->Config( yDivert => 10 )
'Angle' defines, in degree, the angle range in which chars may be
rotated. As an example, 90 will allow chars to be rotated from -45
to +45 degrees. here's an example:
$object->Config( Angle => 45 )
'XLinesFactor' defines, in percent, the amount of horizontal lines
to be draw. As an example, 50 on a 400 pixels wide image will draw
about 200 lines. here's an example:
$object->Config( XLinesFactor => 20 )
'YLinesFactor' defines, in percent, the amount of vertical lines to
be draw. As an example, 50 on a 100 pixels high image will draw
about 50 lines. here's an example:
$object->Config( YLinesFactor => 20 )
'Transparent' defines if the background has to be transparent or
not. here's an example:
$object->Config( Transparent => 0 )
'Colors' defines if the image will use random colors or not. here's
an example:
$object->Config( Colors => 1 )
'bgColor' defines, in RRGGBB (hex) format, the background color to
use. here's an example:
$object->Config( bgColor => 'FFFFFF' )
'fgColor' defines, in RRGGBB (hex) format, the foreground color to
use. here's an example:
$object->Config( fgColor => '000000' )
'Code' defines the "code". If not set, a random code will be
generated using the CharSet and the CodeLen options. If set, CharSet
and CodeLen will be ignored. here's an example:
$object->Config( Code => 'q12we34r' )
NOTE: You may specify multiple options at the same time here's an
example:
$object->Config(
Xsize => 400,
Ysize => 75,
Colors => 1
);
'DebugCode' defines if the "code" will be displayed on the top left
of the image or not. NOTE: Do only use this for debugging purpose!
here's an example:
$object->AddFonts()
With this method you can add TrueType fonts. Those fonts will be
randomly used to draw the "code" on the image. here's an example:
$object->AddFonts(
'/usr/X11R6/lib/X11/fonts/truetype/arial.ttf',
'/usr/X11R6/lib/X11/fonts/truetype/courier.ttf'
);
$object->GenImage()
With this method you will generate the image. The method will return
the "code" and the image in an array. here's an example:
($mycode, $myimage) = $object->GenImage();
print "Content-type: image/png\n\n";
print $myimage;
EXAMPLES
Many examples may be found at http://www.spale.com/gd-rppng
AUTHOR
Pascal Gloor <spale@cpan.org>
The GD::RPPNG module was written by Pascal Gloor.
VERSION
Version 0.9, released on 11 Dec 2003.
COPYRIGHT
GD::RPPNG Copyright (C) 2003 Pascal Gloor <spale@cpan.org>
GD Copyright (C) 1995-2000, Lincoln D. Stein.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
the GD::RPPNG manpage