2011-12-08 47 views
15

我想在画布上显示图像并在该图像的顶部插入文本。如何在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); 
}; 

我只在这里得到一个图像,但不是文本;文字在图像后面。 如何在图片顶部插入文字?

回答

30

这是因为您在图像加载并绘制之前绘制文本。绘制图像后,您必须绘制图像顶部的文字。试试这个代码,而不是:

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

例子:

enter image description here

+0

嘿的答复乔纳斯感谢名单...有什么办法,我能得到我所提到的情况下的图像上方的文本以上 ... ??????? –

+1

@RajeshRs:是的,对文本的Y坐标使用较小的值。 – Jonas

+0

@Jonas嗨乔纳斯,你知道如何把图像放在画布上吗?可能吗? – ggDeGreat