1、移动端绘制时,绘制完不可直接使用api进行截图。会失败。需要进行延时一下,再截图。
setTimeout(() => {
// @ts-ignore // @ts-ignore 注释功能。这些注释是一种轻量级的方法来抑制下一行中出现的任何错误。
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: 250, // 画布宽
height: 350, // 画布宽
canvasId: 'myCanvas', // 画布id
fileType: 'jpg', // 截取后图片类型
quality: 1,
success: (ress: any) => {
console.log(ress.tempFilePath) // 图片临时路径
}
})
}, 1000)
2、移动端绘制时,如果绘制了不存在的图片(例如:错误图片路径等等)。会直接导致绘制图片消失。
3、app分享api uni.share 可直接分享临时路径图片。
4、wx.loadFontFace(Object object)引入的字体
canvas在小程序端无法使用该方法引入的字体。
但是在微信开发者工具上会有效。
引入字体文件后缀要是.ttf,不能是大写的.TTF,否则android会翻车。
具体需要注意的地方要直接去查看文档。
(亲身实践,前车之鉴)
5、canvas在动画中会有样式显示问题
例如在一个底部弹窗动效中,该弹窗从底部弹出。在弹窗收回的过程中,canvas会有在视觉上停留一会的效果。导致看起来很奇怪。
该问题在手机调试时会出现,在ios,android,微信小程序都会出现。
解决办法:
最好的办法就是避免。
在底部弹窗中不要放置canvas,将canvas使用
wx.canvasToTempFilePath()
或
uni.canvasToTempFilePath()
进行截取生成一张临时路径的图片。
将该图片路径赋值给image标签。
然后用image标签代替canvas在底部弹窗中的位置。
这样就避开了这个问题。
(有时解决问题的最好办法就是避开问题)