欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實(shí)現(xiàn)將圖像文件轉(zhuǎn)換為base64

 更新時(shí)間:2022年02月09日 10:24:37   作者:太陽曬屁股了  
這篇文章主要介紹了vue實(shí)現(xiàn)將圖像文件轉(zhuǎn)換為base64,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

將圖像文件轉(zhuǎn)換為base64

直入主題,上代碼(其實(shí)用的還是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,因?yàn)閴嚎s成png后base64的字符串可能比不轉(zhuǎn)換前的長(zhǎng)!			
			}
		},
	}
</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,因?yàn)閴嚎s成png后base64的字符串可能比不轉(zhuǎn)換前的長(zhǎng)!
				//數(shù)組存放圖片base64
				that.base64Datas.push(dataURL);
				//遞歸執(zhí)行圖片url轉(zhuǎn)base64
				i = i + 1;
				if (i <= len) {
					that.onloadImg(data1, i, len)
				}			
			}
		},
	}
</script>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論