我有一段代码可以将图表转换成SVG格式,但是我需要输出PNG格式的图片。 svgString2Image
是一个函数,它返回一个编码为base64的SVG字符串。我该如何实现呢?非常感谢。
function svgString2Image( svgString, width, height, format, callback ) {
//console.log("svgString",svgString)
format ? format : 'png';
var imgsrc = 'data:image/svg+xml;base64,'+ btoa( unescape( encodeURIComponent( svgString ) ) ); // Convert SVG string to data URL
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
canvas.width = width;
canvas.height = height;
var image = new Image();
image.onload = function() {
context.clearRect ( 0, 0, width, height );
context.drawImage(image, 0, 0, width, height);
canvas.toBlob( function(blob) {
var filesize = Math.round( blob.length/1024 ) + ' KB';
if ( callback ) callback( blob, filesize );
});
};
///****************************
document.getElementById('my_image').src=imgsrc;
return image.src = imgsrc;
}
format
从未被使用,但canvas.toBlob
的默认格式是'image/png'。如果您想指定格式,请将'image/' + format
添加为第二个参数到canvas.toBlob
。 - William Lohan