Javascript 使用模式在HTML5/JS中绘制图像

Javascript 使用模式在HTML5/JS中绘制图像,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我有一个项目,我目前正在工作,我似乎无法谷歌解决方案。我有一个HTML画布,我正在使用ctx.drawImage()来堆叠一些图像,我遇到的问题是我无法找到一种方法来专门绘制图像,使用类似的模式。无论如何,这可以很容易地完成,还是我需要尝试在服务器端生成图像,然后将其推送到客户端进行绘制 我尝试绘制的图像顺序如下: 背景色圆形遮罩第一个链接图像(这是我想用图案绘制的图像) 我试图让前两层保持可见,并用模式文件覆盖第三层的不透明部分。所有层都将需要透明的部分设置为透明。更新了,以满足自第一次发布此

我有一个项目,我目前正在工作,我似乎无法谷歌解决方案。我有一个HTML画布,我正在使用ctx.drawImage()来堆叠一些图像,我遇到的问题是我无法找到一种方法来专门绘制图像,使用类似的模式。无论如何,这可以很容易地完成,还是我需要尝试在服务器端生成图像,然后将其推送到客户端进行绘制

我尝试绘制的图像顺序如下:

  • 背景色
  • 圆形遮罩
  • 第一个链接图像(这是我想用图案绘制的图像)

    • 我试图让前两层保持可见,并用模式文件覆盖第三层的不透明部分。所有层都将需要透明的部分设置为透明。

      更新了,以满足自第一次发布此答案以来添加到问题中的附加条件:

      您不会说明圆角遮罩是否具有填充中心或透明中心,但以下假定为填充中心:

      • 绘制字母图像
      • 改变公司。将模式设置为“
        源代码”
        ”(参见下面关于操作方法的旧答案)
      • 画图案。你现在有了字母形状的图案
      • 改变公司。模式切换到“
        目的地切换到
      • 绘制遮罩,这将最终“隐藏”现有内容
      • 使用相同的组件用背景色填充画布。模式
      旧答案

      当然,在画布上绘制第一个图像,前提是它具有alpha通道

      然后将合成模式更改为
      source-top
      (中的
      source也可以使用,但它将删除不在新像素下的现有内容):

      然后在顶部绘制第二个图像。要切换回正常模式,请执行以下操作:

      ctx.globalCompositeOperation = "source-over";
      

      更新了,以满足自首次发布此答案以来添加到问题中的附加条件:

      您不会说明圆角遮罩是否具有填充中心或透明中心,但以下假定为填充中心:

      • 绘制字母图像
      • 改变公司。将模式设置为“
        源代码”
        ”(参见下面关于操作方法的旧答案)
      • 画图案。你现在有了字母形状的图案
      • 改变公司。模式切换到“
        目的地切换到
      • 绘制遮罩,这将最终“隐藏”现有内容
      • 使用相同的组件用背景色填充画布。模式
      旧答案

      当然,在画布上绘制第一个图像,前提是它具有alpha通道

      然后将合成模式更改为
      source-top
      中的
      source也可以使用,但它将删除不在新像素下的现有内容):

      然后在顶部绘制第二个图像。要切换回正常模式,请执行以下操作:

      ctx.globalCompositeOperation = "source-over";