Maison > développement back-end > Problème PHP > Que dois-je faire si PHP ne peut pas afficher l'image avec GD ?

Que dois-je faire si PHP ne peut pas afficher l'image avec GD ?

藏色散人
Libérer: 2023-03-09 19:14:01
original
2248 Les gens l'ont consulté

Solutions au problème selon lequel le dessin PHP utilisant gd ne peut pas être affiché : 1. Enregistrez le format de fichier au format utf-8 sans BOM ; 2. Utilisez "ob_clean();" pour vider le tampon.

Que dois-je faire si PHP ne peut pas afficher l'image avec GD ?

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

PHP utilise la bibliothèque GD pour dessiner des images et ne peut pas les afficher.

Dessinez le style du document image selon la bibliothèque officielle GD

Style de base original

$width = 120;
$height = 50;
$img = @imagecreatetruecolor($width, $height) or die('Cannot Initialize new GD image stream');;//新建一个GD图像资源
$img_bgcolor = imagecolorallocate($img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));//背景色
$img_textcolor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));//字体颜色
$img_rectangle = imagefilledrectangle($img,0,0,$width, $height,$img_bgcolor);//画一个矩形图像
imagestring($img, 1, 5, 5, 'A Simple Text String', $img_textcolor);
// 输出图像
header("Content-type:image/png");
imagepng($img);
imagedestroy($img);//销毁图像
Copier après la connexion

Mais cela ne fonctionnera pas dans l'application réelle Le problème de l'affichage normal des images :

Les raisons peuvent être les suivantes :

Cause 1 : Le format d'encodage du fichier a un en-tête de nomenclature. utilisez un outil d'encodage tiers, sublime ou notepad++, etc., enregistrez le format de fichier au format utf-8 sans BOM

Raison 2 : problème de tampon PHP, la solution est d'utiliser ob_clean(); le tampon.

Fonction tampon commune ob function

Référence : http://php.net/manual/zh/ref.outcontrol.php

ob_get_contents() - 返回输出缓冲区的内容
ob_flush() - 冲刷出(送出)输出缓冲区中的内容
ob_clean() - 清空(擦掉)输出缓冲区
ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲
flush() - 刷新输出缓冲
Copier après la connexion

Jugez si la bibliothèque GD est installée

function_exists('imagecreate') Jugez get_extension_funcs() en jugeant si la méthode fournie par la bibliothèque d'extension existe, mais elle n'est pas exhaustive et cette méthode ne l'est pas recommandé (car certaines extensions Aucune fonction n'est fournie)

in_array('extension', get_loaded_extensions()) Déterminer si l'extension est installée en vérifiant si elle fait partie des extensions chargées (complet, mais pas concis)

extension_loade('Extension library name') Vérifiez en jugeant si la bibliothèque d'extension est chargée (complète et non concise, il est recommandé d'utiliser cette méthode pour vérifier si l'extension est installée et chargée)

Apprentissage recommandé : "Tutoriel vidéo PHP

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!

Étiquettes associées:
php
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