Canvas 2d接口绘制问题踩坑总结

您所在的位置:网站首页 canvas绘制图片变形 Canvas 2d接口绘制问题踩坑总结

Canvas 2d接口绘制问题踩坑总结

2024-07-11 04:26| 来源: 网络整理| 查看: 265

微信不再支持之前的旧Canvas接口,都升级到了2d,导致之前绘制海报的功能无法正常使用,这边进行了修正,把过程遇到的坑记录下。主要碰到的几个问题如下:

1、迁移到新接口;

新接口采用了不同的接入方式,可以参考迁移指南:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/canvas-legacy-migration.html

这里要特别注意的是,导出Canvas到图片的时候:

wx.canvasToTempFilePath({ canvas: this.canvas, // 这里一定不要弄错 success: () => { ... } })

2、导出图片的时候,绘制的图片是空白的

导出图片之后,发现绘制的图片是空白的,文字和矩形是正常的。是因为Canvas 2d是采用同步绘制的方式,不需要调用draw方法,也不需要等上一步绘制完,所以导出图片之前,要等待一下,确定绘制都完成。加个Timeout就行。

setTimeout(() => { wx.canvasToTempFilePath({ canvas: this.canvas, success: () => { ... } }) }, 300);

3、绘制的文字、矩形被图片覆盖问题

绘制图片导出正常了,但是会出现后绘制的文字和矩形都被图片给覆盖遮住了。其实这个问题和第二个问题类似,也是因为同步绘制的关系。但是因为绘制图片需要等图片加载之后再绘制,会导致文字会先绘制。处理方式,在onload里绘制图片,绘制图片之后,再调用下一个绘制:

直接贴Taro的代码了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3