Как написать текст поверх изображения на холсте HTML5? - PullRequest
18 голосов
/ 08 декабря 2011

Я хочу отобразить изображение на холсте и вставить текст поверх этого изображения.

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

Я получаю здесь только изображение, но не текст;текст находится позади изображения.Как вставить текст поверх изображения?

1 Ответ

39 голосов
/ 08 декабря 2011

Это потому, что вы рисуете текст до того, как изображение было загружено и нарисовано.Вы должны нарисовать текст, который должен быть сверху изображения после того, как изображение нарисовано.Попробуйте этот код:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...