Position actuelle: Accueil> Derniers articles> Utilisez ImageFontheight () pour obtenir la taille pleine de caractère

Utilisez ImageFontheight () pour obtenir la taille pleine de caractère

M66 2025-06-01

Lorsque vous utilisez PHP pour le traitement d'image, la bibliothèque GD intégrée fournit des fonctions telles que ImageString () , ImageTtFText () , etc. pour dessiner du texte. Pour les polices bitmap, nous pouvons utiliser ImageFontWidth () et ImageFontheight () pour obtenir la taille de la police pour calculer correctement la position, l'alignement ou les limites d'enveloppement de texte des caractères de l'image.

Cet article introduira l'utilisation de ces deux fonctions et montrera comment les utiliser ensemble pour calculer la largeur et la hauteur globales d'un morceau de texte pour vous assurer que vous pouvez disposer avec précision le contenu texte dans l'image.

1. Fonction Introduction

ImageFontWidth ()

 int imagefontwidth(int $font);

Cette fonction renvoie la largeur (pixel) d'un seul caractère correspondant au numéro de police donné.

ImageFontheight ()

 int imagefontheight(int $font);

Cette fonction renvoie la hauteur (pixel) d'un seul caractère correspondant au numéro de police donné.

La bibliothèque GD de PHP fournit 5 polices intégrées (numérotées de 1 à 5) et plus le nombre est grand, plus la police est grande.

2. Calculez la largeur et la hauteur d'un morceau de texte

Pour obtenir la taille de la zone des pixels requise après avoir dessiné une chaîne entière, nous avons juste besoin de combiner la largeur et la hauteur d'un seul caractère avec la longueur de la chaîne:

 $text = "Hello, PHP!";
$font = 3; // Les gammes disponibles sont 1 arriver 5

$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);

$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;

echo "Largeur du texte: {$textWidth}px\n";
echo "Hauteur de texte: {$textHeight}px\n";

Cet extrait de code vous dira comment utiliser Font 3 pour dessiner la largeur et la hauteur des pixels du texte "Bonjour, php!" .

3. Créer une image et dessiner du texte (exemple)

Voici un exemple complet pour dessiner le texte sur une image qui maintient simplement le texte et le sortant en PNG:

 <?php
$text = "Hello, PHP!";
$font = 3;

$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);

$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;

$image = imagecreate($textWidth, $textHeight);
$background = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$textColor = imagecolorallocate($image, 0, 0, 0); // Texte noir

imagestring($image, $font, 0, 0, $text, $textColor);

// Image de sortie
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>

Enregistrez le code ci-dessus en tant que fichier PHP et accédez-y via le serveur pour voir l'image générée. Cet exemple peut être élargi, comme l'ajout de marges, le centre d'alignement ou le dessin de plusieurs lignes de texte.

4. Exemples de scénarios d'application

Cette méthode est couramment utilisée pour:

  • Générer dynamiquement des images de code de vérification;

  • Créer des images filigranées;

  • Faites des barres de signature simples, des balises de nom d'utilisateur, etc.;

  • L'arrière-plan génère des images de notification, telles que l'ajout de nombres à l'icône.

Par exemple, le déploiement de ces fonctions sur le site https://www.m66.net/gen.php?text=hellophp peut activer la génération d'images paramétrée.

Conclusion

Utilisez ImageFontWidth () et ImageFontheight () pour obtenir la largeur et la hauteur de la police unique de la police, puis combinez la longueur de chaîne pour calculer facilement la taille de la zone de pixel du texte dans son ensemble. Bien que cette méthode ne soit pas aussi flexible que les polices TTF, elle est toujours très pratique dans les scénarios où les performances et la simplicité sont nécessaires. J'espère que cet article peut vous aider à mieux contrôler l'emplacement et la mise en page du texte dans l'image.