Ответ 1
Это потому, что вы рисуете текст до того, как изображение загрузилось и было нарисовано. Вы должны нарисовать текст, который должен быть сверху изображения после рисования изображения. Вместо этого попробуйте использовать этот код:
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";
};
Пример: