IMAGETTFBBOX(3) 1 IMAGETTFBBOX(3)
imagettfbbox - Give the bounding box of a text using TrueType fonts
SYNOPSIS
array imagettfbbox (float $size, float $angle, string $fontfile, string $text)
DESCRIPTION
This function calculates and returns the bounding box in pixels for a TrueType text.
PARAMETERS
o $size
- The font size.
Note
In GD 1, this is measured in pixels. In GD 2, this is measured in points.
o $angle
- Angle in degrees in which $text will be measured.
o $fontfile
- The name of the TrueType font file (can be a URL). Depending on which version of the GD library that PHP is using, it may
attempt to search for files that do not begin with a leading '/' by appending '.ttf' to the filename and searching along a
library-defined font path.
o $text
- The string to be measured.
RETURN VALUES
imagettfbbox(3) returns an array with 8 elements representing four points making the bounding box of the text on success and FALSE on
error.
+----+--------------------------------+
|key | |
| | |
| | contents |
| | |
+----+--------------------------------+
| 0 | |
| | |
| | lower left corner, X position |
| | |
| 1 | |
| | |
| | lower left corner, Y position |
| | |
| 2 | |
| | |
| | lower right corner, X position |
| | |
| 3 | |
| | |
| | lower right corner, Y position |
| | |
| 4 | |
| | |
| | upper right corner, X position |
| | |
| 5 | |
| | |
| | upper right corner, Y position |
| | |
| 6 | |
| | |
| | upper left corner, X position |
| | |
| 7 | |
| | |
| | upper left corner, Y position |
| | |
+----+--------------------------------+
The points are relative to the text regardless of the $angle, so "upper left" means in the top left-hand corner seeing the text horizon-
tally.
EXAMPLES
Example #1
imagettfbbox(3) example
<?php
// Create a 300x150 image
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Set the background to be white
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Path to our font file
$font = './arial.ttf';
// First we create our bounding box for the first text
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());
// This is our cordinates for X and Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Write it
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());
// Create the next bounding box for the second text
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());
// Set the cordinates so its next to the first text
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Write it
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());
// Output to browser
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
NOTES
Note
This function requires both the GD library and the FreeType library.
SEE ALSO
imagettftext(3).
PHP Documentation Group IMAGETTFBBOX(3)