Ich habe einen Code, der ein Diagramm in Svg konvertiert. aber ich brauche das Ausgabeformat als PNG-Bild. svgString2Image
ist die Funktion, die eine codierte base64 svg zurückgibt. Wie kann ich es tun? vielen Dank.Wie kann ich ein base64 svg Bild zu base64 image png konvertieren
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
Verwenden Sie den Rückruf. – Bergi
@Meager Wie funktioniert das verknüpfte Frage- und Antwort-Problem beim Code bei der aktuellen Frage? – guest271314
'format' wird nie verwendet, aber canvas.toBlob ist standardmäßig 'image/png'. Wenn Sie das Format angeben möchten, fügen Sie "image/'+ format" als zweiten Parameter zu canvas.toBlob hinzu. –