canvas教程

canvas中imagedata对象的拷贝

字号+ 作者:H5之家 来源:H5之家 2017-09-16 11:21 我要评论( )

我们在使用canvas的imagedata对象时,经常需要保留原始的imagedata对象,但是对于对象和数组来说不能简单的用一个=号赋值来保存一个当前的数组,对象和数组的赋

我们在使用canvas的imagedata对象时,经常需要保留原始的imagedata对象,但是对于对象和数组来说不能简单的用一个=号赋值来保存一个当前的数组,对象和数组的赋值只是将某个变量指向了某个地址,我们改变指向同一地址的变量的时候,我们用来保存原始数据的变量其实也变了。也就是说:

a = { a : 1, b : 2};

b = a;

b.a = 3;

alert(a.a); //结果为3

对于imagedata来说更特别,因为他不是一个普通的对象,简单的通过遍历其中的属性不能实现该对象的复制,其复制的结果已经不再是一个imageData对象,用jQuery的extend也不能实现复制,要复制imageData对象就得从对象本身着手,以下是实现代码:

function copyImageData(imagedata){ return new ImageData(new Uint8ClampedArray(imagedata.data),imagedata.width,imagedata.height); }

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5 canvas元素使用(一)

    html5 canvas元素使用(一)

    2017-09-16 14:15

  • Canvas 学习笔记 简介 陈建杭个人博客

    Canvas 学习笔记 简介 陈建杭个人博客

    2017-09-15 13:26

  • HTML学习总结(四)【canvas绘图、WebGL、SVG】

    HTML学习总结(四)【canvas绘图、WebGL、SVG】

    2017-09-15 08:08

  • 行使HTML5 Canvas为图片添补颜色和纹理的教程

    行使HTML5 Canvas为图片添补颜色和纹理的教程

    2017-09-14 17:06

网友点评
t