JS将图片转换成Base64编码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kk_yanwu/article/details/60961511

在移动端与服务端的交互过程中,经常会遇见移动端上传图片到服务端的情况;将图片转成base64字符串然后和服务端交互,可以有效的减少HTTP数据请求,减少与服务端的数据交互;
将图片转换成base64字符串,主要使用的canvas:
①使用canvas必须在界面上创建canvas:

<canvas id="photo" style="display: none;"></canvas>  //创建 canvas 控件

②利用canvas 重绘,将图片文件转换成base64编码字符串

var image = new Image();
image.src = s;              //s是图片的路径
image.onload = function() { //image.onload是等待图片加载完毕,等待图片加载完毕之后,才能对图片进行操作
        var width = image.width;//根据图片的宽高,将图片进行压缩
        var height = image.height;
        if(width > height) {
                height = Math.round(500 * width / height);
                width = 500;
        } else {
                width = Math.round(500 * width / height);
                height = 500;
        }
        var canvas = document.getElementById("photo");
        var cax = canvas.getContext('2d');
        canvas.width = width;
        canvas.height = height;
        cax.drawImage(image, 0, 0, width, height);//重绘
        var dataUrl = canvas.toDataURL("image/png");//dataUrl 即为base编码字符串
}

③转换成功之后,得到的是一个字符长串;data:image/jpg;base64,·······;然后将得到的base64字符串上传到服务器,服务端得到之后将其解码,即可得到上传的图片;

展开阅读全文

没有更多推荐了,返回首页