将ECharts图表保存为图片并发送至服务端

1、获取图片的base64值

Function:echartsInstance. getDataURL

(opts: {
    // 导出的格式,可选 png, jpg, svg
    // 注意:png, jpg 只有在 canvas 渲染器的时候可使用,svg 只有在使用 svg 渲染器的时候可用
    type?: string,
    // 导出的图片分辨率比例,默认为 1。
    pixelRatio?: number,
    // 导出的图片背景色,默认使用 option 里的 backgroundColor
    backgroundColor?: string,
    // 忽略组件的列表,例如要忽略 toolbox 就是 ['toolbox']
    excludeComponents?: Array.<string>
}) => string

导出图表图片,返回一个 base64 的 URL,可以设置为Image的src。

示例:

let img = new Image();
img.src = myChart.getDataURL({
    pixelRatio: 2,
    backgroundColor: '#fff'
});

参考:Documentation - Apache ECharts

2、将base64转为blob

    function dataURLtoBlob(dataurl) {
      var arr = dataurl.split(","),
        mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]),
        n = bstr.length,
        u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new Blob([u8arr], { type: mime });
    }

 dataurl为base64值。

3、将blob内容发送至服务端

this.$axios({
        method: authrequest[0],
        url: authrequest[1],
        headers: header,
        data: imageData, // imageData为第二步转换后的blob,blog.size可获取图片大小,单位为字节
});

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值