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;
      };
    },
posted on 2021-01-29 15:34  双木之下藏倒影  阅读(2070)  评论(0编辑  收藏  举报