Vue拿到二進制流圖片如何轉為正常圖片並顯示
二進制流圖片轉為正常圖片並顯示
第一步
axios({ method: 'get', url, responseType: 'arraybuffer' // 最為關鍵 }) .then(function (response) { that.src = 'data:image/jpeg;base64,' + that.arrayBufferToBase64(response.data) })
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) },
<img :src="src" alt="驗證碼">
解析blob 二進制流圖片的展示
<el-image v-loading="loading" style='height: 480px;' :src="imgsrc"></el-image>
// /api/plan.js文件請求方法 export function getFlowPhoto(data) { return request({ url: '/xxx/xxxx/getFlowPhoto', method: 'post', responseType: 'blob', data }) }
<script> import {getFlowPhoto} from "@/api/plan.js"; export default { data() { return { imgsrc:'', loading:false, } }, mounted() {}, methods: { fetchData() { this.loading = true; var that = this; getFlowPhoto({id:xxx}).then((res) => { if(res.code == 401){ this.$message({ message: res.message, type: "error", }); } if(res){ const myBlob = new window.Blob([res], {type: 'image/jpeg'}) const qrUrl = window.URL.createObjectURL(myBlob) this.imgsrc = qrUrl; this.loading = false; } }); }, } } </script>
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 關於vue二進制轉圖片顯示問題 後端返回的是byte[]數組
- 利用nodejs讀取圖片並將二進制數據轉換成base64格式
- 淺談JS的二進制傢族
- vue如何預覽後端傳來的二進制圖片
- 深入淺出JavaScript中base64編碼原理