无奈现在小程序没有开放分享到朋友圈的功能,只能通过canvas生成海报,保存到手机中分享朋友圈。 说说我遇到的两个坑吧。
这是最终实现的效果图。
1
- 通过drawImage画图片,如果是网络图片,需要先缓存到本地。 我起始是直接用网络图画的,在编辑器里预览是没有问题的。但是用手机预览时会发现图片不显示。
- 缓存图片到本地,有两个函数可以用,getImageInfo和downloadFile。 我首先选择的是getImageInfo。 调试的时候发现小程序码可以获取到,用户头像始终获取不到。success,fail,complete里统统不执行。 链接换成小程序码的就可以获取。最后无奈用户头像只能换成downloadFile函数缓存了。
2
小程序获取到的用户头像是直角的,需要通过arc和clip创建一个圆形的剪切路径然后再绘制头像。这个一开始就走通了。 但是最后把画布保存图片时候发现图片是png透明的,于是在创建画布的时候就把画布填充为白色。 但是填充完发现头像变回直角了。 懵逼了,以为是填充影响到了剪切路径,调试多次发现问题还是存在。
要么把填充色去掉,要么头像只能是直角了。 期间我想到了一个办法,就是保存画布为图片时能不能设置成白色底,通过api发现可以设置图片格式,我设置成了jpg,默认是png的。 保存到电脑上,完美解决,白色的底。 通过手机看,发现背景色是黑色。。
没招了,抱着牺牲头像为直角的想法,把画布填充白色。 手机