• JS 图片绝对路径,转base6


    主要思想:

      使用canvas.toDataURL()将图片的绝对路径  转为 base64编码.

    一、图片在本地服务器:

    复制代码
    var imgSrc = "/img/1.jpg";//本地项目文件夹下的图片
          function getBase64(img){//传入图片路径,返回base64
            function getBase64Image(img,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.src = img;
            var deferred=$.Deferred();
            if(img){
              image.onload =function (){
                deferred.resolve(getBase64Image(image));//将base64传给done上传处理
              }
              return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest']
            }
          }
          getBase64(imgSrc)
            .then(function(base64){
              console.log(base64);
            },function(err){
              console.log(err);
            });
    复制代码

    二、跨域

    复制代码
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>nick getBase64</title>
    </head>
    <body>
    <div><img id="test" src="" alt=""/></div>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        var imgSrc = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg";
    //    var imgSrc = "/img/1.jpg";
          function getBase64(img){//传入图片路径,返回base64
            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']
            }
          }
          getBase64(imgSrc)
            .then(function(base64){
              console.log(base64);
            },function(err){
              console.log(err);
            });
    </script>
    </body>
    </html>
    复制代码

    转载来自:https://www.cnblogs.com/LChenglong/p/7691548.html

  • 相关阅读:
    day06作业
    day04_ATM项目说明书
    ATM+购物车基本思路流程
    装饰器、迭代器、生成器、递归、匿名函数、面向过程编程、三元表达式6
    day05函数部分
    自制七段数码管源码
    字符串格式化
    字符串表示
    格式化输出
    python入门——列表类型、元组、字典类型
  • 原文地址:https://www.cnblogs.com/liuzheng0612/p/11636219.html
Copyright © 2020-2023  润新知