Cara untuk mendapatkan imej: dari base64 atau ArrayBuffer menggunakan Vue
P粉953231781
P粉953231781 2023-11-06 15:34:13
0
1
533

Saya mempunyai bahagian belakang Flask yang menghantar imej ke bahagian hadapan Vue seperti yang diterangkan di sini:

with open('my_image_file.jpg', 'rb') as f: image_data = f.read() emit('IMAGE', {'image_data': image_data})

Di bahagian hadapan Vue, imej ini akhirnya akan dipaparkan pada halaman web. Saya rasa cara paling mudah ialah menyimpan imej dalam folder statik. Di kedai saya, saya akan mempunyai tindakan seperti ini:

const actions = { SOCKET_IMAGE (commit, image) { console.log("image received") /* 需要做什么来将图片保存在 'static/' 中?*/ commit.commit('image_saved') } }

Saya juga ingin mencuba kaedah lain untuk menyimpan imej dan memaparkannya di web. Bolehkah saya menyimpan imej terus di kedai Vuex?

P粉953231781
P粉953231781

membalas semua (1)
P粉198814372

Anda boleh menyimpan data imej dalam Vuex

Storan:

const state = { imgData: null }

Dengan mengandaikan anda mendapatbase64daripada API, sila serahkan data mentah:

commit('SET_IMAGE_DATA', image);

Atau, jika anda mendapatArrayBuffer, tukar dahulu:

function _arrayBufferToBase64( buffer ) { var binary = ''; var bytes = new Uint8Array( buffer ); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); } const imgData = _arrayBufferToBase64(image) commit('SET_IMAGE_DATA', imgData);

Cari kaedah untuk menukar ArrayBuffer kepada base64di sini

dan gunakannya dalam templat anda:

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!