In der PHP manual
für base64_encode()
sah ich das folgende Skript für die Ausgabe eines Bildes.PHP HTML Bildausgabe
<?php
$imgfile = "test.gif";
$handle = fopen($filename, "r");
$imgbinary = fread(fopen($imgfile, "r"), filesize($imgfile));
echo '<img src="data:image/gif;base64,' . base64_encode($imgbinary) . '" />';
?>
Aber wie können Sie die Ausgabe ein Bild dynamisch mit GD
erstellt?
Ich habe dies versucht:
$im = imagecreatetruecolor(400, 400);
imagefilledrectangle($im, 0, 0, 200, 200, 0xFF0000);
imagefilledrectangle($im, 200, 0, 400, 200, 0x0000FF);
imagefilledrectangle($im, 0, 200, 200, 400, 0xFFFF00);
imagefilledrectangle($im, 200, 200, 400, 400, 0x00FF00);
echo '<img src="data:image/png;base64,'.base64_encode(imagepng($im)).'" />';
Warum funktioniert das?
Es scheint zu funktionieren in IE aber nicht Firefox. Wie kann ich es cross-browser machen?
wurden mit Ihnen MSIE? – BalusC
Nein, Firefox. Hmm, es funktioniert in IE ... –
Haben Sie eine echte Notwendigkeit, Daten zu verwenden: URIs? Denn wenn du es nicht tust, ist es besser, sie nicht zu benutzen. Sie haben eine Menge Nachteile. IE <8 unterstützt sie beispielsweise überhaupt nicht. –