vue實現(xiàn)將圖像文件轉(zhuǎn)換為base64
更新時間:2022年02月09日 10:24:37 作者:太陽曬屁股了
這篇文章主要介紹了vue實現(xiàn)將圖像文件轉(zhuǎn)換為base64,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
將圖像文件轉(zhuǎn)換為base64
直入主題,上代碼(其實用的還是FileReader)
1、image轉(zhuǎn)Base64
imageToBase64 (file) {
? ? ? var reader = new FileReader()
? ? ? reader.readAsDataURL(file)
? ? ? reader.onload = () => {
? ? ? ? console.log('file 轉(zhuǎn) base64結(jié)果:' + reader.result)
? ? ? ? this.iconBase64 = reader.result
? ? ? }
? ? ? reader.onerror = function (error) {
? ? ? ? console.log('Error: ', error)
? ? ? }
}2、Base64圖像直接顯示在標(biāo)簽
<el-form-item prop="iconBase64"> ? ?<img :src="iconBase64" v-show="isShow" /> </el-form-item>
vue網(wǎng)絡(luò)圖片轉(zhuǎn)base64
單張圖片轉(zhuǎn)Base64
<script>
methods: {
//異步執(zhí)行
imageUrlToBase64() {
//一定要設(shè)置為let,不然圖片不顯示
let image = new Image();
//解決跨域問題
image.setAttribute('crossOrigin', 'anonymous');
let imageUrl = "http://img1.imgtn.bdimg.com/it/u=4012470373,3540768040&fm=26&gp=0.jpg";
image.src = imageUrl
let that = this;
//image.onload為異步加載
image.onload = () => {
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0, image.width, image.height);
var quality = 0.8;
//這里的dataurl就是base64類型
var dataURL = canvas.toDataURL("image/jpeg", quality);//使用toDataUrl將圖片轉(zhuǎn)換成jpeg的格式,不要把圖片壓縮成png,因為壓縮成png后base64的字符串可能比不轉(zhuǎn)換前的長!
}
},
}
</script>多張圖片轉(zhuǎn)Base64
<script>
data() {
return {
base64Datas: [],
}
methods: {
imageUrlToBase64(){
let data = [
"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png",
"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png",
"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png"
]
this.imageUrlToBase64(data, 1, data.length);
},
//采用遞歸同步執(zhí)行
onloadImg(data, i, len) {
//一定要設(shè)置為let,不然圖片不顯示
let image = new Image();
//解決跨域問題
image.setAttribute('crossOrigin', 'anonymous');
let imageUrl = "http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png";
image.src = imageUrl
let that = this;
//image.onload為異步加載
image.onload = () => {
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0, image.width, image.height);
var quality = 0.8;
//這里的dataurl就是base64類型
var dataURL = canvas.toDataURL("image/jpeg", quality);//使用toDataUrl將圖片轉(zhuǎn)換成jpeg的格式,不要把圖片壓縮成png,因為壓縮成png后base64的字符串可能比不轉(zhuǎn)換前的長!
//數(shù)組存放圖片base64
that.base64Datas.push(dataURL);
//遞歸執(zhí)行圖片url轉(zhuǎn)base64
i = i + 1;
if (i <= len) {
that.onloadImg(data1, i, len)
}
}
},
}
</script>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue綁定數(shù)字類型 value為數(shù)字的實例
這篇文章主要介紹了vue綁定數(shù)字類型 value為數(shù)字的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
詳解關(guān)于表格合并span-method方法的補(bǔ)充(表格數(shù)據(jù)由后臺動態(tài)返回)
這篇文章主要介紹了詳解關(guān)于表格合并span-method方法的補(bǔ)充(表格數(shù)據(jù)由后臺動態(tài)返回) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案
今天小編就為大家分享一篇vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11

