画布渲染图片,画布的toDataURL函数完成转换功能,画布在document对象中创建,js代码外面需要嵌入html环境。为避免跨域的问题,从本地服务器中取图片。访问该html文件在控制台看到图片转换出的Base64编码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<script type="text/javascript">
function getBase64Image(img){
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var dataURL=canvas.toDataURL("image/png");
return dataURL;
}
function main(){
var img = document.createElement('img');
img.src = 'http://localhost/files/process.png';
img.onload = function(){
var data=getBase64Image(img);
var img1 = document.createElement("img");
img1.src = data;
document.body.appendChild(img1);
console.log(data);
}
}
main()
</script>
</body>
</html>
js的encodeURI函数编码正常字符为URL字符,decodeURI函数解码URL字符为正常字符
本文创建于2021年 09月 05日 星期日 13:45:28 CST,修改于2021年 09月 05日 星期日 13:45:28 CST