将Google Chart下载为jpeg而不是png?

时间:2015-05-01 03:10:46

标签: javascript google-visualization

我目前正在使用以下代码将Google Charts下载为png:

var imgUri = my_chart.getImageURI();
var url  = window.URL || window.webkitURL;
linkPNG = document.createElement("a");
linkPNG.href = imgUri;
linkPNG.download = title+".png";
link.click();

工作正常。不幸的是,我的用户需要一个jpeg而不是一个png,以及我常用的

var imgURL = my_chart.toDataURL( "image/jpeg" );

似乎无法使用Google Charts。如何将图表下载为.jpg而不是.png?

1 个答案:

答案 0 :(得分:1)

在花了一些时间浏览可视化库的混淆源之后,我已经确定从数据URI重新创建图像会更容易,而不是尝试更改原始导出类型。您可以使用图像加载数据URI,在画布上绘制它,然后将其转换回数据URI。

var img = new Image();
img.addEventListener('load', function() {
    var canvas = document.createElement('canvas');
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext('2d');
    ctx.fillStyle = 'white';
    ctx.fillRect(0, 0, img.width, img.height);
    ctx.drawImage(img, 0, 0);
    var link = document.createElement('a');
    link.href = canvas.toDataURL('image/jpeg');
    link.download = title + '.jpg';
    link.click();
});
img.src = my_chart.getImageURI();

某些错误处理可能也不是一个坏主意。