2011-12-08 71 views
15

Quiero mostrar una imagen en el lienzo e insertar un texto en la parte superior de esa imagen.¿Cómo escribir texto sobre la imagen en canvas HTML5?

window.onload = function() { 
    var canvas = document.getElementById("myCanvas"); 
    var context = canvas.getContext("2d"); 
    var imageObj = new Image(); 

    imageObj.onload = function() { 
     context.drawImage(imageObj, 10, 10); 
    }; 

    imageObj.src = "darth-vader.jpg"; 
    context.font = "40pt Calibri"; 
    context.fillText("My TEXT!", 20, 20); 
}; 

Estoy obteniendo solamente una imagen aquí pero no el texto; el texto está detrás de la imagen. ¿Cómo insertar el texto en la parte superior de la imagen?

Respuesta

30

Esto se debe a que dibuja el texto antes de que la imagen se haya cargado y dibujado. Debe dibujar el texto que debe estar en la parte superior de la imagen después de dibujar la imagen. Prueba este código en su lugar:

window.onload = function(){ 
    var canvas = document.getElementById("myCanvas"); 
    var context = canvas.getContext("2d"); 
    var imageObj = new Image(); 
    imageObj.onload = function(){ 
     context.drawImage(imageObj, 10, 10); 
     context.font = "40pt Calibri"; 
     context.fillText("My TEXT!", 20, 20); 
    }; 
    imageObj.src = "darth-vader.jpg"; 
}; 

Ejemplo:

enter image description here

+0

Hey Jonas gracias por la respuesta ... ¿hay alguna manera de que yo pueda obtener el texto encima de la imagen en el caso que he mencionado encima ... ??????? –

+1

@RajeshRs: Sí, use un valor menor para la coordenada Y del texto. – Jonas

+0

@Jonas Hola Jonas, ¿sabes cómo poner la imagen en el lienzo? ¿Es posible? – ggDeGreat