画布文本未在图像上绘制

时间:2015-02-11 09:19:11

标签: javascript canvas fabricjs

我正在使用fabric.js将图片从网址绘制到画布中:

function addImage(url) {

  canvas.clear();

  fabric.Image.fromURL(url, function(oImg) {
    oImg.selectable = false;
    canvas.add(oImg);
  });

};

的工作原理。 现在我还想用这个函数在该图像上绘制一个文本:

function addText(text_to_add) {

  var ctx = canvas.getContext("2d");
  ctx.font = "30px Arial";
  ctx.fillText(text_to_add,10,50);

};

为了确保文字在图像的顶部绘制,我理解我首先需要绘制图像,然后是文本,如下所示:

<a href="#" onclick="addImage('/path/to/image/image.jpg'); addText('Hello World');">Click me to Draw image and text</a>

结果是,文本总是在图像后面绘制。我看到文本为mili-second然后图像覆盖文本。我希望在图像的顶部绘制文本。

我添加了这个jsfiddle,但不知怎的,它没有运行。也许fabric.js库存在问题。 http://jsfiddle.net/02vrr15d/

1 个答案:

答案 0 :(得分:2)

addText移除onclick,然后添加到addImage

function addImage(url) {
    fabric.Image.fromURL(url, function (oImg) {
        oImg.selectable = false;
        canvas.add(oImg);
        addText('Hello World');
    });
};

Example