如何使用Canvas或jQuery在背景图像上放置图像和文本?

时间:2017-08-01 07:01:13

标签: javascript jquery html5-canvas

我正在尝试使用Canvas / jQuery在背景图像上放置图像和文本,但我不知道如何做到这一点。我需要这样做http://static.catfly.com/quiz/which-friend-should-be-kidnapted-by-aliens/en/cover.jpg

我已经尝试并为博客找到了一些脚本,但它不是完整的脚本,它只是一个圆圈,任何人都可以帮助我吗?

以下是我的剧本。

<body onload="displayImage()">

<script type="text/javascript">

    //Global variables
    var myImage = new Image(); // Create a new blank image.

    // Load the image and display it.
    function displayImage() 
    {
    // Get the canvas element.
    canvas = document.getElementById("myCanvas");

      // Make sure you got it.
      if (canvas.getContext) 
      {
          // Specify 2d canvas type.
          ctx = canvas.getContext("2d");

          // When the image is loaded, draw it.
          myImage.onload = function() {

          // Load the image into the context.
          ctx.drawImage(myImage, 0, 0);

          // Get and modify the image data.
          changeImage();
          }

          // Define the source of the image.
          myImage.src = "https://pbs.twimg.com/profile_image/843519123711803393/pyYe9LFq_400x400.jpg";
      }
    }

    function changeImage() 
    {
    ctx.strokeStyle = "white";
    ctx.lineWidth = "100";
    ctx.beginPath();
    ctx.arc(100, 100, 150, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.stroke();
    }
</script>

<canvas id="myCanvas" width="200" height="200"></canvas>

</body>

1 个答案:

答案 0 :(得分:1)

其中一个问题是画布仅为200x200,圆的线宽为100,并且为白色,因此在绘制时它会填充大部分画布(在这种情况下,它也会在画布区域外略微绘制)。

并且,有问题的图像也有一个加载错误,这可能是这里的主要原因(应始终添加onerror + onabort处理程序)。

只需调整线宽,修复图像,我还建议将画布设置得更大(可以使用图像尺寸进行设置)。