Herunterladen Leinwand Bild mit toBlob
Ich bin versucht, laden Sie ein großes Leinwand-Bild (mehrere tausend Pixel in Höhe und Breite) auf der Klick auf eine Schaltfläche mit toBlob
im folgenden code, die scheint nicht zu funktionieren:
document.getElementById("download_button").onclick = function() {
var link = document.createElement("a");
link.download = "image.png";
canvas.toBlob(function(blob){
link.href = URL.createObjectURL(blob);
console.log(blob);
},'image/png');
console.log(link.href);
link.click();
}
console.log(blob)
in der callback-Funktion gibt: Blob {size: 64452, type: "image/png"}
Aber console.log(link.href)
gibt nichts zurück.
Bin ich nicht mit .createObjectURL
richtig?
Ich verwendet, um arbeiten mit toDataURL
, aber es aufgehört zu arbeiten, die über eine gewisse Leinwandgröße. Und dieser Beitrag canvas.toDataURL() download-Größe begrenzen vorgeschlagen, um zu versuchen toBlob
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist in Ordnung.. nur verwenden Sie es zur richtigen Zeit 🙂
console.log(link.href);
undlink.click();
innerhalb der callback-Funktion.var link = document.createElement("a"); link.download = "image.png"; function test() { link.href = "#Test"; console.log(link.href); }
Ergebnis: "Bild.png"Meine Lösung für das problem: