Position actuelle: Accueil> Derniers articles> Utilisez ImageFontWidth () pour obtenir l'alignement du centrage horizontal de texte

Utilisez ImageFontWidth () pour obtenir l'alignement du centrage horizontal de texte

M66 2025-05-29

Lorsque vous utilisez PHP pour le traitement d'image, vous devez souvent ajouter du texte à l'image. Pour rendre le texte plus beau, le centrage horizontal est une opération commune et importante. Cet article présentera comment utiliser la fonction ImageFontWidth () de PHP, combinée à d'autres fonctions connexes, pour réaliser l'effet d'alignement du centrage horizontal du texte dans l'image.

1. Introduction à la fonction ImageFontWidth ()

ImageFontWidth () est une fonction de la bibliothèque PHP GD qui obtient la largeur d'un seul caractère sous une taille de police spécifiée. Son utilisation de base est la suivante:

 int imagefontwidth ( int $font )
  • $ Font est la taille de la police, avec des valeurs allant de 1 à 5.

  • La valeur de retour est la largeur (pixel) d'un seul caractère à cette taille de police.

Après avoir compris la largeur d'un seul caractère, nous pouvons calculer la largeur de l'ensemble du texte en fonction de la longueur de la chaîne, calculant ainsi la coordonnée X de démarrage de démarrage horizontalement.

2. Étapes de mise en œuvre

  1. Créer une image.

  2. Définit la taille de la police et le contenu du texte.

  3. Calculez la largeur des pixels du texte: Largeur de caractères × nombre de caractères.

  4. Calculez la coordonnée x de démarrage lorsqu'elle est centrée: Largeur d'image moins largeur de texte et divisez par 2.

  5. Utilisez la fonction ImageString () pour dessiner du texte sur l'image.

  6. Sortir ou enregistrer l'image.

3. Exemples de code

Voici un exemple complet montrant comment utiliser ImageFontWidth () pour atteindre l'alignement centré horizontal du texte.

 <?php
// Créer une feuille large 400px,haut 100px Pictures de couleur réelles
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// Définir la couleur
$bg_color = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$text_color = imagecolorallocate($image, 0, 0, 0);     // Texte noir

// Remplissez la couleur d&#39;arrière-plan
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);

// Contenu du texte et taille de police
$text = "Bienvenue à visiter m66.net";
$font = 5; // Taille de la police,portée1-5

// Obtenez une largeur de caractère unique
$char_width = imagefontwidth($font);

// Calculez la largeur de l&#39;ensemble du texte
$text_width = $char_width * strlen($text);

// Calculez le début du textexcoordonner,Atteindre le niveau central
$x = ($width - $text_width) / 2;

// ycoordonner,Centre verticalement
$char_height = imagefontheight($font);
$y = ($height - $char_height) / 2;

// Écrire du texte sur l&#39;image
imagestring($image, $font, $x, $y, $text, $text_color);

// Sortir des images au navigateur
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>

Dans ce code:

  • ImageFontWidth ($ FONT) renvoie la largeur (pixels) d'un seul caractère lorsque la taille de la police est de 5.

  • Utilisez strlen ($ text) pour calculer le nombre de caractères de chaîne.

  • Le produit est la largeur totale du texte.

  • Utilisez la largeur de l'image pour soustraire la largeur du texte et divisez par 2 pour calculer le point de départ centré x .

  • De cette façon, le texte peut être affiché horizontalement.

4. Résumé

ImageFontWidth () est l'une des fonctions clés pour atteindre le centrage au niveau du texte. Grâce à lui, en combinant la longueur de la chaîne et la taille de l'image, il est facile de calculer la position de dessin de départ du texte pour s'assurer que le texte s'affiche au centre. Combiné avec ImageFontheight (), vous pouvez obtenir un centrage vertical plus précis.