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

Javascript 如何使用Canvas或jQuery在背景图像上放置图像和文本?,javascript,jquery,html5-canvas,Javascript,Jquery,Html5 Canvas,我试图使用Canvas/jQuery在背景图像上放置一个图像和文本,但我不知道如何做到这一点。我需要像这样做的形象 我已经尝试并找到了一些博客的脚本,但它不是完整的脚本,它只是一个圆圈,有人可以帮我吗 下面是我的脚本 <body onload="displayImage()"> <script type="text/javascript"> //Global variables var myImage = new Image(); // Create

我试图使用Canvas/jQuery在背景图像上放置一个图像和文本,但我不知道如何做到这一点。我需要像这样做的形象

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

下面是我的脚本

<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>

//全局变量
var myImage=new Image();//创建一个新的空白图像。
//加载图像并显示它。
函数displayImage()
{
//获取canvas元素。
canvas=document.getElementById(“myCanvas”);
//确保你拿到了。
if(canvas.getContext)
{
//指定二维画布类型。
ctx=canvas.getContext(“2d”);
//加载图像后,绘制它。
myImage.onload=函数(){
//将图像加载到上下文中。
ctx.drawImage(myImage,0,0);
//获取并修改图像数据。
changeImage();
}
//定义图像的源。
myImage.src=”https://pbs.twimg.com/profile_image/843519123711803393/pyYe9LFq_400x400.jpg";
}
}
函数changeImage()
{
ctx.strokeStyle=“白色”;
ctx.lineWidth=“100”;
ctx.beginPath();
ctx.arc(100100150,0,Math.PI*2,真);
ctx.closePath();
ctx.stroke();
}

其中一个问题是画布只有200x200,圆圈的线宽是100,并且是白色的,因此在绘制时,它填充了大部分画布(在本例中,它也在画布区域的稍外侧绘制)

而且,所讨论的映像还有一个加载错误,这可能是这里的主要原因(应该始终添加onerror+onabort处理程序)


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

我没有要求解决包含的脚本,我希望使其看起来像此图像