//傳入圖片路徑,返回base64 //用處,由於在新增時,使用的是base64的格式,為了統一,在編輯時,也將圖片轉為base64,以便於統一處理 /* 使用: 因為圖像處理存在一定的延時,所以通過then方法來得到圖像,使用示例如下: getBase64(url).then(function (base64) { document.getElementById("basetest").setAttribute("src", base64); //console.log(base64);//處理成功打印在控制台 },function(err){ //console.log(err);//打印異常信息 }); */ function getBase64(img) { function getBase64Image(img, width, height) {//width、height調用時傳入具體像素值,控制大小 ,不傳則默認圖像大小 var canvas = document.createElement("canvas"); canvas.width = width ? width : img.width; canvas.height = height ? height : img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, canvas.width, canvas.height); var dataURL = canvas.toDataURL(); return dataURL; } var image = new Image(); image.crossOrigin = ''; image.src = img; var deferred = $.Deferred(); if (img) { image.onload = function () { deferred.resolve(getBase64Image(image));//將base64傳給done上傳處理 } return deferred.promise();//問題要讓onload完成后再return sessionStorage['imgTest'] } }