Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn PHP ImagePNG nicht ausgegeben werden kann?

Was soll ich tun, wenn PHP ImagePNG nicht ausgegeben werden kann?

藏色散人
藏色散人Original
2021-09-14 09:21:111874Durchsuche

Lösung für das Problem, dass php imagepng nicht ausgegeben werden kann: 1. Speichern Sie die Datei in einem BOM-freien Format. 2. Definieren Sie den Header und löschen Sie den Cache-Bereich mit Code wie „header ('Content-Type: image/ png');".

Was soll ich tun, wenn PHP ImagePNG nicht ausgegeben werden kann?

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Was soll ich tun, wenn PHP ImagePNG nicht ausgegeben werden kann?

Das Problem, dass PHP ImagePng() die Bildausgabe nicht im Browser anzeigen kann

Nehmen Sie den Code, der den Bestätigungscode zufällig generiert. Wenn Sie das Bild erfolgreich an den Browser ausgeben möchten, müssen Sie darauf achten zwei Dinge:

private function captcha(){
		ob_clean();
		session_start();
		
		header ('Content-Type: image/png');

		$image=imagecreatetruecolor(100, 30);//背景颜色为白色
		$color=imagecolorallocate($image, 255, 255, 255);
		imagefill($image, 20, 20, $color);

		$code='';
		for($i=0;$i<4;$i++){
		    $fontSize=8;
		    $x=rand(5,10)+$i*100/4;
		    $y=rand(5, 15);
		    $data=&#39;ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789&#39;;
		    $string=substr($data,rand(0, strlen($data)),1);
		    $code.=$string;
		    $color=imagecolorallocate($image,rand(0,120), rand(0,120), rand(0,120));
		    imagestring($image, $fontSize, $x, $y, $string, $color);
		}
		$_SESSION[&#39;code&#39;]=$code;//存储在session里

		for($i=0;$i<200;$i++){
		    $pointColor=imagecolorallocate($image, rand(100, 255), rand(100, 255), rand(100, 255));
		    imagesetpixel($image, rand(0, 100), rand(0, 30), $pointColor);
		}
		for($i=0;$i<2;$i++){
		    $linePoint=imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255));
		    imageline($image, rand(10, 50), rand(10, 20), rand(80,90), rand(15, 25), $linePoint);
		}
		imagepng($image);
		imagedestroy($image);
	}
<img class="img" src="http://xxxx/captcha">

(1) Ändern Sie die Datei dort, wo sie sich befindet. Speichern Sie sie im Stücklisten-freien Format

(2) Definieren Sie den Header und löschen Sie den Cache-Bereich

header (&#39;Content-Type: image/png&#39;);
ob_clean();

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP ImagePNG nicht ausgegeben 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