SVG-GD
view release on metacpan or search on metacpan
lib/SVG/GD.pm view on Meta::CPAN
=pod
=head1 Name: SVG::GD
=head1 Version 0.20
=head1 Author: Ronan Oger
=head1 Abstract
Provide (as seamless as possible) an SVG wrapper to the GD API
in order to provide SVG output of images generate with the Perl GD module
=head1 Synopsis
use GD;
use SVG::GD;
$im = new GD::Image(100,50);
# allocate black -- this will be our background
$black = $im->colorAllocate(0, 0, 0);
# allocate white
$white = $im->colorAllocate(255, 255, 255);
# allocate red
$red = $im->colorAllocate(255, 0, 0);
# allocate blue
$blue = $im->colorAllocate(0,0,255);
#Inscribe an ellipse in the image
$im->arc(50, 25, 98, 48, 0, 360, $white);
# Flood-fill the ellipse. Fill color is red, and will replace the
# black interior of the ellipse
$im->fill(50, 21, $red);
binmode STDOUT;
# print the image to stdout
print $im->png;
=cut
BEGIN {
#first, let's re-map the GD::Image methods to somewhere else safe.
#nb we will also have to do this with the GD::Font methods
# *SVG::HGD::Image::new = \&GD::Image::new;
# *SVG::HGD::gdSmallFont =\&GD::gdSmallFont;
# *SVG::HGD::gdLargeFont =\&GD::gdLargeFont;
# *SVG::HGD::gdMediumBoldFont =\&GD::gdMediumBoldFont;
# *SVG::HGD::gdTinyFont =\&GD::gdTinyFont;
# *SVG::HGD::gdGiantFont =\&GD::gdGiantFont;
# *SVG::HGD::Image::_make_filehandle =\&GD::Image::_make_filehandle;
# *SVG::HGD::Image::new =\&GD::Image::new;
# *SVG::HGD::Image::newTrueColor =\&GD::Image::newTrueColor;
# *SVG::HGD::Image::newPalette =\&GD::Image::newPalette;
# *SVG::HGD::Image::newFromPng =\&GD::Image::newFromPng;
# *SVG::HGD::Image::newFromJpeg =\&GD::Image::newFromJpeg;
# *SVG::HGD::Image::newFromXbm =\&GD::Image::newFromXbm;
# *SVG::HGD::Image::newFromGd =\&GD::Image::newFromGd;
# *SVG::HGD::Image::newFromGd2 =\&GD::Image::newFromGd2;
# *SVG::HGD::Image::newFromGd2Part =\&GD::Image::newFromGd2Part;
# *SVG::HGD::Image::ellipse =\&GD::Image::ellipse;
# *SVG::HGD::Image::clone =\&GD::Image::clone;
# *SVG::HGD::Polygon::new =\&GD::Polygon::new;
# *SVG::HGD::Polygon::DESTROY =\&GD::Polygon::DESTROY;
# *SVG::HGD::Polygon::addPt =\&GD::Polygon::addPt;
# *SVG::HGD::Polygon::getPt =\&GD::Polygon::getPt;
# *SVG::HGD::Polygon::setPt =\&GD::Polygon::setPt;
# *SVG::HGD::Polygon::length =\&GD::Polygon::length;
# *SVG::HGD::Polygon::vertices =\&GD::Polygon::vertices;
# *SVG::HGD::Polygon::bounds =\&GD::Polygon::bounds;
# *SVG::HGD::Polygon::deletePt =\&GD::Polygon::deletePt;
# *SVG::HGD::Polygon::offset =\&GD::Polygon::offset;
# *SVG::HGD::Polygon::map =\&GD::Polygon::map;
# *SVG::HGD::Image::polygon =\&GD::Image::polygon;
# *SVG::HGD::Polygon::toPt =\&GD::Polygon::toPt;
# *SVG::HGD::Polygon::transform =\&GD::Polygon::transform;
# *SVG::HGD::Polygon::scale =\&GD::Polygon::scale;
*GD::Font:: = *SVG::GD::Font::;
*GD::Image:: = *SVG::GD::Image::;
}
use vars qw/$VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS/;
our $tinyfontsize='5';
our $smallfontsize='7';
our $mediumfontsize='10';
our $largefontsize='12';
our $giantfontsize='16';
our $font = {};
our $fontindex = 0;
@ISA = qw/Exporter/;
@EXPORT = qw/
gdBrushed
gdDashSize
gdMaxColors
gdStyled
gdStyledBrushed
gdTiled
gdTransparent
gdSmallFont
gdMediumBoldFont
gdLargeFont
gdGiantFont /;
@EXPORT_OK = qw/
GD_CMP_IMAGE
GD_CMP_NUM_COLORS
GD_CMP_COLOR
GD_CMP_SIZE_X
GD_CMP_SIZE_Y
GD_CMP_TRANSPARENT
GD_CMP_BACKGROUND
( run in 2.472 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )