2011-12-08 52 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