私域电商软件及相关增值服务提供商    

免费试用
2023年微信小程序save/restore(保存和恢复绘图上下文)
作者: --时间: 2025-06-28 20:21:39 阅读量:

微信小程序的绘图接口和方法是非常重要的,其中最常用的之一便是canvasContext.save和canvasContext.restore。这两个API可以很好地保存和恢复绘图上下文,方便在同一个画布中实现不同的绘图效果。

使用canvasContext.save与canvasContext.restore


在绘制的过程中,我们经常需要临时改变样式属性。例如,在绘制一个图形时,我们可能需要改变填充颜色或者改变边框线宽。如果我们直接去更改全局的绘图属性,那么所有后面绘制的图形都会受到影响,这显然不是我们想要的。

这时,我们就可以使用canvasContext.save方法来保存当前的绘图上下文状态。然后在修改样式属性后绘制所需的图形,并通过canvasContext.restore方法还原之前保存的绘图状态。

具体用法

  1. 保存绘图上下文状态

  2. 调用canvasContext.save方法可以把当前绘图上下文状态压入一个栈中。该方法不会对任何绘图操作产生影响,只是简单地把当前的状态存储起来。

    const ctx = wx.createCanvasContext('myCanvas')
    
    // save the default fill style
    ctx.save() 
    ctx.setFillStyle('red')
    ctx.fillRect(10, 10, 150, 100)
    
  3. 恢复绘图上下文状态

  4. 一旦我们完成了修改样式属性并绘制出所需的图形,就可以通过调用canvasContext.restore方法还原之前保存的绘图上下文状态。这会弹出栈顶部的状态,并把它还原到当前的绘图上下文中。

    // restore to the previous saved state
    ctx.restore()
    ctx.fillRect(50, 50, 150, 100)
    
    ctx.draw()

使用canvasContext.save与canvasContext.restore方法可以很好地实现绘制不同风格、颜色和大小的对象。同时,因为这两个方法操作简单方便,非常适合在微信小程序中使用。

一套系统全搞定
  • 商家管理
  • 商品管理
  • 订单管理
  • 会员管理
  • 营销中心
  • 供应链入驻
  • 财务管理
  • 支付分账
  • 商城直播
免费试用
更多产品任你选
B2B2C多用户商城系统

类天猫&京东模式系统

了解更多
B2B2B电商交易系统

全渠道订货/采购及经销商管
理数字化系统

了解更多
S2B2B电商交易系统

上下游资源整合数字化解决方

了解更多
企业集采商城系统

中大型企业数字化采购与交易
系统

了解更多
员工福利商城系统

集福利管理、发放于一体的员
工福利商城

了解更多

电话咨询 微信咨询 0元开店