小程序 分享朋友圈当中的坑

本文讲述了在小程序中由于无法直接分享到朋友圈,作者通过canvas生成海报遇到的两个问题:一是网络图片在手机预览时不显示,需先缓存到本地;二是绘制圆形头像时在保存画布为图片时背景变为黑色。通过不断调试,作者最终解决了这两个问题,实现了将画布保存为带白色背景的jpg图片,并确保头像是圆角的。
摘要由CSDN通过智能技术生成

无奈现在小程序没有开放分享到朋友圈的功能,只能通过canvas生成海报,保存到手机中分享朋友圈。  说说我遇到的两个坑吧。

 

这是最终实现的效果图。

1

  1. 通过drawImage画图片,如果是网络图片,需要先缓存到本地。  我起始是直接用网络图画的,在编辑器里预览是没有问题的。但是用手机预览时会发现图片不显示。 
  2. 缓存图片到本地,有两个函数可以用,getImageInfo和downloadFile。 我首先选择的是getImageInfo。 调试的时候发现小程序码可以获取到,用户头像始终获取不到。success,fail,complete里统统不执行。 链接换成小程序码的就可以获取。最后无奈用户头像只能换成downloadFile函数缓存了。 

2

小程序获取到的用户头像是直角的,需要通过arc和clip创建一个圆形的剪切路径然后再绘制头像。这个一开始就走通了。 但是最后把画布保存图片时候发现图片是png透明的,于是在创建画布的时候就把画布填充为白色。  但是填充完发现头像变回直角了。  懵逼了,以为是填充影响到了剪切路径,调试多次发现问题还是存在。

要么把填充色去掉,要么头像只能是直角了。  期间我想到了一个办法,就是保存画布为图片时能不能设置成白色底,通过api发现可以设置图片格式,我设置成了jpg,默认是png的。 保存到电脑上,完美解决,白色的底。 通过手机看,发现背景色是黑色。。

没招了,抱着牺牲头像为直角的想法,把画布填充白色。 手机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值