JavaScript canvas save()、restore()

说明

Canvas 执行的平移、缩放、旋转、裁剪等操作,可以改变画布,会对后续的绘制有影响

使用 save()、restore() 可以恢复这些操作对 canvas 的影响

提示:不包括绘制的图形

save

保存Canvas的状态和属性

状态:canvas的缩放、旋转等
属性:fillStyle、textAlign、lineWidth、strokeStyle等

restore

恢复上一次 save() 保存之前的状态和属性。
也就是说,上一次 save() 之后的状态(缩放、平移、旋转)、属性(fillStyle、textAlign、lineWidth、strokeStyle等),不会再生效

例子

// 保存初始Canvas状态
context.save();
// 设置红色填充
context.fillStyle = 'red';
// 矩形填充
context.fillRect(20, 20, 100, 60);
// 还原
context.restore();


// 还原后绘制矩形填充,该矩形的黑色,因为 save() 之前就是黑色
context.fillRect(180, 60, 100, 60);

还原后再绘制的就是 黑色矩形

参考:
https://blog.csdn.net/YMX2020/article/details/118516852
https://www.canvasapi.cn/CanvasRenderingContext2D/save#&introduction


原文出处:/show_1IX8ZGyUXezs.html