我有一個將圖表轉換爲svg的代碼。但我需要輸出格式爲PNG圖像。 svgString2Image
是返回編碼的base64 svg的函數。我該怎麼做?非常感謝你。如何將base64 svg圖像轉換爲base64圖像png
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;
}
http://plnkr.co/edit/lPhmuYywPCdjQrnwhQcH?p=preview
使用回調。 – Bergi
@meager鏈接的問答如何解決當前問題的代碼問題? – guest271314
'format'從不使用,但canvas.toBlob默認爲'image/png'。如果您想要指定格式,請在canvas.toBlob中添加''image /'+ format'作爲第二個參數。 –