From bcbf441e09fb502cf64924ff2530fa144bdf52c5 Mon Sep 17 00:00:00 2001 From: Andreas Brachold Date: Mon, 13 Aug 2007 18:41:27 +0000 Subject: * Move files to trunk --- lib/Template/Plugin/GD/Text/Align.pm | 147 ++++++++++++++++++++++++++++ lib/Template/Plugin/GD/Text/Wrap.pm | 183 +++++++++++++++++++++++++++++++++++ 2 files changed, 330 insertions(+) create mode 100644 lib/Template/Plugin/GD/Text/Align.pm create mode 100644 lib/Template/Plugin/GD/Text/Wrap.pm (limited to 'lib/Template/Plugin/GD/Text') diff --git a/lib/Template/Plugin/GD/Text/Align.pm b/lib/Template/Plugin/GD/Text/Align.pm new file mode 100644 index 0000000..8b79069 --- /dev/null +++ b/lib/Template/Plugin/GD/Text/Align.pm @@ -0,0 +1,147 @@ +#============================================================= -*-Perl-*- +# +# Template::Plugin::GD::Text::Align +# +# DESCRIPTION +# +# Simple Template Toolkit plugin interfacing to the GD::Text::Align +# module. +# +# AUTHOR +# Craig Barratt +# +# COPYRIGHT +# Copyright (C) 2001 Craig Barratt. All Rights Reserved. +# +# This module is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# +#---------------------------------------------------------------------------- +# +# $Id: Align.pm,v 1.55 2004/01/13 16:21:46 abw Exp $ +# +#============================================================================ + +package Template::Plugin::GD::Text::Align; + +require 5.004; + +use strict; +use GD::Text::Align; +use Template::Plugin; +use base qw( GD::Text::Align Template::Plugin ); +use vars qw( $VERSION ); + +$VERSION = sprintf("%d.%02d", q$Revision: 1.55 $ =~ /(\d+)\.(\d+)/); + +sub new +{ + my $class = shift; + my $context = shift; + my $gd = shift; + + push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" ); + return $class->SUPER::new($gd, @_); +} + +sub set +{ + my $self = shift; + + push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" ); + $self->SUPER::set(@_); +} + +1; + +__END__ + + +#------------------------------------------------------------------------ +# IMPORTANT NOTE +# This documentation is generated automatically from source +# templates. Any changes you make here may be lost. +# +# The 'docsrc' documentation source bundle is available for download +# from http://www.template-toolkit.org/docs.html and contains all +# the source templates, XML files, scripts, etc., from which the +# documentation for the Template Toolkit is built. +#------------------------------------------------------------------------ + +=head1 NAME + +Template::Plugin::GD::Text::Align - Draw aligned strings in GD images + +=head1 SYNOPSIS + + [% USE align = GD.Text.Align(gd_image); %] + +=head1 EXAMPLES + + [% FILTER null; + USE im = GD.Image(100,100); + USE gdc = GD.Constants; + # allocate some colors + black = im.colorAllocate(0, 0, 0); + red = im.colorAllocate(255,0, 0); + blue = im.colorAllocate(0, 0, 255); + # Draw a blue oval + im.arc(50,50,95,75,0,360,blue); + + USE a = GD.Text.Align(im); + a.set_font(gdc.gdLargeFont); + a.set_text("Hello"); + a.set(colour => red, halign => "center"); + a.draw(50,70,0); + + # Output image in PNG format + im.png | stdout(1); + END; + -%] + +=head1 DESCRIPTION + +The GD.Text.Align plugin provides an interface to the GD::Text::Align +module. It allows text to be drawn in GD images with various alignments +and orientations. + +See L for more details. See +L for a plugin +that allow you to render wrapped text in GD images. + +=head1 AUTHOR + +Craig Barratt Ecraig@arraycomm.comE + + +The GD::Text module was written by Martien Verbruggen. + + +=head1 VERSION + +1.55, distributed as part of the +Template Toolkit version 2.13, released on 30 January 2004. + +=head1 COPYRIGHT + + +Copyright (C) 2001 Craig Barratt Ecraig@arraycomm.comE + +GD::Text is copyright 1999 Martien Verbruggen. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L, L, L, L, L + +=cut + +# Local Variables: +# mode: perl +# perl-indent-level: 4 +# indent-tabs-mode: nil +# End: +# +# vim: expandtab shiftwidth=4: diff --git a/lib/Template/Plugin/GD/Text/Wrap.pm b/lib/Template/Plugin/GD/Text/Wrap.pm new file mode 100644 index 0000000..0438599 --- /dev/null +++ b/lib/Template/Plugin/GD/Text/Wrap.pm @@ -0,0 +1,183 @@ +#============================================================= -*-Perl-*- +# +# Template::Plugin::GD::Text::Wrap +# +# DESCRIPTION +# +# Simple Template Toolkit plugin interfacing to the GD::Text::Wrap +# module. +# +# AUTHOR +# Craig Barratt +# +# COPYRIGHT +# Copyright (C) 2001 Craig Barratt. All Rights Reserved. +# +# This module is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# +#---------------------------------------------------------------------------- +# +# $Id: Wrap.pm,v 1.55 2004/01/13 16:21:46 abw Exp $ +# +#============================================================================ + +package Template::Plugin::GD::Text::Wrap; + +require 5.004; + +use strict; +use GD::Text::Wrap; +use Template::Plugin; +use base qw( GD::Text::Wrap Template::Plugin ); +use vars qw( $VERSION ); + +$VERSION = sprintf("%d.%02d", q$Revision: 1.55 $ =~ /(\d+)\.(\d+)/); + +sub new +{ + my $class = shift; + my $context = shift; + my $gd = shift; + + push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" ); + return $class->SUPER::new($gd, @_); +} + +sub set +{ + my $self = shift; + + push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" ); + $self->SUPER::set(@_); +} + +1; + +__END__ + + +#------------------------------------------------------------------------ +# IMPORTANT NOTE +# This documentation is generated automatically from source +# templates. Any changes you make here may be lost. +# +# The 'docsrc' documentation source bundle is available for download +# from http://www.template-toolkit.org/docs.html and contains all +# the source templates, XML files, scripts, etc., from which the +# documentation for the Template Toolkit is built. +#------------------------------------------------------------------------ + +=head1 NAME + +Template::Plugin::GD::Text::Wrap - Break and wrap strings in GD images + +=head1 SYNOPSIS + + [% USE align = GD.Text.Wrap(gd_image); %] + +=head1 EXAMPLES + + [% FILTER null; + USE gd = GD.Image(200,400); + USE gdc = GD.Constants; + black = gd.colorAllocate(0, 0, 0); + green = gd.colorAllocate(0, 255, 0); + txt = "This is some long text. " | repeat(10); + USE wrapbox = GD.Text.Wrap(gd, + line_space => 4, + color => green, + text => txt, + ); + wrapbox.set_font(gdc.gdMediumBoldFont); + wrapbox.set(align => 'center', width => 160); + wrapbox.draw(20, 20); + gd.png | stdout(1); + END; + -%] + + [% txt = BLOCK -%] + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, + sed diam nonummy nibh euismod tincidunt ut laoreet dolore + magna aliquam erat volutpat. + [% END -%] + [% FILTER null; + # + # This example follows the example in GD::Text::Wrap, except + # we create a second image that is a copy just enough of the + # first image to hold the final text, plus a border. + # + USE gd = GD.Image(400,400); + USE gdc = GD.Constants; + green = gd.colorAllocate(0, 255, 0); + blue = gd.colorAllocate(0, 0, 255); + USE wrapbox = GD.Text.Wrap(gd, + line_space => 4, + color => green, + text => txt, + ); + wrapbox.set_font(gdc.gdMediumBoldFont); + wrapbox.set(align => 'center', width => 140); + rect = wrapbox.get_bounds(5, 5); + x0 = rect.0; + y0 = rect.1; + x1 = rect.2 + 9; + y1 = rect.3 + 9; + gd.filledRectangle(0, 0, x1, y1, blue); + gd.rectangle(0, 0, x1, y1, green); + wrapbox.draw(x0, y0); + nx = x1 + 1; + ny = y1 + 1; + USE gd2 = GD.Image(nx, ny); + gd2.copy(gd, 0, 0, 0, 0, x1, y1); + gd2.png | stdout(1); + END; + -%] + +=head1 DESCRIPTION + +The GD.Text.Wrap plugin provides an interface to the GD::Text::Wrap +module. It allows multiples line of text to be drawn in GD images with +various wrapping and alignment. + +See L for more details. See +L for a plugin +that allow you to draw text with various alignment +and orientation. + +=head1 AUTHOR + +Craig Barratt Ecraig@arraycomm.comE + + +The GD::Text module was written by Martien Verbruggen. + + +=head1 VERSION + +1.55, distributed as part of the +Template Toolkit version 2.13, released on 30 January 2004. + +=head1 COPYRIGHT + + +Copyright (C) 2001 Craig Barratt Ecraig@arraycomm.comE + +GD::Text is copyright 1999 Martien Verbruggen. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L, L, L, L + +=cut + +# Local Variables: +# mode: perl +# perl-indent-level: 4 +# indent-tabs-mode: nil +# End: +# +# vim: expandtab shiftwidth=4: -- cgit v1.2.3