HTML-js 压缩上传的图片方法(默认上传的是file文件)
//压缩图片方法 function compressImg(file,callback){ var src; var fileSize = parseFloat(parseInt(file['size'])/1024/1024).toFixed(2); var read = new FileReader(); read.readAsDataURL(file); read.onload = function (e) { var img = new Image(); img.src = e.target.result; img.onload = function(){ //默认按比例压缩 var w = this.width, h = this.height; //生成canvas var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var base64; // 创建属性节点 canvas.setAttribute("width", w); canvas.setAttribute("height", h); ctx.drawImage(this, 0, 0, w, h); if(fileSize<1){ //如果图片小于一兆 那么不执行压缩操作 base64 = canvas.toDataURL(file['type'], 1); }else if(fileSize>1&&fileSize<2){ //如果图片大于1M并且小于2M 那么压缩0.5 base64 = canvas.toDataURL(file['type'], 0.5); }else{ //如果图片超过2m 那么压缩0.2 base64 = canvas.toDataURL(file['type'], 0.2); } // 回调函数返回file的值 callback(base64); }; }; };
图片压缩完成以后会转换成base64返回
作者:枪林弹雨丶
若标题中有【转载】字样,则本文版权归原作者所有。若无转载字样,
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,
且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
请注意:作者五行缺钱,如果喜欢这篇文章,请随意打赏!