CANVAS中使用跨域图片转base64图片时报错处理

余生长醉 提交于 2020-04-09 01:16:16

CANVAS中使用跨域图片转base64图片时报错处理:

function getBase64(imgUrl) {
	window.URL = window.URL || window.webkitURL;
	var xhr = new XMLHttpRequest();
	xhr.open("get", imgUrl, true);
	// 至关重要
	xhr.responseType = "blob";
	xhr.onload = function() {
		if (this.status == 200) {
			//得到一个blob对象
			var blob = this.response;
			// console.log("blob", blob)
			
			// 一:使用 base64 图片
			// let oFileReader = new FileReader();
			// oFileReader.onloadend = function(e) {
			// 	let base64 = e.target.result;
			// 	bgimgSrc = base64;
			// 	console.log(bgimgSrc);
			// };
			// oFileReader.readAsDataURL(blob);
			
			// 二:使用 blob 图片
			let src;
			if(window.createObjectURL!=undefined){
				src = window.createObjectURL(blob);
			}else if (window.URL!=undefined){
				src = window.URL.createObjectURL(blob);
			}else if (window.webkitURL!=undefined){
				src = window.webkitURL.createObjectURL(blob);
			}
			bgimgSrc = src;
			console.log(bgimgSrc);
		}
	}
	xhr.send();
}

使用:
getBase64('图片URL');

参考文章: https://www.jb51.net/article/138809.htm

发布了99 篇原创文章 · 获赞 55 · 访问量 40万+
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!