js将图片转换为base64编码方法
墨初 Web前端 2893阅读
在web前端中,有时候为了上传图片方便或者安全一类的考虑,需要利用JS脚本代码,先将图片文件转换成base64编码的的文件再进行上传,下面就介绍两种利用JS脚本对图片进行base64转码的方法。
js将图片转换为base64编码的方法
方法1
将网站自身的图片转成base64编码格式,但需要注意的是,如果处理的为非本站的图片,会产生一个跨域的问题。
// 73so.com
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 ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
var dataURL = canvas.toDataURL("image/"+ext);
return dataURL;
}
var image = new Image();
image.src = '图片路径';
image.setAttribute("crossOrigin",'Anonymous')
image.onload = function(){
var base64 = getBase64Image(image);
console.log(base64);
}方法2:
前台通过file类型的input选择本地图片时,自动将本地选择的图片转成base64编码格式。
<input type="file" name="" id="mochu" />
<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<script>
$('body').on('change','#mochu',function(){
var file = document.getElementById('mochu').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
console.log(reader.result);
}, false);
reader.readAsDataURL(file);
});