首先取到绘画的上下文信息var canvas=document.createElement('canvas');

var context=canvas.getContext('2d');

有这两个方法

context.save();//保存当前画布状态

context.restore()//恢复最近一近的画布保存状态

主要是当对画布有如下转换操作之前可以先使用context.save();保存画布当前状态,方便下面的图画好后需要恢复画布原来的状态时调用context.restore();

看下面例子,

比如给你一个A4纸大小的画板

让你先在最上面画三个小正方形如下代码context.fillStyle='#f00';

context.fillRect(0,0,30,30);

context.fillStyle='#0F0';

context.fillRect(35,0,30,30);

context.fillStyle='#00f';

context.fillRect(75,0,30,30);

下面使用转换坐标系函数对画布重新定位0,0坐标点context.fillStyle='#f00';

context.fillRect(0,0,30,30);

//这里重新把30,30定为坐标系原点

context.translate(30,30)

context.fillStyle='#0F0';

context.fillRect(35,0,30,30);

context.fillStyle='#00f';

context.fillRect(75,0,30,30);

效果是这样的

第三个图形也使用转换过后的坐标系画图啦

下面使用context.save()和context.restore();context.fillStyle='#f00';

context.fillRect(0,0,30,30);

//变换坐标系之前先保存画布状态

context.save();

//这里重新把30,30定为坐标系原点

context.translate(30,30)

context.fillStyle='#0F0';

context.fillRect(35,0,30,30);

//恢复画布之前状态再画

context.restore();

context.fillStyle='#00f';

context.fillRect(75,0,30,30);

效果如下

画第三个图形时恢复啦画完第一个图形后的坐标系

第三个图片还是按原来的坐标去画图啦

html5 画布保存,html5 (canvas)画布save()和restore()的理解和使用方法相关推荐

  1. canvas中save和restore的理解和使用

    canvas中save和restore的理解和使用 理解save和restore不一定总是成对出现的 太阳系 理解save和restore不一定总是成对出现的 每个 canvas 的 context ...

  2. Canvas的save和restore

    在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方法里,我们经常会 ...

  3. Tensorflow: 保存和复原模型(save and restore)

    报错: is not valid checkpoint 解决: module_file = tf.train.latest_checkpoint(diag_obj.save_path) saver.r ...

  4. html5贝塞尔曲线,用canvas绘制一个曲线动画——深入理解贝塞尔曲线

    前言 在前端开发中,贝赛尔曲线无处不在: 它可以用来绘制曲线,在svg和canvas中,原生提供的曲线绘制都是使用贝赛尔曲线 它也可以用来描述一个缓动算法,设置css的transition-timin ...

  5. Canvas的save和restore方法

    2019独角兽企业重金招聘Python工程师标准>>> Canvas里的两个重要方法,一直很疑惑. save和restore方法是成对出现的,但是restore必然对应一个save方 ...

  6. canvas 的save()和restore()方法

    应用到画布上面的效果是可以累积的,因而就可以利用几个简单的函数来"组合"出效果来.例如,在向屏幕上绘制之前,可能会有一艘飞船需要旋转.变换 和缩放.因为所有效果都对画布起作用,所以 ...

  7. 理解Canvas的save()和restore()方法

    save()和restore()方法是绘制复杂图形必不可少的方法.它们分别是用来保存和恢复 canvas 状态的,都没有参数. Canvas 状态是以堆(stack)的方式保存的,每一次调用 save ...

  8. QPainter保存与恢复:save与restore函数浅析

    在Qt中进行图像绘制,需要用到QPainter对象,这个对象可以帮助我们完成一些简单功能的绘制,比如说绘制线条,绘制折线等简单的绘制功能. QPainter对象,有两个很有意思的函数,这两个函数相互之 ...

  9. Android画布的保存,Android canvas用法介绍之save()和restore()

    一. 首先讲一下canvas的save 和 restore功能. 这是canvas很有魅力的一个部分. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方 ...

  10. 从0开始canvas系列一 --- canvas画布

    从0开始canvas系列 从0开始canvas系列一 - canvas画布 从0开始canvas系列二 - 文本和图像 从0开始canvas系列三 - 图像像素级操作 从0开始canvas系列四 - ...

最新文章

  1. 【Codeforces】427B Prison Transfer(别让罪犯跑了...)
  2. 火狐 html5 退出 白屏,Html5+ 后退按钮出现白屏(webView.back会白屏)
  3. 【干货】Kafka实现淘宝亿万级数据统计(上)
  4. 利用LDA主题模型的生成过程仿真数据
  5. 域名型通配符ssl证书_西部数码使用指南:申请了主域名SSL证书,是否还需要申请www域名的...
  6. failed to fetch url linux,ubuntu apt-get下载报failed to fetch错误,请问如何解决
  7. 随笔---ubuntu下通过ifstat查看实时网速
  8. 微信公众号发送客服消息---菜单消息,卡片消息
  9. 计算机改名字sql2008不能登录,Win7电脑修改计算机名称后SQL2008数据库无法登录提示无法连接到load怎么处理...
  10. 强化学习 Sarsa 实战GYM下的CliffWalking爬悬崖游戏
  11. 有贵人相助顶你三年兢兢业业---养浩有感
  12. 城市内涝地埋式积水监测系统解决方案
  13. 遥感图像的空间分辨率,光谱分辨率等
  14. 摄像头的像素如何计算
  15. 2022暑期项目实训(一)
  16. 【备忘】Google Android开发入门与实战 PDF 下载
  17. 百合医疗IPO被终止:实控人黄凯之父黄维郭曾是佛山副市长
  18. 《当程序员的那些狗日日子》(五十六)步入正轨
  19. 国企单位软考高级是否值得备考?
  20. iMovie资源库外置,节省本机存储空间

热门文章

  1. 371. Sum of Two Integers (Binary)
  2. FT5X06 如何应用在10寸电容屏
  3. 软件工程(2018)第三次个人作业
  4. 最全面的理解 | 工业互联网的前世今生
  5. 群体智能优化算法之萤火虫群优化算法(Glowworm Swarm Optimization,GSO)
  6. 【Matlab学习笔记】【函数学习】eps
  7. SimpleGIS在线地图插件
  8. ENVI学习总结(八)——图像镶嵌
  9. ArcGIS 城市生活区用地适宜性评价(一)
  10. sizeof和strlen的简单使用方法和区别