将highcharts生成的图片转化base64(以 highchart 官网实例为例)

本文介绍如何将使用Highcharts生成的图表转换为Base64编码。以Highchart官网实例为例子,强调了转换过程中需使用canvas标签而非div,以避免编码错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要引入的文件

	<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
	<script src="http://code.highcharts.com/highcharts.js"></script>
	<script src="http://code.highcharts.com/highcharts-3d.js"></script>
	<script src="https://code.highcharts.com.cn/highcharts/modules/exporting.js"></script>
	
	<!--下面三个文件有些贴出来地址访问不到以至于报错,所以最好下载到本地之后引入-->
	<script type="text/javascript" src="rgbcolor.js"></script>
	<script type="text/javascript" src="stackblur.js"></script>
	<script type="text/javascript" src="canvg.js"></script>

html
<canvas id="container" style="height: 400px"></canvas>

注意:这是一个 canvas 标签,所以生成的 highchart 图表不能点击,只作导出使用,如果用 highchart 自带的 div 标签的话,转编码格式的时候会报错

JS

<script type="text/javascript">
    var chart = Highcharts.chart('container', {
        chart: {
            type: 'pie',
            options3d: {
                enabled: true,
                alpha: 45,
                beta: 0
            }
        },
        title: {
            text: '2014年某网站不同浏览器访问量占比'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                depth: 35,
                dataLabels: {
                    enabled: true,
                    format: '{point.name}'
                }
            }
        },
        series: [{
            type: 'pie',
            name: '浏览器占比',
            data: [
                ['Firefox',   45.0],
                ['IE',       26.8],
                {
                    name: 'Chrome',
                    y: 12.8,
                    sliced: true,
                    selected: true
                },
                ['Safari',    8.5],
                ['Opera',     6.2],
                ['Others',   0.7]
            ]
        }]
    });

    var chartsvg = chart.getSVG();
    var svgContainer = document.getElementById("container");
    canvg(svgContainer, chartsvg);
    var img = svgTemtoCan.toDataURL("image/png");
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值