GD::Text::Arc - draw TrueType text along an arc. |
get_widths()
draw()
use GD::Text::Arc;
my $image = GD::Image->new(600,500);
my $gray = $image->colorAllocate(75,75,75); my $boldfont = "Adventure.ttf"; my $text = "here's a line.";
my $ta = GD::Text::Arc->new($image, colour => $gray, ptsize => $size, font => $boldfont, radius => $radius, center_x => $centerX, center_y => $centerY, text => $text, side => 'inside' orientation => 'clockwise' );
$ta->draw;
$ta->set('color', $red); $ta->set('ptsize', $huge); $ta->set('orientation', 'counterclockwise');
$ta->draw;
This module provides a way to draw TrueType text along a curve (such as around the bottom or top of a circle). It is to be used with GD::Text (version > 1.20) and GD graphics objects.
Create a new object. The first argument has to be a valid GD::Image
object. See the set()
method for attributes.
Set the font to use for the string, using absolute or relative TrueType font names. See GD::Text and GD::Text::font_path for details.
Set the text to operate on. Returns true on success and false on error.
The set method is the preferred way to set attributes. Valid attributes are:
set_text()
.
set_font()
.
$gd_text
.
side
attribute; see below). The default
radius is the lesser of center_x or center_y.
compress_factor adjusts spacing between characters. It is .9 by default; a larger value reduces the space between characters.
points_to_pixels_factor adjusts the radius (by a fraction of the point-size) to compensate for the height of letters. It is .8 by default; a larger value increases the radius.
Returns true on success, false on any error, even if it was partially successful. When an error is returned, no guarantees are given about the correctness of the attributes.
Get the value of an attribute. Return a list of the attribute values in list context, and the value of the first attribute in scalar context.
The attributes that can be retrieved are all the ones that can be set, plus those described in GD::Text.:
Note that unlike with GD::Text::Align, you can get()
both 'color' and
'colour'. Vive la difference!
get_widths()
In array context, returns a list of character-widths for the text to be drawn. In scalar context, return the total width of the string measured in pixels. Because the way the characters are drawn (to acount for kerning between adjacent characters), this is more accurate than $gd_text->width. This is mostly an internal method, but might be useful to make sure your text is shorter than, say, PI * radius characters.
draw()
Draw the string according to coordinates, radius, orientation, and font. Returns true on success, false on any error.
Owing to how 'use constant' works, for free, you get a definition of Pi
that is as good as your floating-point math. You can also access it
as method $gd_text->PI
.
Probably.
I haven't implemented align()
or angle()
methods yet;
for now, align = center and angle = 0. I'm not sure this module will work
perfectly with all fonts. I've tried it with a few dozen, which look more
or less the way I wanted them to.
Suggestions gratefully welcomed.
Copyright (C) 2004 Daniel Allen <da@coder.com>. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
GD(3), GD::Text(3), GD::Text::Wrap(3), GD::Text::Align(3)
GD::Text::Arc - draw TrueType text along an arc. |