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>
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı