Break and wrap strings in gd images
[% USE align = GD.Text.Wrap(gd_image); %]
[% 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; -%]
The \s-1GD\s0.Text.Wrap plugin provides an interface to the GD::Text::Wrap module. It allows multiples line of text to be drawn in \s-1GD\s0 images with various wrapping and alignment.
See GD::Text::Wrap for more details. See Template::Plugin::GD::Text::Align for a plugin that allow you to draw text with various alignment and orientation.
Thomas Boutell wrote the \s-1GD\s0 graphics library.
Lincoln D. Stein wrote the Perl \s-1GD\s0 modules that interface to it and Martien Verbruggen wrote the GD::Text module.
Craig Barratt <[email protected]> wrote the original \s-1GD\s0 plugins for the Template Toolkit (2001).
Andy Wardley <[email protected]> extracted them from the \s-1TT\s0 core into a separate distribution for \s-1TT\s0 version 2.15.
These modules are looking for a new maintainer. Please contact Andy Wardley if you are willing to help out.
Copyright (C) 2001 Craig Barratt <[email protected]>, 2006 Andy Wardley <[email protected]>.
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.
Template::Plugin::GD, Template::Plugin::GD::Text, \s-1GD\s0