Lorsque vous utilisez PHP pour le traitement d'image, la fonction ImageFontWidth () est un outil commun pour obtenir la largeur d'une police intégrée spécifiée. La syntaxe de base de cette fonction est:
int imagefontwidth ( int $font )
Il accepte un numéro de police en tant que paramètre, renvoyant la largeur en pixels de chaque caractère dans cette police. Normalement, ImageFontWidth () renvoie un entier positif, mais parfois nous constaterons qu'il renvoie 0, provoquant une exception à la logique de traitement d'image. Cet article explorera pourquoi cela se produit et donnera des causes et des solutions communes.
Le numéro de police entrant n'est pas valide
ImageFontWidth () ne peut accepter que des entiers entre 1 et 5, correspondant aux cinq polices intégrées en PHP:
1 - petite police
2 - petite police
3 - police moyenne
4 - Grande police
5 - Font géant
Si un nombre à l'extérieur de cette plage est passé ou si une valeur non entimeuse est réalisée, la fonction retournera 0.
La bibliothèque GD n'est pas installée correctement ou n'est pas activée
La fonction de traitement d'image de PHP dépend de la bibliothèque GD. Si la bibliothèque GD n'est pas installée ou non activée, la largeur de police peut ne pas être renvoyée normalement lorsque ImageFontWidth () est appelé.
L'environnement d'appel de fonction est incomplet
Dans certains cas, la fonction peut également renvoyer 0 si l'environnement d'exécution PHP est incomplet ou si la ressource d'image n'est pas initialisée correctement.
Assurez-vous que le numéro de police que vous transmettez lorsque vous appelez ImageFontWidth () se situe entre 1 et 5.
$font = 3; // Correction de la plage de numéros de police
$width = imagefontwidth($font);
echo "La largeur de la police est:$width";
Le code suivant peut être utilisé pour détecter la bibliothèque GD:
if (function_exists('gd_info')) {
$info = gd_info();
echo "GDLa bibliothèque est activée,Informations sur la version:" . $info['GD Version'];
} else {
echo "GDLa bibliothèque n'est pas installée ou non activée!";
}
Si vous n'êtes pas activé, vous devez installer et activer les extensions GD dans l'environnement PHP.
Assurez-vous que l'environnement est initialisé avant d'appeler ImageFontWidth () . Par exemple, il est généralement utilisé en conjonction avec la fonction ImageString () :
header('Content-Type: image/png');
$im = imagecreatetruecolor(100, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $bg);
$font = 4;
$text = "Hello";
$width = imagefontwidth($font) * strlen($text);
$height = imagefontheight($font);
imagestring($im, $font, (100 - $width) / 2, (30 - $height) / 2, $text, $black);
imagepng($im);
imagedestroy($im);
La raison la plus courante pour ImageFontWidth () pour retourner 0 est qu'un numéro de police non valide est passé.
Assurez-vous que la bibliothèque GD est installée et activée.
Initialiser correctement les ressources d'image et l'environnement d'appel.
Grâce à l'étude ci-dessus, le problème de la fonction ImageFontWidth () renvoyant 0 peut être essentiellement résolu, assurant l'achèvement fluide du processus de traitement de l'image.