2023年微信小程序save/restore(保存和恢复绘图上下文)
微信小程序的绘图接口和方法是非常重要的,其中最常用的之一便是canvasContext.save和canvasContext.restore。这两个API可以很好地保存和恢复绘图上下文,方便在同一个画布中实现不同的绘图效果。
使用canvasContext.save与canvasContext.restore
在绘制的过程中,我们经常需要临时改变样式属性。例如,在绘制一个图形时,我们可能需要改变填充颜色或者改变边框线宽。如果我们直接去更改全局的绘图属性,那么所有后面绘制的图形都会受到影响,这显然不是我们想要的。
这时,我们就可以使用canvasContext.save方法来保存当前的绘图上下文状态。然后在修改样式属性后绘制所需的图形,并通过canvasContext.restore方法还原之前保存的绘图状态。
具体用法
保存绘图上下文状态
恢复绘图上下文状态
调用canvasContext.save方法可以把当前绘图上下文状态压入一个栈中。该方法不会对任何绘图操作产生影响,只是简单地把当前的状态存储起来。
const ctx = wx.createCanvasContext('myCanvas')
// save the default fill style
ctx.save()
ctx.setFillStyle('red')
ctx.fillRect(10, 10, 150, 100)
一旦我们完成了修改样式属性并绘制出所需的图形,就可以通过调用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电商交易系统供销一体化,提高市场集中度 集团管控一体化,有效实现供需匹配 移动应用一体化,提高运营综合效率
上下游资源整合数字化解决方案,赋能产业供应链,构建产业互联网生态体系。
免费试用系统
