--- title: CanvasRenderingContext2D.drawImage() slug: Web/API/CanvasRenderingContext2D/drawImage tags: - API - Canvas - CanvasRenderingContect2D - Métodos - Referencia translation_of: Web/API/CanvasRenderingContext2D/drawImage ---
El método CanvasRenderingContext2D
.drawImage()
de la API Canvas 2D proporciona diferentes formas para dibujar una imagen dentro de canvas.
void ctx.drawImage(image, dx, dy); void ctx.drawImage(image, dx, dy, dWidth, dHeight); void ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
image
dx
dy
dWidth
dHeight
sx
sy
sWidth
sx
y sy
hasta la esquina inferior derecha de la imagen.sHeight
INDEX_SIZE_ERR
INVALID_STATE_ERR
TYPE_MISMATCH_ERR
Este es sólo un simple fragmento de código que utiliza el método drawImage.
<canvas id="canvas"></canvas> <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227"> </div>
var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var image = document.getElementById('source'); ctx.drawImage(image, 33, 71, 104, 124, 21, 20, 87, 104);
Edita el código debajo y observa los cambios actualizarse en vivo en el canvas:
<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas> <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227"> </div> <div class="playable-buttons"> <input id="edit" type="button" value="Edit" /> <input id="reset" type="button" value="Reset" /> </div> <textarea id="code" class="playable-code"> ctx.drawImage(image, 33, 71, 104, 124, 21, 20, 87, 104);</textarea>
var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var image = document.getElementById('source'); var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var edit = document.getElementById("edit"); var code = textarea.value; function drawCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); eval(textarea.value); } reset.addEventListener("click", function() { textarea.value = code; drawCanvas(); }); edit.addEventListener("click", function() { textarea.focus(); }) textarea.addEventListener("input", drawCanvas); window.addEventListener("load", drawCanvas);
{{ EmbedLiveSample('Playable_code', 700, 360) }}
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-drawimage", "CanvasRenderingContext2D.drawImage")}} | {{Spec2('HTML WHATWG')}} |
{{CompatibilityTable}}
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
ImageBitmap como fuente de imagen |
{{CompatUnknown}} | {{CompatGeckoDesktop(42)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
ImageBitmap como fuente de imagen |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile(42)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
sw
y sh
fue añadido en Gecko 5.0 {{geckoRelease("5.0")}}.drawImage()
maneja argumentos negativos de acuerdo con la especificación, volteando el rectangulo alrededor del eje apopiado.null
o undefined
al llamar o drawImage()
correctamente lanzando una excepción TYPE_MISMATCH_ERR
empezando con {{geckoRelease("5.0")}}.