Maison > développement back-end > Problème PHP > php gd place le texte au centre

php gd place le texte au centre

PHPz
Libérer: 2023-05-06 16:16:08
original
1100 Les gens l'ont consulté

Dans le développement Web, l'ajout de texte aux images est une exigence très courante. Si vous souhaitez que le texte soit affiché au centre, vous devez configurer la bibliothèque gd en php en conséquence.

La bibliothèque PHP GD est une bibliothèque de traitement graphique pour PHP, qui peut être utilisée pour créer et manipuler des images. Grâce à la bibliothèque GD, nous pouvons ajouter du texte, dessiner des lignes, dessiner des graphiques et une série d'opérations sur les images pour répondre à des exigences d'image personnalisées. Dans ces opérations, l'affichage central du texte est une exigence très courante. Voyons comment définir l'affichage central du texte dans la bibliothèque GD.

Tout d'abord, ce qu'il faut clarifier, c'est que les fonctions d'ajout de texte fournies par la bibliothèque GD sont imagestring() et imagestringup(). La fonction de ces deux fonctions est d'ajouter des chaînes à l'image afin que les chaînes soient rendues en fonction de la police et de la taille de police spécifiées. Ici, nous présentons principalement comment utiliser imagestring(). imagestring()imagestringup()。这两个函数的作用是在图像中添加字符串,使字符串按照指定的字体和字号呈现。这里我们主要介绍 imagestring() 的使用方法。

imagestring() 函数的语法格式如下:

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

其中,$image 表示图片资源,$font 表示字体大小,$x$y 表示字符左上角在图像中的位置,$string 表示要输出的字符串,$color 表示字符串的颜色。

下面是具体的示例代码,可以实现将一个字符串在图片中居中显示:

<?php
// 定义文本信息
$text = "Hello World!";

// 定义字体大小
$fontsize = 20;

// 获取字体的宽度和高度
$fontwidth = imagefontwidth($fontsize);
$fontheight = imagefontheight($fontsize);

// 定义图片的宽度和高度
$imageWidth = strlen($text) * $fontwidth;
$imageHeight = $fontheight;

// 创建一个指定大小的画布
$image = imagecreate($imageWidth, $imageHeight);

// 设置背景颜色
$bgColor = imagecolorallocate($image, 255, 255, 255);

// 设置文本颜色
$textColor = imagecolorallocate($image, 0, 0, 0);

// 计算文本的 X 和 Y 坐标
$textX = ($imageWidth - strlen($text) * $fontwidth) / 2;
$textY = ($imageHeight - $fontheight) / 2;

// 在画布上添加文本
imagestring($image, $fontsize, $textX, $textY, $text, $textColor);

// 输出图像
header('Content-Type: image/png');
imagepng($image);

// 释放内存
imagedestroy($image);
?>
Copier après la connexion

在这个实例代码中,我们首先定义了要添加的字符串和字体大小。接着,通过函数imagefontwidth()imagefontheight()计算出字体的宽度和高度,从而确定图片的大小和文本的位置。然后,我们创建了一个指定大小的画布,并设置了背景颜色和文本颜色。最后,通过函数imagestring()将文本添加到了画布中。需要注意的是,我们在计算文本的 X 和 Y 坐标时,使用了如下的公式:

$textX = ($imageWidth - strlen($text) * $fontwidth) / 2;
$textY = ($imageHeight - $fontheight) / 2;
Copier après la connexion

这个公式的作用是计算出文本在画布中的居中位置。首先计算出所有文本所占用的宽度,然后减去图片的宽度,将剩余的宽度除以 2,得到的就是文本的 X 坐标。同理,计算出文本在 Y 轴上的坐标,就可以实现字符串的居中显示了。

需要注意的是,如果要调整字体的样式和颜色等,可以通过相关的 API 进行修改。在这个示例中,我们使用了imagecolorallocate()

imagestring() Le format de syntaxe de la fonction est le suivant :

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color ) 🎜🎜Parmi eux, $image représente la ressource image, $font représente la taille de la police, $x et $y représente la position du coin supérieur gauche du caractère dans l'image, <code>$string représente la chaîne à afficher, et $color représente la couleur de la chaîne. 🎜🎜Ce qui suit est un exemple de code spécifique qui peut centrer une chaîne dans une image : 🎜rrreee🎜Dans cet exemple de code, nous définissons d'abord la chaîne à ajouter et la taille de la police. Ensuite, la largeur et la hauteur de la police sont calculées grâce aux fonctions imagefontwidth() et imagefontheight() pour déterminer la taille de l'image et la position du texte. Ensuite, nous créons un canevas de la taille spécifiée et définissons la couleur d’arrière-plan et la couleur du texte. Enfin, le texte est ajouté au canevas via la fonction imagestring(). Il est à noter que lorsque l'on calcule les coordonnées X et Y du texte, nous utilisons la formule suivante : 🎜rrreee🎜La fonction de cette formule est de calculer la position centrale du texte dans le canevas. Calculez d’abord la largeur occupée par tout le texte, puis soustrayez la largeur de l’image et divisez la largeur restante par 2 pour obtenir la coordonnée X du texte. De la même manière, en calculant les coordonnées du texte sur l'axe Y, il est possible d'obtenir l'affichage centré de la chaîne. 🎜🎜Il est à noter que si vous souhaitez ajuster le style et la couleur de la police, vous pouvez les modifier via l'API correspondante. Dans cet exemple, nous utilisons la fonction imagecolorallocate() pour définir les couleurs du texte et de l'arrière-plan. Dans des projets concrets spécifiques, nous pouvons effectuer des ajustements en fonction de besoins spécifiques. 🎜🎜En bref, paramétrer le centrage du texte dans la bibliothèque GD n'est pas très compliqué. Cette exigence peut être facilement satisfaite en calculant correctement la position du texte et en utilisant les fonctions associées. J'espère que le contenu ci-dessus sera utile à tout le monde. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal