Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn die Zeichnung mit gd in PHP nicht angezeigt werden kann?

Was soll ich tun, wenn die Zeichnung mit gd in PHP nicht angezeigt werden kann?

藏色散人
藏色散人Original
2021-05-19 10:17:062199Durchsuche

Lösungen für das Problem, dass PHP keine Bilder mit GD anzeigen kann: 1. Speichern Sie das Dateiformat als utf-8-Format ohne BOM; 2. Verwenden Sie „ob_clean();“

Was soll ich tun, wenn die Zeichnung mit gd in PHP nicht angezeigt werden kann?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP verwendet die GD-Bibliothek zum Zeichnen von Bildern und kann das Problem nicht anzeigen

Zeichnen Sie den Bilddokumentstil gemäß dem Beamten GD-Bibliothek

Ursprünglicher Grundstil

$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);//销毁图像

Aber in der tatsächlichen Anwendung tritt das Problem auf, dass das Bild nicht normal angezeigt werden kann:

Die Gründe können folgende sein:

Ursache 1: Das Dateikodierungsformat hat einen BOM-Header. Die Lösung besteht darin, die ersten Codierungstools von Drittanbietern wie Sublime oder Notepad++ zu verwenden und das Dateiformat als UTF-8-Format ohne BOM zu speichern.

Grund 2: PHP-Pufferproblem. Die Lösung besteht darin, ob_clean zu verwenden (); um den Puffer zu löschen.

Häufig verwendete Pufferfunktion ob-Funktion

Referenz: http://php.net/manual/zh/ref.outcontrol.php

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

Bestimmen Sie, ob die GD-Bibliothek installiert ist

function_exists('imagecreate' ) Pass Bestimmen Sie, ob die von der Erweiterungsbibliothek bereitgestellte Methode zur Bestimmung von get_extension_funcs() vorhanden ist. Sie ist jedoch nicht umfassend und diese Methode wird nicht empfohlen (da einige Erweiterungen keine Funktionen bereitstellen).

in_array('extension', get_loaded_extensions()) Durch Überprüfen, ob die Erweiterung vorhanden ist. Überprüfen Sie, ob die Erweiterung installiert ist, indem Sie beurteilen, ob sie installiert ist (umfassend, aber nicht prägnant).

extension_loade('Name der Erweiterungsbibliothek') Überprüfen Sie, ob die Erweiterung geladen ist (umfassend, aber nicht prägnant). Es wird empfohlen, diese Methode zu verwenden, um zu überprüfen, ob die Erweiterung installiert ist. Laden)

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die Zeichnung mit gd in PHP nicht angezeigt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn