//壓縮圖片方法 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); }; }; };