Base64 veya ArrayBuffer'dan Vue görüntüsü
Nov 27 2020
Vue ön ucuna burada açıklandığı gibi bir görüntü gönderen bir şişe arka ucum var :
with open('my_image_file.jpg', 'rb') as f:
image_data = f.read()
emit('IMAGE', {'image_data': image_data})
Vue ön ucunda, resim sonuçta web sayfasında gösterilmelidir. Sanırım en kolay yol, resmi bir şekilde statik Klasöre kaydetmektir. Mağazamda şöyle bir eylemim olurdu:
const actions = {
SOCKET_IMAGE (commit, image) {
console.log("image received")
/* What needs to be done to save image in 'static/' ?*/
commit.commit('image_saved')
}
}
Ayrıca görseli kaydetmenin ve web sayfasında oluşturmanın alternatif yollarına açığım. Görüntüyü doğrudan vuex mağazasına kaydedebilir miyim?
Yanıtlar
1 Dan Nov 28 2020 at 01:23
Görüntü verilerini Vuex'te saklayabilirsiniz
Mağaza:
const state = {
imgData: null
}
base64API'den aldığınızı varsayarak , ham verileri işleyin:
commit('SET_IMAGE_DATA', image);
Veya bir alıyorsanız ArrayBuffer, önce dönüştürün:
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);
ArrayBuffer to base64 yöntemi burada bulundu
Ve bunu şablonunuzda kullanın:
<template>
<div>
<img :src="'data:image/png;base64,' + $store.state.imgData" />
</div>
</template>
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'