1.
imageToBase64(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/jpeg" + ext);
return dataURL;
},
2.
base64ToFile(urlData, fileName) {
let arr = urlData.split(",");
let mime = arr[0].match(/:(.*?);/)[1];
let bytes = atob(arr[1]); // 解碼base64
let n = bytes.length;
let ia = new Uint8Array(n);
while (n--) {
ia[n] = bytes.charCodeAt(n);
}
return new File([ia], fileName, { type: mime });
},
3.
handleImgToBase64(url, cb) {
console.log(url);
let that = this;
var image = new Image();
console.log(image);
image.crossOrigin = "";
image.src = url;
image.onload = () => {
let base64 = this.imageToBase64(image); //圖片轉base64
let file = this.base64ToFile(base64, ".jpg"); //base64轉File
// 根據自身需求調整【因個人項目邏輯不一樣,這里使用回調函數】
cb && typeof cb == "function" && cb(file);
return file;
};
},