Position actuelle: Accueil> Derniers articles> Astuces de fonction ImageFtText pour dessiner du texte ombragé

Astuces de fonction ImageFtText pour dessiner du texte ombragé

gitbox 2025-05-26

Lors du traitement des images à l'aide de PHP, la fonction ImageFtText est un outil très pratique qui nous permet de dessiner du texte sur des images qui prennent en charge les polices TrueType. En plus du dessin de texte ordinaire, nous pouvons également ajouter des effets d'ombre au texte pour améliorer la hiérarchie visuelle et l'esthétique.

Cet article expliquera en détail comment utiliser la fonction ImageFtText pour dessiner du texte ombragé et utiliser des exemples de code réels pour vous aider à maîtriser cette technique rapidement.

1. Préparation

Tout d'abord, assurez-vous que votre environnement de serveur a une extension GD activée et PHP prend en charge la bibliothèque Freetype Font. De plus, vous devez préparer un fichier de police TTF, tel que le commun Arial.TTF . Vous pouvez copier à partir des polices système, ou télécharger vos fichiers de police préférés et les stocker dans le répertoire du projet.

2. Examen de l'utilisation de base

La syntaxe de base de ImageFtText est la suivante:

 imagefttext(
    GdImage $image,
    float $size,
    float $angle,
    int $x,
    int $y,
    int $color,
    string $font_filename,
    string $text,
    array $options = []
): array

Dessinez du texte sans ajouter d'ombres, le code pourrait ressembler à ceci:

 $im = imagecreatetruecolor(400, 200);
$bg = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 400, 200, $bg);

$textColor = imagecolorallocate($im, 0, 0, 0);
$font = __DIR__ . '/arial.ttf';

imagefttext($im, 20, 0, 50, 100, $textColor, $font, 'Hello World');

3. Dessinez du texte ombragé

L'astuce pour dessiner des ombres est: tracer d'abord les ombres, puis dessiner le texte principal . Habituellement, les ombres sont le même texte avec des couleurs légèrement décalées et plus foncées ou moins de transparence.

Voici un exemple complet de l'ajout d'un effet d'ombre:

 $im = imagecreatetruecolor(400, 200);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 400, 200, $white);

// Couleur de l'ombre(gris)
$shadowColor = imagecolorallocate($im, 100, 100, 100);
// Couleur du texte principal(noir)
$textColor = imagecolorallocate($im, 0, 0, 0);

$font = __DIR__ . '/arial.ttf';
$text = 'Hello Shadow';

// Position du texte et taille
$fontSize = 24;
$angle = 0;
$x = 50;
$y = 100;

// Dessinez l'ombre en premier(Décalage vers le bas à droite2px)
imagefttext($im, $fontSize, $angle, $x + 2, $y + 2, $shadowColor, $font, $text);

// Dessinez le texte principal
imagefttext($im, $fontSize, $angle, $x, $y, $textColor, $font, $text);

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

4. Description de l'effet

  • ImageColorAllocate est utilisé pour définir les couleurs du texte principal et des ombres.

  • Les ombres sont implémentées par un réglage fin de la position du texte, par exemple (x + 2, y + 2) .

  • La couleur de l'ombre doit être inférieure à la luminosité de la couleur du texte principal, ou la transparence peut être définie par l'imagecolorallocatealpha pour obtenir une ombre plus naturelle.

5. Démonstration et test en ligne

Si vous souhaitez afficher rapidement l'effet, vous pouvez enregistrer le code ci-dessus en tant que fichier shadow-tex.php et le télécharger sur un serveur compatible PHP, par exemple:

 https://gitbox.net/shadow-text.php

Assurez-vous que le serveur dispose du fichier de police correspondant (tel que Arial.ttf ) dans le même répertoire, sinon le chargement de police échouera.

6. Résumé

Avec des décalages de coordonnées simples et une correspondance des couleurs raisonnables, nous pouvons utiliser ImageFtText pour obtenir un effet d'ombre de texte satisfaisant. Cette technique est largement utilisée dans la génération de code de vérification, le dessin de filigrane et la sortie d'image personnalisée. Faire bon usage de la bibliothèque GD peut considérablement améliorer vos capacités de traitement d'image.

Dans les projets futurs, vous pourriez aussi bien essayer plus de changements dans les styles de texte, tels que la superposition des ombres floues, la projection multicouche, les effets de course, etc., pour embellir davantage l'image de sortie.