HTMLCanvasElement.toDataURL()

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

 
El método HTMLCanvasElement.toDataURL() regresa un String data URIs el cual contiene una representacion de la imagen en el formato especificado por el parametro tipo (el valor por defecto es PNG). La imagen obtenida tendrá una resolución de 96 dpi.
 
  • Si la altura o el ancho del canvas es 0, devuelve un String con "data:,"
  • Si el parametro tipo no es image/png pero el valor de retorno empieza con data:image/png, entonces el formato especificado no esta soportado.
  • Chrome tambien acepta el formato image/webp.

Syntax

canvas.toDataURL(tipo, opcionesCodificación);

Parametros

tipoOptional
DOMString indicando el formato de la imagen. El tipo por defecto es image/png.
opcionesCodificaciónOptional
Number entre 0 y 1 indicando la calidad de la imagen si el valor de tipo es image/jpeg image/webp.
Si el argumento tipo es algo diferente, el valor por defecto de la imagen es usado. Otros argumentos son ignorados

Valor de retorno

 DOMString que contiene el valor data URI.

Ejemplos

Dado el elemento <canvas> :

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

Puedes obtener el data-URL del canvas con las siguientes lineas:

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

Seleccionando la calidad de imagen con jpegs

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

Ejemplo: Cambiar imagene dinámicamente

Puedes utilizar est técnica en conjunto con los eventos del mouse para cambiar las imagenes de manera dinámica (escala de grises versus color en este ejemplo):

HTML

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

JavaScript

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

Especificaciones

Especificación Status Comentrios
WHATWG HTML Living Standard
The definition of 'HTMLCanvasElement.toDataURL' in that specification.
Living Standard No hay cambios desde la última imagen, HTML5
HTML5.1
The definition of 'HTMLCanvasElement.toDataURL' in that specification.
Working Draft  
HTML5
The definition of 'HTMLCanvasElement.toDataURL' in that specification.
Recommendation Imagen que contiene los parámetros iniciles WHATWG HTML Living Standard .

Compatibilidad de navegadores

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico 4 3.6 (1.9.2) 9 9 4.0
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico 3.2 18 1.0 (1.9.2) (Yes) 19 3.0

Ver también

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: genuinefafa, empirreamm
 Última actualización por: genuinefafa,