Templat...t::Wrap(3)

✨ NAME ✨

Okay bestie, you're reading the Template::Plugin::GD::Text::Wrap(3) page, and it's giving break and wrap strings in GD images. That's the whole assignment. πŸ’…

🌸 SYNOPSIS 🌸

The tiny invocation is:

[% USE align = GD.Text.Wrap(gd_image); %]

πŸŽ€ EXAMPLES πŸŽ€

Example one β€” long text gets repeated and wrapped into a GD image, with color and centering happening:

[% 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;
-%]

Example two β€” this one follows the example in GD::Text::Wrap, except it creates a second image that is a copy just enough of the first image to hold the final text, plus a border:

[% 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;
-%]

πŸ’– DESCRIPTION πŸ’–

The GD.Text.Wrap plugin is basically the bridge to the GD::Text::Wrap module. It lets multiple lines of text be drawn into GD images with all kinds of wrapping and alignment. Literally the multitasker of text-in-image vibes. 🌈

For the full lore, go read GD::Text::Wrap. And if you want a plugin that lets you draw text with various alignment and orientation, that's Template::Plugin::GD::Text::Align β€” go say hi. πŸ¦‹

πŸ‘‘ AUTHOR πŸ‘‘

Thomas Boutell wrote the GD graphics library. Iconic.

Lincoln D. Stein wrote the Perl GD modules that interface to it, and Martien Verbruggen wrote the GD::Text module. Slay.

Craig Barratt <craig@arraycomm.com> wrote the original GD plugins for the Template Toolkit (2001).

Andy Wardley <abw@cpan.org> extracted them from the TT core into a separate distribution for TT 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 <craig@arraycomm.com>, 2006 Andy Wardley <abw@cpan.org>.

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. πŸ’–

πŸ¦‹ SEE ALSO πŸ¦‹

Go peek at Template::Plugin::GD, Template::Plugin::GD::Text, and GD. They're all linked in the group chat. πŸ’…


Cute sign-off: this manual page is from perl v5.42.0, dated 2017-10-08 β€” and the title, if you need it again, is Template::Plugin::GD::Text::Wrap(3). Now go forth and wrap those strings, bestie. πŸ’–βœ¨

πŸ“¦ where this page comes from