Templat...D::Image(3)

✨ NAME ✨

Okay bestie, welcome to the Templat...D::Image(3) page from User Contributed Perl Documentation β€” and it's literally the interface to the GD Graphics Library. πŸ’–

Template::Plugin::GD::Image β€” Interface to GD Graphics Library. Periodt. πŸŽ€

🌸 SYNOPSIS 🌸

[% USE im = GD.Image(width, height) %]

πŸ¦‹ EXAMPLES πŸ¦‹

Here's the first iconic little demo, no cap:

[% FILTER null;
    USE gdc = GD.Constants;
    USE im  = GD.Image(200,100);
    black = im.colorAllocate(0  ,0,  0);
    red   = im.colorAllocate(255,0,  0);
    r = im.string(gdc.gdLargeFont, 10, 10, "Large Red Text", red);
    im.png | stdout(1);
   END;
-%]

Next up: draw a blue oval, fill it red, and output PNG. Main character energy fr fr:

[% FILTER null;
    USE im = GD.Image(100,100);
    # 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);
    # And fill it with red
    im.fill(50,50,red);
    # Output binary image in PNG format
    im.png | stdout(1);
   END;
-%]

And this one is giving full art-project slay β€” transparent, interlaced, framed, oval, triangle, the works πŸ’…:

[% FILTER null;
    USE im   = GD.Image(100,100);
    USE c    = GD.Constants;
    USE poly = GD.Polygon;

    # allocate some colors
    white = im.colorAllocate(255,255,255);
    black = im.colorAllocate(0,  0,  0);
    red   = im.colorAllocate(255,0,  0);
    blue  = im.colorAllocate(0,  0,255);
    green = im.colorAllocate(0,  255,0);

    # make the background transparent and interlaced
    im.transparent(white);
    im.interlaced('true');

    # Put a black frame around the picture
    im.rectangle(0,0,99,99,black);

    # Draw a blue oval
    im.arc(50,50,95,75,0,360,blue);

    # And fill it with red
    im.fill(50,50,red);

    # Draw a blue triangle
    poly.addPt(50,0);
    poly.addPt(99,99);
    poly.addPt(0,99);
    im.filledPolygon(poly, blue);

    # Output binary image in PNG format
    im.png | stdout(1);
   END;
-%]

πŸ’œ DESCRIPTION πŸ’œ

The GD.Image plugin provides an interface to GD.pm's GD::Image class. And the GD::Image class is the main interface to GD.pm. 🫢

🚨 Bestie, this part is very important: no extraneous template output can appear before or after the image. Literally none. Since some methods return values that would otherwise show up in the output, it is recommended that GD.Image code be wrapped in a null filter. The methods that produce the final output (eg, png, jpeg, gd etc) can then explicitly make their output appear by using the stdout filter, with a non-zero argument to force binary mode β€” which is required for non-modern operating systems. πŸ’€

See GD for a complete description of the GD library and all the methods that can be called via the GD.Image plugin. See Template::Plugin::GD::Constants for a plugin that allows you access to GD.pm's constants. 🌈

πŸ‘‘ AUTHOR πŸ‘‘

  • Thomas Boutell wrote the GD graphics library. 🎨
  • Lincoln D. Stein wrote the Perl GD modules that interface to it. 🧚
  • 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. πŸ’–

Copyright (C) 2001 Craig Barratt <craig@arraycomm.com>, 2006 Andy Wardley <abw@cpan.org>. πŸŽ€

The GD.pm interface is copyright 1995-2000, Lincoln D. Stein. πŸ¦‹

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Slay. πŸ’…

⭐ SEE ALSO ⭐

  • Template::Plugin::GD
  • GD

That's the whole page, bestie πŸ’– β€” source/version is perl v5.42.0, dated 2017-10-08, from the Templat...D::Image(3) page. Bye! πŸ‘‘πŸŒˆ

πŸ“¦ where this page comes from