Position actuelle: Accueil> Derniers articles> Comment construire une partie littérale d'arrière-plan en php via des fonctions ImageFontWidth () et ImageFildRectangle ()?

Comment construire une partie littérale d'arrière-plan en php via des fonctions ImageFontWidth () et ImageFildRectangle ()?

M66 2025-06-15

En PHP, l'utilisation de la bibliothèque GD pour le traitement d'image est une opération courante. Si vous souhaitez dessiner des blocs de texte avec des couleurs d'arrière-plan sur une image, les deux fonctions ImageFontWidth () et ImageFoulDrectangle () seront très utiles. Cet article introduira en détail comment réaliser l'effet de bloc de texte d'arrière-plan à travers ces deux fonctions.

1. Fonction Introduction

  • ImageFontWidth (int $ font): int
    Cette fonction renvoie la largeur du caractère de la police intégrée spécifiée. Ici $ Font est un entier représentant la taille de police intégrée de la bibliothèque GD (généralement 1 ~ 5). Une fois que nous connaissons la largeur de la police, nous pouvons calculer la largeur du bloc de texte.

  • ImageFilDectangle (Ressource $ image, int $ x1, int $ y1, int $ x2, int $ y2, int $ couleur): bool
    Cette fonction dessine un rectangle rempli sur l'image $ $ Image , avec des coordonnées dans le coin supérieur gauche ( $ x1 , $ y1 ) et le coin inférieur droit ( $ x2 , $ y2 ), et la couleur de remplissage est $ couleur .

En combinant ces deux fonctions, vous pouvez d'abord calculer la taille du rectangle d'arrière-plan en fonction de la longueur du texte et de la largeur de la police, puis dessinez le rectangle, et enfin dessiner le texte, formant ainsi un bloc de texte avec un arrière-plan.

2. Exemple d'explication de code

 <?php
// Créer une toile vierge
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// Régler la couleur
$bgColor = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$textColor = imagecolorallocate($image, 0, 0, 0);     // Texte noir
$rectColor = imagecolorallocate($image, 200, 200, 200); // Blocs de fond gris

// Remplir la couleur d&#39;arrière-plan de la toile
imagefill($image, 0, 0, $bgColor);

// Texte et polices
$text = "PHP Exemple de blocs de texte avec fond";
$font = 5; // GD Taille de police intégrée,portée 1~5

// Calculez la largeur et la hauteur du texte
$fontWidth = imagefontwidth($font);
$fontHeight = imagefontheight($font);
$textWidth = $fontWidth * strlen($text);
$textHeight = $fontHeight;

// Coordonnées rectangulaires d&#39;arrière-plan(Laisser une marge)
$padding = 5;
$x1 = 50;
$y1 = 30;
$x2 = $x1 + $textWidth + 2 * $padding;
$y2 = $y1 + $textHeight + 2 * $padding;

// Dessinez le rectangle de remplissage comme arrière-plan
imagefilledrectangle($image, $x1, $y1, $x2, $y2, $rectColor);

// Dessinez du texte sur l&#39;arrière-plan(Faites attention à la compensationpadding)
imagestring($image, $font, $x1 + $padding, $y1 + $padding, $text, $textColor);

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

// Libérer les ressources
imagedestroy($image);
?>

Points clés du code

  • Utilisez ImageFontWidth ($ FONT) et ImageFontheight ($ FONT) pour obtenir la largeur et la hauteur d'un seul caractère de la police.

  • Calculez la largeur de l'ensemble du texte en fonction de la longueur de la chaîne.

  • Définissez un rembourrage de marge de marge approprié afin que le rectangle d'arrière-plan ne colle pas au texte.

  • Dessinez le rectangle d'arrière-plan avec ImageFildRectangle () .

  • Utilisez ensuite ImageString () pour dessiner du texte sur le rectangle d'arrière-plan pour vous assurer que le texte a des marges intérieures.

3. Développez la demande

  • Vous pouvez modifier la couleur du bloc d'arrière-plan en ajustant la valeur de couleur de $ rectcolor .

  • Combinée à d'autres fonctions GD, plus d'effets peuvent être obtenus, tels que des rectangles arrondis, des ombres, etc.

  • Si vous devez prendre en charge les styles de police plus complexes, vous pouvez utiliser ImageTtFText () pour obtenir un rendu de texte plus flexible avec des fichiers de police.

4. Matériaux de référence