微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将画布元素堆叠在彼此之上-性能?

如何解决将画布元素堆叠在彼此之上-性能?

我得到了这支笔,我在这里拍摄视频流的快照。基本上,我为每个快照创建一个新的画布。但是,如果有人有任何意见,我会很伤心,从长远来看它将如何执行?相比之下,将画布元素堆叠在彼此的顶部,例如将png图像保存在本地存储中,然后遍历它们或类似的东西。

或者这很好吗?

这是笔。 https://codepen.io/haangglide/pen/ExyOrrX

这是我的JavaScript:

const vid = document.querySelector('video');
navigator.mediaDevices.getUserMedia({video: true}) // request cam
.then(stream => {
  vid.srcObject = stream; // don't use createObjectURL(MediaStream)
  return vid.play(); // returns a Promise
})
.then(()=>{ // enable the button
  const btn = document.querySelector('button');
  btn.disabled = false;
  btn.onclick = e => {
    takeASnap()
  };
});

function takeASnap(){
  let x = Math.floor(Math.random() * 20); 
  let y = Math.floor(Math.random() * 20);  
    let r = Math.floor(Math.random() * 21) - 10; 

  const canvas = document.createElement('canvas'); // create a canvas
  const ctx = canvas.getContext('2d'); // get its context
  canvas.width = 100; // set its size to the one of the video
  canvas.height = 100;
  
  canvas.style.position = "absolute";
  canvas.style.left = x+'px';
  canvas.style.top = y+'px';
  canvas.style.webkitTransform = 'rotate('+r+'deg)'; 
  canvas.style.mozTransform    = 'rotate('+r+'deg)'; 
  canvas.style.msTransform     = 'rotate('+r+'deg)'; 
  canvas.style.oTransform      = 'rotate('+r+'deg)'; 
  canvas.style.transform       = 'rotate('+r+'deg)'; 
 
  ctx.drawImage(vid,100,100); // the video
  document.getElementById("photo").appendChild(canvas);
  
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。