2016-09-19 4 views
2

Ich habe eine HTML-Seite. Auf dieser Seite möchte ich ein dynamisch erstelltes PNG-Bild anzeigen, ohne es zuerst in einer Datei zu speichern.Wie kann ich ein dynamisch erstelltes Bild direkt in einer HTML-Seite ausgeben?

Wenn ich einfach versuche, das Bild innerhalb der Seite zu erstellen, bekomme ich natürlich eine Fehlermeldung, dass die Header bereits gesendet wurden.


Beispielcode:

<!doctype html> 
<html> 
<head> 
    <title>A Test Page</title> 
</head> 
<body> 
    <h1>An Image</h1> 
<?php 

$im = imagecreatetruecolor(100, 100); 
$white = ImageColorAllocate ($im, 255, 255, 255); 
$black = ImageColorAllocate ($im, 0, 0, 0); 
imagefilledrectangle($im, 0, 0, 50, 50, $white); 
imagefilledrectangle($im, 0, 50, 50, 100, $black); 
imagefilledrectangle($im, 50, 0, 100, 50, $black); 
imagefilledrectangle($im, 50, 50, 100, 100, $white); 
header('Content-Type: image/png'); 
imagepng($im); 
imagedestroy($im); 

?> 
</body> 
</html> 

Antwort

0

Was Sie tun können, um das Bild in einer Variablen puffert und dann die img als base64 kodieren:

ob_start(); 
imagepng($im); 
$img_content = ob_get_contents(); 
ob_end_clean(); 

$dataUri = "data:image/png;base64," . base64_encode($img_content); 
echo '<img src="' . $dataUri . '">'; 
Verwandte Themen