Masalah:
Bolehkah imej dicipta semula dan dipaparkan terus daripada data binari dalam skrip yang sama? Ini melibatkan pemprosesan data dengan GD atau alat yang serupa sebelum memaparkannya dalam teg imej HTML. Matlamatnya adalah untuk mengelak daripada menyimpan imej yang diproses ke cakera atau menggunakan skrip luaran.
Penyelesaian:
Ini boleh dicapai menggunakan URI data dalam atribut sumber imej. Format URI data ialah:
data:[<MIME-type>][;charset="<encoding>"][;base64],<data>
Fungsi PHP ini mencipta URI data daripada fail:
function data_uri($file, $mime) { $contents = file_get_contents($file); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); }
Kod berikut memaparkan imej menggunakan URI data:
echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';
Penggunaan:
Untuk memaparkan data imej binari yang diproses, anda boleh menggunakan fungsi data_uri dan mengeluarkan URI yang terhasil sebagai sumber imej seperti ini:
$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)) . '" />';
Kod ini akan memaparkan imej yang diproses terus daripada data binari tanpa menggunakan skrip luaran atau storan cakera.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memaparkan imej binari secara langsung dalam satu skrip tanpa menyimpannya ke cakera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!