imagettfbbox
(PHP 4, PHP 5, PHP 7)
imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType
Description
$size
, float $angle
, string $fontfile
, string $text
) : array
Calcule et retourne le rectangle entourant le texte
text
, écrit avec une police truetype.
Note:
imageftbbox() est une variante étendue de imagettfbbox() qui en plus supporte
extrainfo
.
Liste de paramètres
-
size
-
La taille de la police de caractères en point.
-
angle
-
L'angle, en degrés, dans lequel le paramètre
text
sera mesuré. -
fontfile
-
Le 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
. -
text
-
La chaîne à mesurer.
Valeurs de retour
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.
Exemples
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);
?>
Notes
Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )
Voir aussi
- imagettftext() - Dessine un texte avec une police TrueType
- imageftbbox() - Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
Version en cache
25/11/2024 15:17:29 Cette version de la page est en cache (à la date du 25/11/2024 15:17:29) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-imagettfbbox.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.