(PHP 4, PHP 5, PHP 7, PHP 8)
imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType
$size,$angle,$font_filename,$string,$options = []
   Calcule et retourne le rectangle entourant le texte
   text, écrit avec une police truetype.
  
Note:
Antérieur à PHP 8.0.0, imageftbbox() était une variante étendue de imagettfbbox() qui en plus supporte
extrainfo. À partir de PHP 8.0.0, imagettfbbox() est un alias de imageftbbox().
sizeLa taille de la police de caractères en point.
angle
       L'angle, en degrés, dans lequel le paramètre string
       sera mesuré.
      
fontfileLe chemin d'accès à la police TrueType que vous souhaitez utiliser.
        Selon la version de la bibliothèque GD que PHP utilise, quand
        fontfile ne commence pas par une premier
        / alors .ttf sera ajouté
        au nom de fichier et la bibliothèque essaiera de rechercher ce nom de
        fichier le long d'un chemin de police défini par la bibliothèque.
    
        Lorsque vous utilisez des versions de la bibliothèque GD inférieure à
        2.0.18, un caractère espace, plutôt qu'un
        point-virgule, a été utilisé comme séparateur de chemin d'accès pour
        différents fichiers de police. L'utilisation involontaire de cette
        fonctionnalité se traduira par le message d'avertissement: 
        Avertissement: impossible de trouver/ouvrir la police. Pour
        ces versions affectées, la seule solution consiste à déplacer la police
        vers un chemin qui ne contient pas d'espaces.
    
Dans de nombreux cas où une police réside dans le même répertoire que le script en l'utilisant l'astuce suivante permettra d'atténuer les problèmes d'inclusion.
<?php
// Définir la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));
// Nommez la police à utiliser (Notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>
Note:
Notez que open_basedir ne s'applique pas à
fontfile.
stringLa chaîne à mesurer.
   imagettfbbox() retourne un tableau avec 8
   éléments représentant les 4 sommets du rectangle
   en cas de succès, false si une erreur survient.
   
| Clé | Signification | 
|---|---|
| 0 | Coin inférieur gauche, abscisse | 
| 1 | Coin inférieur gauche, ordonnée | 
| 2 | Coin inférieur droit, abscisse | 
| 3 | Coin inférieur droit, ordonnée | 
| 4 | Coin supérieur droit, abscisse | 
| 5 | Coin supérieur droit, ordonnée | 
| 6 | Coin supérieur gauche, abscisse | 
| 7 | Coin supérieur gauche, ordonnée | 
Les positions des points sont relatives au texte text, indépendamment de l'angle : coin supérieur gauche faire référence au coin supérieur gauche du texte écrit horizontalement.
| Version | Description | 
|---|---|
| 8.0.0 | Le paramètre optionsa été ajouté. | 
Exemple #1 Exemple avec imagettfbbox()
<?php
// Création d'une image de 300x150 pixels
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Chemin vers le fichier de police
$font = './arial.ttf';
// Tout d'abord, nous créons notre rectangle entourant notre premier texte
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());
// Nos coordonnées en X et en Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Dessin du texte
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());
// Nous créons notre rectangle entourant notre second texte
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());
// Définit les coordonnées afin que le second text suive le premier
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Dessin du texte
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());
// Affichage vers le navigateur
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR)