• svg、canvas 转img图片


    需求:quill富文本+echarts图表

    思路:echarts生成svg。然后转成img图片。添加到quill里

    啥也不说,直接上代码。


    <!DOCTYPE html>
    <html>
      <head>
        <title></title>
      </head>
    
      <body>
        <div id="svg-wrap">
          <svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
            <rect width="200" height="200" style="fill: #ddd"></rect>
          </svg>
        </div>
        <canvas id="canvas"></canvas>
        <script>
          window.onload = function () {
            //获取svg内容
            var svg = document.getElementById('svg-wrap').innerHTML;
            console.log('svg', svg);
            var canvas = document.getElementById('canvas');
            var c = canvas.getContext('2d');
    
            //新建Image对象
            var img = new Image();
    
            //svg内容
            img.src = 'data:image/svg+xml,' + unescape(encodeURIComponent(svg)); //svg内容中可以有中文字符
            img.src = 'data:image/svg+xml,' + svg; //svg内容中不能有中文字符
    
            //svg编码成base64
            img.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svg))); //svg内容中可以有中文字符
            img.src = 'data:image/svg+xml;base64,' + window.btoa(svg); //svg内容中不能有中文字符
    
            //图片初始化完成后调用
            img.onload = function () {
              //将canvas的宽高设置为图像的宽高
              canvas.width = img.width;
              canvas.height = img.height;
    
              //canvas画图片
              c.drawImage(img, 0, 0);
    
              //将图片添加到body中
              document.body.appendChild(img);
            };
          };
        </script>
      </body>
    </html>
  • 相关阅读:
    C# 程序打包
    [置顶] 我的iOS作品
    struts2处理上传文件路径问题
    Lua基础 函数(二)
    JS解析XML的实现代码
    软件架构设计之Utility模块——Any
    详解Java解析XML的四种方法
    JS解析XML
    Android中级第八讲安卓子线程,以及定时任务使用讲解
    关于"未能映射路径"问题
  • 原文地址:https://www.cnblogs.com/HDWdemo/p/15831279.html
Copyright © 2020-2023  润新知