Heim > Artikel > Backend-Entwicklung > Wie kann ich Binärbilder direkt in einem einzigen Skript anzeigen, ohne sie auf der Festplatte zu speichern?
Problem:
Können Bilder direkt aus Binärdaten in neu erstellt und angezeigt werden? das gleiche Skript? Dabei werden die Daten mit GD oder ähnlichen Tools verarbeitet, bevor sie in einem HTML-Bild-Tag angezeigt werden. Ziel ist es, das Speichern der verarbeiteten Bilder auf der Festplatte oder die Verwendung externer Skripte zu vermeiden.
Lösung:
Dies kann mithilfe von Daten-URIs im Bildquellenattribut erreicht werden. Das Daten-URI-Format ist:
data:[<MIME-type>][;charset="<encoding>"][;base64],<data>
Diese PHP-Funktion erstellt einen Daten-URI aus einer Datei:
function data_uri($file, $mime) { $contents = file_get_contents($file); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); }
Der folgende Code zeigt ein Bild mithilfe eines Daten-URI an:
echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';
Verwendung:
Um verarbeitete binäre Bilddaten anzuzeigen, können Sie die verwenden data_uri-Funktion und geben Sie den resultierenden URI wie folgt als Bildquelle aus:
$imagedata1 = file_get_contents('assets/test.png'); $imagedata1 = process_using_gd_or_something($imagedata1); echo '<img src="' . data_uri('data:image/png;base64,' . base64_encode($imagedata1)) . '" />';
Dieser Code zeigt das verarbeitete Bild direkt aus den Binärdaten an, ohne externe Skripte oder Festplattenspeicher zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Binärbilder direkt in einem einzigen Skript anzeigen, ohne sie auf der Festplatte zu speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!