Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. APIs da Web
  3. HTMLCanvasElement
  4. HTMLCanvasElement.toDataURL()

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

HTMLCanvasElement.toDataURL()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julho de 2015⁩.

O métodoHTMLCanvasElement.toDataURL() retorna umadata URI, contendo uma representação da imagem no formato especificado pelo parâmetrotype (por padrão, esse valor éPNG). A resolução da imagem retornada é de 96 dpi.

  • Se a altura ou largura do canvas for0, será retornada a string"data:,".
  • Se o tipo solicitado não forimage/png, mas o valor retornado começa comdata:image/png, então o tipo da requisição não é suportado.
  • O Chrome também suporta o tipoimage/webp.

Sintaxe

canvas.toDataURL(type, encoderOptions);

Parâmetros

typeOptional

UmaDOMString indicando o formato da imagem. Por padrão, o formato definido éimage/png.

encoderOptionsOptional

UmNumber entre0 e1, indicando a qualidade da imagem solicitada pelo tipoimage/jpeg ouimage/webp.Se esse argumento for outro valor que não de0 a1, então o valor padrão (0.92) será usado. Outros valores serão ignorados.

Valor retornado

UmaDOMString contendo adata URI solicitada.

Exemplos

Dado este elemento<canvas>:

html
<canvas width="5" height="5"></canvas>

Você poderá capturar a data-URL do canvas com as seguintes linhas:

js
var canvas = document.getElementById("canvas");var dataURL = canvas.toDataURL();console.log(dataURL);// "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby// blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"

Defindo a qualidade de imagens jpeg

js
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);

Exemplo: Alterando imagens dinamicamente

Você poderá utilizar esta técnica em associação com os eventos do mouse para alterar dinamicamente uma imagem (escala de cinza vs. cor, neste exemplo):

HTML

html
<img src="myPicture.png" alt="Description of my picture" />

JavaScript

js
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("grayscale"),    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);  }}

Especificações

Specification
HTML
# dom-canvas-todataurl-dev

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp