下载 Google 图表为 jpeg 而不是 png?
Download Google Chart as jpeg instead of png?
我目前正在使用以下代码将 Google 图表下载为 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 图表。如何将图表下载为 .jpg 而不是 .png?
在花了一些时间查看可视化库的混淆源后,我确定从数据 URI 重新创建图像比尝试更改原始导出类型更容易。您可以使用图像加载数据 URI,在 canvas 上绘制它,然后将其转换回数据 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();
一些错误处理可能也不是一个坏主意。
我目前正在使用以下代码将 Google 图表下载为 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 图表。如何将图表下载为 .jpg 而不是 .png?
在花了一些时间查看可视化库的混淆源后,我确定从数据 URI 重新创建图像比尝试更改原始导出类型更容易。您可以使用图像加载数据 URI,在 canvas 上绘制它,然后将其转换回数据 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();
一些错误处理可能也不是一个坏主意。