8***@qq.com
8***@qq.com
  • 发布:2019-05-24 11:17
  • 更新:2024-09-06 11:24
  • 阅读:22420

uni.canvasToTempFilePath的坑

分类:uni-app

昨天做一个将canvas转图片的功能,发现以下问题:
1、在APP端,uni.canvasToTempFilePath方法需要放在convasContext.draw的回调里面,否则会一直报canvas is empty
2、在H5端,需要convasContext.draw与uni.canvasToTempFilePath同步执行,也就是不能放在回调里
3、在APP端uni.canvasToTempFilePath返回的路径是一个临时的图片路径
4、在H5端,生成的是base64路径

4 关注 分享
1***@qq.com 牧晨 老哥教教我 1***@qq.com

要回复文章请先登录注册

6***@qq.com

6***@qq.com

回复 7***@qq.com :
2024年9月8号 该问题依然存在
2024-09-06 11:24
乔小猿

乔小猿

遇到了一个canvasToTempFilePath:fail Cannot read property 'width' of undefined。不知道有人知道怎么解决嘛
2024-08-24 15:35
4***@qq.com

4***@qq.com

canvasToTempFilePath h5端返回的base64格式图片显示不全 有时候能显示全 有时候显示不全
2024-08-19 16:44
1***@qq.com

1***@qq.com

回复 1***@qq.com :
canvasToTempFilePath死活不执行
2024-07-11 13:49
1***@qq.com

1***@qq.com

// 保存绘图并导出图片
ctx.draw(true, (() => {
let drawTimer = setTimeout(() => {
clearTimeout(drawTimer)
drawTimer = null
console.log(this.canvasId)
// #ifndef MP-ALIPAY
uni.canvasToTempFilePath({
canvasId: this.canvasId,
destWidth: this.higtCanvasSize,
destHeight: this.higtCanvasSize,
success: (res) => {
// 在 H5 平台下,tempFilePath 为 base64
console.log(res.tempFilePath)
this.handlePrizeImg({
ok: true,
data: res.tempFilePath,
msg: '画布导出生成图片成功'
})
},
fail: (err) => {
this.handlePrizeImg({
ok: false,
data: err,
msg: '画布导出生成图片失败'
})
}
}, this)
// #endif
}, 500)
})())
2024-07-11 13:49
喜欢技术的前端

喜欢技术的前端

回复 7***@qq.com :
保存是加个延时
2024-03-31 20:01
7***@qq.com

7***@qq.com

2024年3月31号,canvasToTempFilePath导出的图片是空白的,这个问题还没解决
2024-03-31 16:22
a***@56380.com

a***@56380.com

回复 ben168 :
APP端需要把 uni.canvasToTempFilePath 放在 convasContext.draw 的回调里面
2023-07-26 17:33
2***@qq.com

2***@qq.com

回复 y***@sina.com :
导出的图片太大了
2023-03-14 20:44
y***@sina.com

y***@sina.com

有大佬解决ios导出图片白屏的问题吗
2022-11-12 13:53