php8.5
Home/ Manual/ image / functions/ imagettfbbox

imagettfbbox

PHP function Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Give the bounding box of a text using TrueType fonts

Description

imagettfbbox(float $size, float $angle, string $font_filename, string $string, array $options = []): array|false

This function calculates and returns the bounding box in pixels for a TrueType text.

Note

Prior to PHP 8.0.0, imageftbbox() was an extended variant of imagettfbbox() which additionally supported the extrainfo. As of PHP 8.0.0, imagettfbbox() is an alias of imageftbbox().

Parameters

size

Size

angle

Angle in degrees in which string will be measured.

string

The string to be measured.

options

Same as in imagettftext().

Return Values

imagettfbbox() returns an array with 8 elements representing four points making the bounding box of the text on success and false on error.

keycontents
0lower left corner, X position
1lower left corner, Y position
2lower right corner, X position
3lower right corner, Y position
4upper right corner, X position
5upper right corner, Y position
6upper left corner, X position
7upper 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 horizontally.

Changelog

VersionDescription
8.0.0The options has been added.

Examples

imagettfbbox() example

php
<?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 coordinates 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 coordinates 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);
?>

Notes Freetype

See Also

Source: reference/image/functions/imagettfbbox.xml · from the official PHP manual (php/doc-en)