javascript - 如何在 Canvas 上的所有其他内容后面绘制图像?

标签 javascript html canvas

<分区>

我有一个 Canvas ,我想使用 drawImage 在 Canvas 上的当前内容后面绘制图像。

由于 Canvas 上已经有内容(我正在使用 Literally Canvas 创建一个包含图像的 Canvas ,所以我不能先真正绘制图像),我不能使用 drawImage 在我呈现其余内容之前。

是否可以在 Canvas 上的所有其他内容后面drawImage

最佳答案

是的,你可以使用 globalCompositeOperation destination-over,但请注意,您的第一张图片需要一些透明度,否则,您显然看不到任何东西:

var img1 = new Image();
var img2 = new Image();

var loaded = 0;
var imageLoad = function(){
   if(++loaded == 2){
     draw();
     }
   };
img1.onload = img2.onload = imageLoad;

var draw = function(){
  var ctx = c.getContext('2d');
  ctx.drawImage(img1, 100,100);
  // wait a little bit before drawing the background image
  setTimeout(function(){
    ctx.globalCompositeOperation = 'destination-over';
    ctx.drawImage(img2, 0,0);
    }, 500);
  }
img1.src = "https://dl.dropboxusercontent.com/s/4e90e48s5vtmfbd/aaa.png";
img2.src = "https://picsum.photos/200/200";
<canvas id="c" width="200" height="200"></canvas>

关于javascript - 如何在 Canvas 上的所有其他内容后面绘制图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37359716/

相关文章:

javascript - rails : On tab click submit a form

java - 当我尝试使用 Canvas 显示背景图像时出现问题

html - 伪元素上的 Font Awesome 5 显示正方形而不是图标

HTML5 视频标签音量控制缺失

html - 如何使用 canvas 或 css3 为绳子制作动画

javascript - 响应式 jQuery Canvas , Canvas 背景在窗口调整大小时消失

javascript - 从嵌套对象中获取一些数据

javascript - 捕获 Internet Explorer 中当前事件选项卡的图像并将其传递给 Flex 应用程序

javascript - 固定位置div底部的定位元素

html - 如何在没有表格的情况下对齐文本