Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Binärbilder direkt in einem einzigen Skript anzeigen, ohne sie auf der Festplatte zu speichern?

Wie kann ich Binärbilder direkt in einem einzigen Skript anzeigen, ohne sie auf der Festplatte zu speichern?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 04:55:02995Durchsuche

How can I display binary images directly in a single script without saving them to disk?

Binärbilder in einem einzigen Skript anzeigen

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!

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