博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 Canvas 撤销上一次操作
阅读量:5039 次
发布时间:2019-06-12

本文共 988 字,大约阅读时间需要 3 分钟。

利用canvas的getImageData复制当前画布(canvas)上的内容进行保存,再通过putImageData将之前保存的canvas内容覆盖到画布(canvas)上,以达到撤销的功能。

getImageData() 方法返回 ImageData 对象,该对象拷贝了画布指定矩形的像素数据。

对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:

  • R - 红色 (0-255)
  • G - 绿色 (0-255)
  • B - 蓝色 (0-255)
  • A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的)

color/alpha 以数组形式存在,并存储于 ImageData 对象的 属性中。

putImageData() 方法将图像数据(从指定的 ImageData 对象)放回画布上。

参考:http://www.w3school.com.cn/tags/canvas_getimagedata.asp

 

1     var imgData; 2     function canvas_copy(){ 3         var context = document.getElementById("pic").getContext('2d'); 4         var width = context.canvas.width; 5         var height = context.canvas.height; 6         imgData = context.getImageData(0, 0, width, height); 7     } 8  9     function canvas_paste(){10         var context = document.getElementById("pic").getContext('2d');11         context.putImageData(imgData,0,0);12     }13 14     function pic_cancel(){15         canvas_paste();16     }

 

转载于:https://www.cnblogs.com/moyan03/p/5620320.html

你可能感兴趣的文章
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>
ArchLinux安装开源VMware Tools
查看>>
DB2 锁升级示例1
查看>>
16.RDD实战
查看>>
MainFrame知识小结(20120210)—dfsort/syncsort中的数据类型
查看>>
D - Flip tile
查看>>
Java连接RabbitMQ之创建连接
查看>>
开户vim编程之--cscope支持
查看>>
python数据类型图解
查看>>
C#微信登录-手机网站APP应用
查看>>
HTML5实践 -- iPhone Safari Viewport Scaling Bug
查看>>
一位数据挖掘成功人士 给 数据挖掘在读研究生 的建议
查看>>
Python3.6.0安装
查看>>
hdu1049
查看>>