当前位置: 首页 > 面试题库 >

有什么方法可以克隆HTML5 canvas元素及其内容?

谷良弼
2023-03-14
问题内容

有什么方法可以创建包含所有绘制内容的canvas元素的 深层 副本?


问题答案:

实际上,复制画布数据的正确方法是将旧画布传递到新的空白画布。试试这个功能。

function cloneCanvas(oldCanvas) {

    //create a new canvas
    var newCanvas = document.createElement('canvas');
    var context = newCanvas.getContext('2d');

    //set dimensions
    newCanvas.width = oldCanvas.width;
    newCanvas.height = oldCanvas.height;

    //apply the old canvas to the new one
    context.drawImage(oldCanvas, 0, 0);

    //return the new canvas
    return newCanvas;
}

使用getImageData用于像素数据访问,而不用于复制画布。使用它进行复制非常缓慢,并且很难在浏览器上进行。应该避免。



 类似资料:
  • 问题内容: 如何克隆 Java并同时在Java中克隆其项目? 例如,我有: 我希望其中的对象与狗列表中的对象不同。 问题答案: 你将需要迭代这些项目,然后逐个克隆它们,然后将克隆放入结果数组中。 显然,要使该方法起作用,你将必须使你的类实现接口并重写该方法。

  • 问题内容: 我正在寻找有关如何解决我的问题的技巧。 我在表中有一个html元素(如选择框输入字段)。现在,我想复制对象并从副本中生成一个新对象,并使用JavaScript或jQuery生成一个对象。我认为这应该会以某种方式起作用,但目前我一点也不了解。 这样的东西(伪代码): 问题答案: 使用您的代码,您可以使用cloneNode()方法在纯JavaScript中执行以下操作: 或使用jQuery

  • 如果我克隆了以下类的一个实例,并在实例化时覆盖了一个方法,克隆会有被覆盖的方法吗?我在https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html和https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone()中没有找到任何关于这种行为的内容。

  • 我对在我想要克隆对象的类中重写克隆方法感到困惑。 因为Java中的每个类都是从Object扩展而来的,所以它应该有clone方法,但是我们仍然被迫重写clone。为什么要求? 另外,我在一些地方阅读了重写克隆对象并将其公之于众的内容。我想知道,为什么会这样? 欢迎提供所有答案。

  • 本文向大家介绍jQuery使用empty()方法删除元素及其所有子元素的方法,包括了jQuery使用empty()方法删除元素及其所有子元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery使用empty()方法删除元素及其所有子元素的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jQuery程序设计有所帮助。

  • 因此,我的问题是:为什么还没有被否决?如果核心Java团队已经决定它是坏的,那么他们一定也考虑过弃用。他们反对这样做的理由是什么(在Java8中,它仍然没有被反对)?