将echarts的图导出为图片

echarts的图点击导出按钮,导出为图片,进行展示

第一步:下载html2canvas

npm install --save html2canvas

第二步:在需要导出图的页面引用

import html2canvas from 'html2canvas'

第三步:代码,web端

html2canvas(document.querySelector('#这是需要导出的dom的id')).then(canvas => {
 
    let saveUrl = canvas.toDataURL('image/png')
 
    let a = document.createElement('a')
 
    document.body.appendChild(a)
 
    a.href = saveUrl
 
    a.download = '这是图片标题'
 
    a.click()
 
})

第四步:代码,移动端

// 转换方法
base64ToBlob (code) {
 
    let parts = code.split(';base64,')
 
    let contentType = parts[0].split(':')[1]
 
    let raw = window.atob(parts[1])
 
    let rawLength = raw.length
 
 
 
    let uInt8Array = new Uint8Array(rawLength)
 
 
 
    for (let i = 0; i < rawLength; ++i) {
 
        uInt8Array[i] = raw.charCodeAt(i)
 
    }
 
    return new Blob([uInt8Array], {type: contentType})
 
},
 
// 具体调用的方法
async save() {
 
    html2canvas(document.querySelector('#需要导出元素的id')).then(canvas => {
 
        let saveUrl = canvas.toDataURL('image/png')
 
        let aLink = document.createElement('a')
 
        let blob = this.base64ToBlob(saveUrl)
 
 
 
        let evt = document.createEvent('HTMLEvents')
 
        evt.initEvent('click', true, true)
 
        aLink.download = '标题.jpg'
 
        aLink.href = URL.createObjectURL(blob)
 
        aLink.click()
 
    })
 
},

### 如何使用 ECharts导出图片 ECharts 提供了多种方式来将导出图片格式。以下是通过 JavaScript 和 HTML 实现这一功能的方法。 #### 使用 `dataURL` 获取 Base64 编码的像数据 可以利用 ECharts 的 `getConnectedDataURL()` 或者 `getDataURL()` 方法获取表的 Base64 数据编码,从而将其转换为图片文件[^1]。 ```javascript // 初始化 echarts 实例 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); // 配置项和数据 var option = { title: { text: '示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { type:'category', data:["衬衫","羊毛衫","雪纺衫"]}, yAxis: {type:'value'}, series:[{ name:'销量', type:'bar', data:[5, 20, 36]}] }; myChart.setOption(option); // 导出按钮点击事件处理函数 document.getElementById('exportBtn').onclick = function () { var imgData = myChart.getDataURL({ pixelRatio: 2, backgroundColor: '#fff' }); // 创建隐藏的 a 标签用于下载 var link = document.createElement('a'); link.href = imgData; link.download = 'chart.png'; link.click(); }; ``` 上述代码展示了如何创建一个按钮 (`#exportBtn`) 来触发表的导出操作,并设置像素比例以及背景颜色参数。 #### 利用 SVG 渲染器导出高质量矢量形 如果需要更高分辨率或者支持缩放不变形的效果,则可以选择启用 SVG 渲染模式[^2]: ```javascript var chartSVG = echarts.init(document.getElementById('main'), null, { renderer: 'svg' }); // 同样的配置选项... chartSVG.setOption(option); // 下载 SVG 文件逻辑 document.getElementById('exportSvgBtn').onclick = function() { var svgContent = new XMLSerializer().serializeToString(chartSVG.getDom().querySelector('svg')); var blob = new Blob([svgContent], { type: "image/svg+xml;charset=utf-8" }); saveAs(blob, "chart.svg"); }; ``` 这里我们初始化了一个基于 SVG 的渲染实例,并定义了另一个按钮用来保存当前显示的内容到本地磁盘作为 `.svg` 文件。 注意:为了使以上方法正常工作,可能还需要引入额外库比如 FileSaver.js 来简化跨浏览器兼容性的文件保存过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值