SVG-GD
view release on metacpan or search on metacpan
lib/SVG/GD.pm view on Meta::CPAN
my ($x,$y) = ([],[]);
foreach my $set (@{$poly->{points}}) {
my ($myx,$myy) = ($set->[0],$set->[1]);
push @$x,$myx;
push @$y,$myy;
}
my $points = $self->{_SVG_}->
get_path(x=>$x, y=>$y,
-type=>'path',
-closed=>'true');
$self->{_SVG_}->path(%$points,fill=>$self->getColour($fill));
}
=head2 polygon
Draw an empty polygon
=cut
sub SVG::GD::Image::polygon ($$$) {
my $self = shift;
my $poly = shift;
my $stroke = shift;
my ($x,$y) = ([],[]);
foreach my $set (@{$poly->{points}}) {
my ($myx,$myy) = ($set->[0],$set->[1]);
push @$x,$myx;
push @$y,$myy;
}
my $points = $self->{_SVG_}->
get_path(x=>$x, y=>$y,
-type=>'path',
-closed=>'true');
$self->{_SVG_}->path(%$points,stroke=>$self->getColour($stroke),fill=>'none');
}
#string methods
=head1 string methods
=head2 string
write a text string
=cut
sub SVG::GD::Image::string ($$$$$$) {
my $self = shift;
my ($myfont,$x,$y,$text,$colour) = @_;
# $self->{_GD_}->string(@_);
$self->{_SVG_}->text(
'baseline-shift'=>'sub',
style=>{
SVG::GD::Font::getSVGstyle($myfont),
fill=>$self->getColour($colour),
},
x=>$x,
y=>$y)->tspan(dy=>'1em') ->cdata($text);
}
=head2 char
write a character
=cut
*SVG::GD::Image::char = \&SVG::GD::Image::string;
=head2 charUp
write a character upwards
=cut
sub SVG::GD::Image::stringUp ($$$$$$) {
my $self = shift;
my ($myfont,$x,$y,$text,$colour) = @_;
# $self->{_GD_}->string(@_);
$self->{_SVG_}->text(
style=>{'writing-mode'=>'tb',
SVG::GD::Font::getSVGstyle($myfont),
fill=>$self->getColour($colour),
},
x=>$x,y=>$y,
)->cdata($text);
}
*SVG::GD::Image::charUp = \&SVG::GD::Image::stringUp;
#---------------
#internal methods
sub SVG::GD::Image::getRGB($$) {
my $self = shift;
my $colour = shift;
return $self->{_COLOUR_}->{$colour}->{rgb};
}
sub SVG::GD::Image::getColour($$) {
my $self = shift;
my $colour = shift;
return $self->{_COLOUR_}->{$colour}->{svg};
}
=head2 rgb
Return the red,green,blue array for an allocated colour
=cut
sub SVG::GD::Image::rgb ($$) {
my $self = shift;
my $col = shift;
return @{$self->getRBG($col)};
}
=head2 svg
replace the gif writing request with an svg writing request
=cut
sub SVG::GD::Image::svg ($) {
my $self = shift;
return $self->{_SVG_}->xmlify;
}
=head2 png
Return the binary image in PNG format
=cut
sub SVG::GD::Image::png ($) {
my $self = shift;
return $self->svg;
# return $self->{_GD_}->png;
}
=head2 jpg
Return the binary image in JPEG format
=cut
( run in 2.850 seconds using v1.01-cache-2.11-cpan-804bf51f3ce )