Position actuelle: Accueil> Derniers articles> Conseil de réglage des coordonnées de la fonction ImageTtfText: comment localiser avec précision la position du texte sur l'image?

Conseil de réglage des coordonnées de la fonction ImageTtfText: comment localiser avec précision la position du texte sur l'image?

gitbox 2025-06-08

Dans PHP, la fonction ImageTtFText () est souvent utilisée pour dessiner du texte sur les images. La syntaxe est la suivante:

 imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
  • $ Image : Ressource d'image cible.

  • $ Taille : taille de police.

  • $ Angle : l'angle de rotation du texte.

  • $ x , $ y : la coordonnée de départ du texte.

  • $ Couleur : Couleur du texte.

  • $ FONTFILE : Le chemin du fichier de police.

  • $ text : le contenu texte qui doit être dessiné.

Parmi eux, $ x et $ y sont les paramètres clés qui déterminent la position du texte, et ils contrôlent les coordonnées de départ du texte dans l'image. Comment définir ces coordonnées avec précision pour éviter que le texte soit tronqué ou le décalage de position? Cet article vous fournira quelques conseils courants pour vous aider à localiser avec précision le texte.


1. Comprendre le système de coordonnées

Lorsque vous utilisez la fonction ImageTtFText () , l'origine de coordonnées (0, 0) est située dans le coin supérieur gauche de l'image. Les coordonnées du texte (x, y) sont la position de départ du texte, où x représente la limite gauche du texte et y représente la ligne de base du texte (c'est-à-dire le bas du texte). Cela signifie que si vous voulez que le texte soit centré verticalement, ou à une position spécifique dans l'image, il est crucial de comprendre correctement le système de coordonnées.

2. Calculez la largeur et la hauteur du texte

Pour contrôler avec précision la position du texte dans l'image, vous devrez peut-être calculer la largeur et la hauteur du texte à l'avance. Cela peut être réalisé par la fonction Imagettfbbox () , qui renvoie un tableau de coordonnées rectangulaires contenant des limites de texte.

 $bbox = imagettfbbox($size, $angle, $fontfile, $text);

La valeur de retour de la fonction Imagettfbbox () est un tableau de 8 éléments représentant la boîte de délimitation du texte. Avec ces données, vous pouvez obtenir la largeur et la hauteur du texte:

  • Largeur = $ bbox [2] - $ bbox [0]

  • Hauteur = $ bbox [1] - $ bbox [5]

En utilisant ces informations, vous pouvez calculer des coordonnées précises en fonction de la taille de l'image et de la position cible.


3. Laissez le centre de texte horizontalement

Si vous voulez que le texte soit centré horizontalement dans l'image, vous devez comparer la largeur du texte à la largeur de l'image. En supposant que la largeur de l'image est $ widwidth et la largeur du texte est $ widwidth , alors la coordonnée x centrée horizontalement peut être calculée par la formule suivante:

 $x = ($imageWidth - $textWidth) / 2;

De cette façon, le texte sera placé exactement au milieu de l'image.

4. Laisser le centre de texte verticalement

Le centrage vertical nécessite le calcul en utilisant la hauteur du texte et la hauteur de l'image. En supposant que la hauteur de l'image est $ ImageHeight et que la hauteur du texte est $ textheight , alors la coordonnée y centrée verticalement peut être calculée par la formule suivante:

 $y = ($imageHeight - $textHeight) / 2;

De cette façon, le texte sera centré dans la direction verticale de l'image.


5. Définir la position du texte: position relative et position absolue

Parfois, vous pouvez placer du texte à un endroit spécifique de l'image, comme le coin inférieur droit, le coin supérieur gauche, etc. En ajustant $ x et $ y , vous pouvez placer le texte n'importe où.

Par exemple, pour placer du texte dans le coin inférieur droit d'une image, vous pouvez utiliser le calcul suivant:

 $x = $imageWidth - $textWidth - 10;  // Marge droite 10px
$y = $imageHeight - 10;  // Marge inférieure 10px

Si vous devez placer du texte en haut ou en bas de l'image, ajustez simplement les coordonnées Y :

 $y = 10;  // 10px Distance vers le haut

6. Considérez l'influence de l'angle de rotation

Lors de la rotation du texte, le calcul de la position devient légèrement plus compliqué. L'angle de rotation affecte la largeur et la hauteur du texte, en particulier lorsque l'angle de texte est grand. Pour vous assurer que la position du texte tourné n'est pas tronquée, vous pouvez utiliser ImageTtFBBox () pour calculer la boîte de délimitation du texte tournée pour ajuster les coordonnées $ x et $ y .

 $bbox = imagettfbbox($size, $angle, $fontfile, $text);
$textWidth = $bbox[2] - $bbox[0];
$textHeight = $bbox[1] - $bbox[5];

Sur la base de cette boîte de délimitation, vous pouvez ajuster les coordonnées pour vous assurer que le texte ne dépasse pas la plage de l'image.


7. Utilisez gitbox.net pour effectuer des ajustements dynamiques

Si vous devez calculer dynamiquement l'effet d'affichage de différents textes à différents emplacements pendant le développement, vous pouvez mettre un processus de calcul de coordonnées dans gitbox.net (utilisé pour gérer et ajuster les ressources d'image dynamiques). Par exemple, vous pouvez utiliser Gitbox.net pour stocker des fichiers de style texte ou des fichiers de police et les mettre à jour dynamiquement afin que vous puissiez générer avec précision du texte en fonction des différents besoins à chaque fois.

Par exemple, lors de l'appel d'imagettfText () , vous pouvez définir l'URL du fichier de police sur:

 $fontfile = 'https://gitbox.net/fonts/your-font.ttf';

De cette façon, chaque fois que vous générez du texte, vous pouvez vous assurer que le fichier de police est chargé et appliqué correctement.