首頁  >  文章  >  後端開發  >  如何在單一腳本中直接顯示二進位映像而不將其儲存到磁碟?

如何在單一腳本中直接顯示二進位映像而不將其儲存到磁碟?

Susan Sarandon
Susan Sarandon原創
2024-11-08 04:55:02993瀏覽

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

在單一腳本中顯示二進位影像

問題:

可以直接從二進位資料重新建立並顯示相同影像的腳本?這涉及到在 HTML 圖像標籤中顯示資料之前使用 GD 或類似工具處理資料。目標是避免將處理後的映像儲存到磁碟或使用外部腳本。

解決方案:

這可以透過使用影像來源屬性中的資料 URI 來實現。資料URI 格式為:

data:[<MIME-type>][;charset="<encoding>"][;base64],<data>

此PHP 函數從檔案建立資料URI:

function data_uri($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}

以下程式碼使用資料URI 顯示影像:

echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';

用法:

要顯示處理後的二進位影像數據,您可以使用data_uri 函數並將結果URI 作為影像來源輸出,如下所示:

$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)) . '" />';

此程式碼將直接從二進位資料顯示處理後的映像,而不使用外部腳本或磁碟儲存。

以上是如何在單一腳本中直接顯示二進位映像而不將其儲存到磁碟?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn