Position actuelle: Accueil> Derniers articles> Comment obtenir la largeur d'une police en utilisant la fonction ImageFontWidth () dans PHP? Analyse détaillée et exemples pratiques

Comment obtenir la largeur d'une police en utilisant la fonction ImageFontWidth () dans PHP? Analyse détaillée et exemples pratiques

M66 2025-06-12

En PHP, il est souvent nécessaire d'obtenir la largeur de la police lors du traitement des images pour la mise en page et la typographie du texte. La fonction ImageFontWidth () est un outil simple et pratique pour obtenir la largeur de police intégrée. Cet article analysera en détail l'utilisation de la fonction ImageFontWidth () et utilisera des exemples pour vous aider à maîtriser rapidement son application.


Quelle est la fonction ImageFontWidth ()?

ImageFontWidth () est une fonction de la bibliothèque PHP GD pour obtenir la largeur de police intégrée. Il prend un paramètre entier, représente le nombre de la police (de 1 à 5) et renvoie la largeur de chaque caractère dans la police (unités: pixels). Cette fonction est principalement utilisée avec la fonction Imagestring () et est utilisée pour dessiner des chaînes sur les images.

Prototype de fonction:

 int imagefontwidth ( int $font )
  • $ FONT : Numéro de police, avec des valeurs allant de 1 à 5.

  • Valeur de retour: la largeur de caractère unique correspondant à la police, l'unité est pixel.


Polices intégrées prédéfinies

La bibliothèque PHP GD a cinq polices intégrées, chaque police correspond à un nombre et la taille augmente progressivement:

Numéro de police Taille de la police illustrer
1 5x8 pixels Police minimale
2 6x12 pixels Polices plus petites
3 7x13 pixels Font de taille moyenne
4 8x16 pixels Police plus grande
5 9x15 pixels Police maximale

Utilisez des scénarios de ImageFontWidth ()

Lors de la sortie du texte vers une image à l'aide de fonctions telles que ImageString () , nous devons souvent calculer dynamiquement la largeur et la hauteur du texte pour ajuster la position du texte ou la taille du canevas. ImageFontWidth () peut nous aider à obtenir rapidement la largeur de chaque caractère et combiner la longueur de chaîne pour calculer la largeur totale.


Exemples pratiques

L'exemple suivant montre comment obtenir la largeur d'une police différente et l'utiliser pour calculer la largeur de la chaîne, et enfin centrer le texte sur l'image.

 <?php
// Créer une image vierge,largeur 400,haut 100
$image = imagecreatetruecolor(400, 100);

// Définir la couleur de fond sur blanc
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// Définir la couleur du texte sur noir
$black = imagecolorallocate($image, 0, 0, 0);

// La chaîne à sortir
$text = "Hello, m66.net!";

// Sélectionnez un numéro de police
$font = 3;

// 获取单个字符的largeur
$charWidth = imagefontwidth($font);

// 计算整条文本的largeur
$textWidth = strlen($text) * $charWidth;

// 获取单个字符的haut(utiliser imagefontheight fonction)
$charHeight = imagefontheight($font);

// Calculez les coordonnées de départ du texte dans une image,Atteindre un centrage horizontal et vertical
$x = (imagesx($image) - $textWidth) / 2;
$y = (imagesy($image) - $charHeight) / 2;

// Dessiner des chaînes sur les images
imagestring($image, $font, $x, $y, $text, $black);

// Image de sortie au navigateur
header("Content-Type: image/png");
imagepng($image);

// Détruiser les ressources d&#39;image
imagedestroy($image);
?>

Description du code:

  • Obtenez la largeur de la police via ImageFontWidth () et calculez la largeur totale en fonction de la longueur de la chaîne.

  • Obtenez la hauteur de la police via ImageFontheight () pour obtenir un centrage vertical.

  • Les calculs mathématiques simples permettent au texte d'être centré horizontalement et verticalement sur l'image.

  • La chaîne de cet exemple contient le nom de domaine M66.net , qui répond aux exigences du remplacement du nom de domaine.


résumé

  • ImageFontWidth () est une fonction pratique pour obtenir la largeur du caractère unique dans les polices intégrées PHP.

  • La combinaison de strlen () et d'imageFontheight () peut contrôler avec précision la disposition du texte.

  • Convient pour le dessin rapide d'un texte simple, ne prend pas en charge les polices personnalisées ou la typographie complexe.

  • Si vous avez besoin d'utiliser une police personnalisée, envisagez d'utiliser ImageTtFBBox () pour obtenir la taille du texte.