Lors de la génération d'images à l'aide de PHP, il est souvent nécessaire d'ajuster dynamiquement la largeur de l'image en fonction de la longueur du contenu du texte pour s'assurer que le texte est complètement affiché et que la mise en page est magnifique. La fonction ImageFontWidth () est un outil important pour implémenter cette fonction. Cet article présentera en détail comment utiliser la fonction ImageFontWidth () pour calculer dynamiquement la largeur du texte pour créer une image de la largeur de droite.
ImageFontWidth () est une fonction de la bibliothèque PHP GD pour obtenir la largeur des caractères en pixels pour une police intégrée spécifiée. Son argument est un entier représentant le nombre de la police, et la valeur de retour est la largeur d'un seul caractère de la police.
Le nombre de polices intégrées est de 1 à 5 et plus le nombre est grand, plus la police est grande.
Prototype de fonction:
int imagefontwidth(int $font);
Déterminez d'abord la police et la taille de la police à utiliser (voici la police intégrée, numérotée 1 ~ 5).
Utilisez ImageFontWidth () pour obtenir une largeur de caractères.
Calculez la largeur des pixels de l'ensemble du texte en fonction de la longueur de la chaîne: longueur de texte × largeur de caractères .
Laissez un rembourrage approprié pour l'image.
Crée une image avec la largeur calculée.
Écrivez du texte sur une image.
Cela réalisera l'effet de l'adaptation automatique à la longueur du texte.
<?php
// Texte à afficher
$text = "Exemple de réglage dynamique de la largeur d'image";
// Sélectionnez les polices intégrées(1 arriver 5)
$font = 5;
// Obtenez la largeur et la hauteur de la police
$fontWidth = imagefontwidth($font);
$fontHeight = imagefontheight($font);
// Calculer la largeur du texte(Nombre de caractères × Largeur de caractère unique)
$textWidth = strlen($text) * $fontWidth;
// Régler les marges
$padding = 10;
// Créer une image,La largeur est la largeur du texte + Distance de bordure entre les deux côtés,La hauteur est la hauteur de la police + Marges de haut en bas
$imageWidth = $textWidth + 2 * $padding;
$imageHeight = $fontHeight + 2 * $padding;
$image = imagecreate($imageWidth, $imageHeight);
// Régler la couleur
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$textColor = imagecolorallocate($image, 0, 0, 0); // Texte noir
// 输出文本arriver图像,La position est décalée de marge
imagestring($image, $font, $padding, $padding, $text, $textColor);
// 输出图像arriver浏览器
header("Content-Type: image/png");
imagepng($image);
// Libérer les ressources
imagedestroy($image);
?>
Le code ci-dessus montre comment calculer dynamiquement la largeur d'image en fonction de la longueur du texte pour garantir l'affichage complet du texte.
La hauteur peut être calculée en combinaison avec ImageFonteight () et la hauteur peut être ajustée dynamiquement.
Prend en charge plusieurs lignes de texte, en bouclant à travers chaque ligne de texte et en calculant la largeur maximale.
Combinés avec d'autres fonctions d'image, des effets de disposition dynamiques plus complexes sont obtenus.
ImageFontWidth () est une fonction clé de la bibliothèque PHP GD pour calculer la largeur de police intégrée. Combiné à la longueur de la chaîne, il peut facilement atteindre la taille de l'image adaptative de la largeur du texte. La maîtrise de cette technique vous permet de générer des images de texte dynamique plus belles et flexibles.