微信小程序canvas 绘图方法,生成图片,下载图片所遇到的bug(跟canvas相关的bug)

一、canvas 绘图方法及安卓手机出现绘图不准解决方案

  原因:微信 canvas 绘制也是一个异步函数,即ctx.draw()是异步操作,在 ctx.draw() 后面直接获取 canvasToTempPath 是不能获取到 canvas 的具体内容的。所以ctx.draw(false,function(){// 当 canvas 绘制完成之后,调用,可以生成临时路径,并且获取完整的图片,但是在安卓的部分设备上会出现渲染不全的效果,因此需要使用延迟加载 setTimeout 函数回避渲染过慢的问题。});

  解决方法:通过添加setTimeout定时器延迟调用canvasTotempPath;使用惰性加载(延迟加载)方法,在调用 ctx.draw(false,function(){}) 的回调函数部分,使用 setTimeout 延迟获取 canvasToTempFilePath 可以避免 canvas 在安卓机器上绘制不全的情况。

二、在调用wx.getImageInfo时本地测试预览和远程调试都没有出现问题,但项目上线后就不能成功调用;

原因:

wx.getImageInfo调用的条件:

1.需要用https的方式下载图片

2.需要将图片于downloadFile 合法域名一致

 

三、canvas图片生成海报部分手机必须打开调试模式才能出现图片

这个问题,解决了,出现原因:

1、这种图片不支持网络链接图片,需要通过downloadFile下载到本地,然后继续进行下一步操作

2、使用downloadFile下载到本地,但是下载的地址不是downloadFile安全域名下的

3、以上两点都满足,但是图片链接结尾不是.jpg或者其他图片拓展名(这种情况只有 ios有问题,安卓没有)

试了下,没有网络图片的时候是能生成海报的(就算不打开调试)

满足以上三点,才能在手机上显示图片。。。当然,为啥打开调试就可以显示图片的问题没有找到,也是因为这个才误导找到问题根源的方向...

 

四、控制canvas的大小;要不然消耗性能,已卡死

 

暂时遇到这些问题以后遇到问题会更新上去

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值