13 Stimmen

HTML5: Canvas.toDataURL() gibt immer PNG statt JPG zurück

Frage von Gast | Letztes Update am 06.04.2021 | Erstellt am 21.09.2016

Ich benutze die Funktion .toDataURL() eines HTML5-Canvas-Elements, um das Bild als BASE64-kodierten String zu erhalten. Das Problem ist, dass ich, egal was ich mache, immer das Format PNG erhalte, auch wenn ich eigentlich ein JPG haben möchte (der String beginnt also mit data:image/png;base64;).

Probiert habe ich bisher folgendes:

var dataURL = canvas.toDataURL("image/jpeg", 1.0);
var dataURL = canvas.toDataURL("image/jpeg");
var dataURL = canvas.toDataURL();
var dataURL = canvas.toDataURL("image/png");

Soweit ich weiß sollte mir doch eigentlich nur die letzte Zeile ein PNG-Bild liefern. Was mache ich falsch?

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

Das Default-Format von toDataURL() ist PNG.

Daher sollten die beiden letzten Zeilen beide das Format PNG liefern (keine Angabe über das Format oder explizit image/png).

PNG war auch das erste Format, was von den Browsern unterstützt wurde. Daher gibt es so manchen Browser, der tatsächlich nur das PNG-Format unterstützt und daher auch immer PNG zurückgibt. Das ist insoweit auch richtig, denn PNG sollte laut Spezifikation immer dann das Format der Wahl sein, wenn das gewünschte und übergebene Format nicht unterstützt wird.

Ich würde an deiner Stelle also einmal ein Browser-Update ausprobieren und ist dann noch einmal versuchen. Vielleicht benutzt du noch eine alte Version, die nur PNG kann.
Letztes Update am 06.04.2021 | Erstellt am 21.09.2016

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.