--- title: HTMLCanvasElement.toDataURL() slug: Web/API/HTMLCanvasElement/toDataURL tags: - API - Canvas - DataURI erstellen - HTMLCanvasElement - Method - Methode(2) - Referenz translation_of: Web/API/HTMLCanvasElement/toDataURL ---
Die HTMLCanvasElement.toDataURL()
-Methode gibt eine Repräsentation des Bildes als data URI zurück. Das gewünschte Format wird mit den angegebenen Parametern definiert (standardmäßig PNG). Das zurückgegebene Bild besitzt eine Auflösung von 96 dpi.
"data:,"
zurückgegeben.image/png
ist, aber der zurückgegebene Wert mit data:image/png
beginnt, dann wird die Anfrage nicht unterstützt.image/webp
.canvas.toDataURL(type, encoderOptions);
type
{{optional_inline}}image/png
.encoderOptions
{{optional_inline}}0
und 1
gibt die Bildqualität an, wenn der Anfragetyp image/jpeg
oder image/webp ist
.0.92
. Andere Argumente werden ignoriert.Ein Rückgabewert vom Typ {{domxref("DOMString")}} beinhaltet die angefragte data URI.
Es ist folgendes {{HTMLElement("canvas")}} Element gegeben:
<canvas id="canvas" width="5" height="5"></canvas>
Mit den folgenden Zeilen erhalten Sie die data-URL des Canvas:
var canvas = document.getElementById("canvas"); var dataURL = canvas.toDataURL(); console.log(dataURL); // "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby // blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"
var fullQuality = canvas.toDataURL("image/jpeg", 1.0); // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...9oADAMBAAIRAxEAPwD/AD/6AP/Z" var mediumQuality = canvas.toDataURL("image/jpeg", 0.5); var lowQuality = canvas.toDataURL("image/jpeg", 0.1);
Sie können diese Technik in Verbindung mit Maus-Events nutzen, um dynamisch Bilder abzuändern (in diesem Beispiel schwarz-weiß und farbig):
<img class="schwarz-weiss" src="myPicture.png" alt="Beschreibung meines Bildes" />
window.addEventListener("load", removeColors); function showColorImg() { this.style.display = "none"; this.nextSibling.style.display = "inline"; } function showGrayImg() { this.previousSibling.style.display = "inline"; this.style.display = "none"; } function removeColors() { var aImages = document.getElementsByClassName("schwarz-weiss"), nImgsLen = aImages.length, oCanvas = document.createElement("canvas"), oCtx = oCanvas.getContext("2d"); for (var nWidth, nHeight, oImgData, oGrayImg, nPixel, aPix, nPixLen, nImgId = 0; nImgId < nImgsLen; nImgId++) { oColorImg = aImages[nImgId]; nWidth = oColorImg.offsetWidth; nHeight = oColorImg.offsetHeight; oCanvas.width = nWidth; oCanvas.height = nHeight; oCtx.drawImage(oColorImg, 0, 0); oImgData = oCtx.getImageData(0, 0, nWidth, nHeight); aPix = oImgData.data; nPixLen = aPix.length; for (nPixel = 0; nPixel < nPixLen; nPixel += 4) { aPix[nPixel + 2] = aPix[nPixel + 1] = aPix[nPixel] = (aPix[nPixel] + aPix[nPixel + 1] + aPix[nPixel + 2]) / 3; } oCtx.putImageData(oImgData, 0, 0); oGrayImg = new Image(); oGrayImg.src = oCanvas.toDataURL(); oGrayImg.onmouseover = showColorImg; oColorImg.onmouseout = showGrayImg; oCtx.clearRect(0, 0, nWidth, nHeight); oColorImg.style.display = "none"; oColorImg.parentNode.insertBefore(oGrayImg, oColorImg); } }
Spezifikation | Status | Kommentare |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-canvas-todataurl", "HTMLCanvasElement.toDataURL")}} | {{Spec2('HTML WHATWG')}} | Keine Änderungen seit letztem Schnappschuss, {{SpecName('HTML5 W3C')}} |
{{SpecName('HTML5.1', "scripting-1.html#dom-canvas-todataurl", "HTMLCanvasElement.toDataURL")}} | {{Spec2('HTML5.1')}} | |
{{SpecName('HTML5 W3C', "scripting-1.html#dom-canvas-todataurl", "HTMLCanvasElement.toDataURL")}} | {{Spec2('HTML5 W3C')}} | Schnappschuss von {{SpecName('HTML WHATWG')}} beinhaltet ursprüngliche Definition. |
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{ CompatChrome(4) }} | {{ CompatGeckoDesktop("1.9.2") }} | {{ CompatIE(9) }} | {{ CompatOpera(9) }} | {{ CompatSafari(4.0) }} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{ CompatAndroid(3.2) }} | {{ CompatAndroid(18) }} | {{ CompatGeckoMobile("1.9.2") }} | {{ CompatVersionUnknown() }} | {{ CompatOpera(19) }} | {{ CompatSafari(3.0) }} |