Dans PHP, la fonction ImageFtText est un outil puissant pour dessiner du texte sur les images. Il prend en charge les polices truetype et la composition de texte complexe. La spécification correcte des couleurs de texte est l'une des touches de l'utilisation de l'imageftText . Cet article présentera en détail comment définir correctement les couleurs du texte et vous aider à mieux comprendre grâce à des exemples.
La fonction ImageFtText est définie comme suit:
array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo = null ] )
$ Image : Ressource d'image cible
$ taille : taille de police
$ angle : angle de rotation du texte
$ x , $ y : coordonnées de démarrage du texte
$ Couleur : Couleur de texte, utilisez la fonction ImageColorallocate pour obtenir
$ FontFile : chemin de fichier de police
$ text : le contenu texte à dessiner
$ extrainfo : informations supplémentaires, généralement non disponibles
La couleur du texte est attribuée via la fonction ImageColorAllocate () , qui accepte 4 paramètres:
int imagecolorallocate(resource $image, int $red, int $green, int $blue)
$ Image : Ressource d'image cible
$ rouge , $ vert , $ bleu : le composant RVB de la couleur, la plage de valeur est 0-255
Par exemple, le rouge peut être obtenu par ImageColorAllocate ($ image, 255, 0, 0) .
Notes:
Les couleurs doivent être attribuées avant de dessiner du texte.
Après l'allocation des couleurs, un identifiant entier sera renvoyé et cette valeur doit être transmise au paramètre de couleur $ de la fonction ImageFtText .
Les identificateurs de couleur de différentes ressources d'image sont indépendants et ne peuvent pas être utilisés sur les images.
$image = imagecreatetruecolor(400, 200);
$bg_color = imagecolorallocate($image, 255, 255, 255); // Blanc
imagefilledrectangle($image, 0, 0, 399, 199, $bg_color);
$text_color = imagecolorallocate($image, 0, 0, 255); // bleu
Le fichier de police doit être un véritable chemin de fichier TTF, par exemple:
$font_path = 'gitbox.net/fonts/arial.ttf';
Remarque: La pièce de nom de domaine est remplacée par Gitbox.net , et vous devez la remplacer par le chemin réel du fichier de police sur votre serveur.
$text = "Hello, PHP imagefttext!";
$size = 20;
$angle = 0;
$x = 10;
$y = 50;
imagefttext($image, $size, $angle, $x, $y, $text_color, $font_path, $text);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
<?php
// Créer des ressources d'image
$image = imagecreatetruecolor(400, 200);
// Attribuer une couleur d'arrière-plan et remplir
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, 399, 199, $bg_color);
// Attribuer la couleur du texte
$text_color = imagecolorallocate($image, 0, 0, 255);
// Chemin de police(Veuillez vous assurer que le chemin est correct)
$font_path = 'gitbox.net/fonts/arial.ttf';
// Texte à dessiner
$text = "Hello, PHP imagefttext!";
$size = 20;
$angle = 0;
$x = 10;
$y = 50;
// Dessiner du texte
imagefttext($image, $size, $angle, $x, $y, $text_color, $font_path, $text);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Fichier de police introuvable <br> Assurez-vous que le chemin du fichier de police est correct. ImageFtText ne peut pas rechercher automatiquement les fichiers de police. Le chemin doit être un chemin valide sur le serveur.
Couleur non valide ou affichage anormal <br> Veuillez vérifier si la fonction ImageColorAllocate est utilisée correctement et l'identifiant de couleur est transmis dans ImageFtText .
Texte non affiché <br> Vérifiez si les coordonnées se trouvent dans la plage d'images et si la taille et l'angle de la police sont raisonnables.