ImageFontWidth () est une fonction relativement basique mais très pratique lors de l'utilisation de la bibliothèque GD de PHP pour le traitement d'image. Il est généralement utilisé avec des fonctions telles que ImageString () pour contrôler avec précision la disposition du texte sur les images. Comprendre la valeur de retour de ImageFontWidth () nous aide à calculer plus précisément la largeur du texte lors de la génération dynamique des images, en évitant le problème du texte dépassant la limite ou la confusion de typographie.
ImageFontWidth () est une fonction de la bibliothèque PHP GD qui prend un paramètre - la taille de la police (ou l'identifiant de la police), renvoyant la largeur du pixel horizontal de chaque caractère dans la police. La valeur de retour de cette fonction est un entier représentant la largeur (en pixels) de tout caractère de la police.
$width = imagefontwidth(5);
echo $width; // Sortir un numéro de police 5 Largeur du caractère
Les paramètres utilisés dans ImageFontWidth () ne sont pas arbitraires, mais plutôt un ensemble d'identifiants de police prédéfinis fournis par PHP. Ce sont généralement des entiers, de 1 à 5, correspondant aux polices de largeur fixe intégrées:
1 : Police minimale, largeur étroite
2 : Un peu plus grand
3 : taille moyenne
4 : légèrement plus grand
5 : la plus grande police intégrée
Par exemple, si vous utilisez l'identifiant de police 1, alors ImageFontWidth (1) peut retourner 5, ce qui signifie que chaque caractère mesure 5 pixels de large; S'il s'agit de l'identifiant de police 5, il peut retourner 9, indiquant que chaque personnage occupe 9 pixels de large.
La valeur de retour est un entier représentant la largeur des pixels occupé par le caractère dans la direction horizontale. Autrement dit, si vous souhaitez dessiner une chaîne de caractères sur une image, par exemple:
$text = "Hello, World!";
Ensuite, vous pouvez calculer la largeur globale de la chaîne de caractères de la manière suivante:
$font = 5;
$width = imagefontwidth($font) * strlen($text);
Cette largeur peut vous aider:
Texte d'alignement central : Vous pouvez obtenir la coordonnée horizontale de départ du texte en soustrayant la largeur du texte en la divisant par deux.
Déterminez si le texte débordera des limites : vous pouvez juger si le raccourcissement ou le texte de rupture doit être basé sur la largeur de l'image.
Implémentation de positionnement précis : cette valeur est très critique pour les dispositions d'image avec des exigences de niveau de pixel élevé.
Supposons que vous ayez besoin de centrer le texte sur une image d'une largeur de 200 pixels:
$text = "Hello";
$font = 3;
$image = imagecreate(200, 50);
$bg = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
$text_width = imagefontwidth($font) * strlen($text);
$x = (200 - $text_width) / 2;
$y = 20;
imagestring($image, $font, $x, $y, $text, $text_color);
imagepng($image, 'output.png');
imagedestroy($image);
Dans cet exemple, nous utilisons ImageFontWidth () pour obtenir la largeur de chaque caractère, puis le multiplions par le nombre total de caractères pour calculer la largeur du pixel de l'ensemble du texte, réalisant ainsi l'affichage centré.
ImageFontWidth () ne fonctionne qu'avec des polices intégrées. Pour la police TrueType utilisée par ImageTtFText () , le calcul de la largeur doit être calculé à l'aide d'imagettfbbox () .
La valeur de retour est affectée par le numéro de police, qui ne prend pas en charge les polices personnalisées en soi.