Estoy experimentando un poco con el nuevo elemento canvas en HTML.
Simplemente quiero agregar una imagen al lienzo, pero no funciona por alguna razón.
Tengo el siguiente código:
HTML
<canvas id="viewport"></canvas>
CSS
canvas#viewport { border: 1px solid white; width: 900px; }
JS
var canvas = document.getElementById('viewport'),
context = canvas.getContext('2d');
make_base();
function make_base()
{
base_image = new Image();
base_image.src = 'img/base.png';
context.drawImage(base_image, 100, 100);
}
La imagen existe y no obtengo errores de JavaScript. La imagen simplemente no se muestra.
Debe ser algo realmente simple que me he perdido ...
javascript
html
canvas
PeeHaa
fuente
fuente
context.drawImage(base_image, 0, 0, 200, 200);
. Eso dibujaría base_img desde la posición 0px, con un área de dibujo de 200x200px.new Image
y me preguntaba por qué siempre me mostraba una imagen anterior. Resulta que incluso si estoy cargando una imagen desde una variable, todavía tengo que esperar aonload
que suceda. ¡Gracias!aquí está el código de muestra para dibujar una imagen en el lienzo
En el código anterior, selectedImage es un control de entrada que se puede usar para buscar imágenes en el sistema. Para obtener más detalles del código de muestra para dibujar una imagen en el lienzo manteniendo la relación de aspecto:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
fuente
En mi caso, me equivoqué con los parámetros de la función, que son:
Si esperas que sean
colocará la imagen fuera del lienzo con los mismos efectos que se describen en la pregunta.
fuente
Tienes que usar .onload
Este es el por qué
Si está cargando la imagen primero después de que el lienzo ya se haya creado, el lienzo no podrá pasar todos los datos de la imagen para dibujar la imagen. Por lo tanto, primero debe cargar todos los datos que vinieron con la imagen y luego puede usar drawImage ()
fuente