分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等)

《制作器》的红包照片功能,可以生成一张这样的带小程序码和用户头像的分享卡片:


分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等)_第1张图片
jiawo.jpeg

最早我们是通过服务器端GD库来实现的,但是这样方式比较占用服务器的资源,并发高的时候,带宽和CPU都不够用

所以后来考虑通过小程序客户端的canvas功能来实现。发现canvas的问题不是一般地多啊
在IOS上都能正常生成的分享卡片,到了某些安卓手机上,经常就生成不正常了。
比如某款手机,80%的情况下就出现这样的结果:

分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等)_第2张图片
buzheng.jpeg

正常情况应该是这样的:

分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等)_第3张图片
zheng.jpeg

其中上面的图片部分,就是canvas画的

花了很多时间,也联系过官方的人,也没找到具体原因。干脆放弃。

某天突然灵机一动,为什么不通过七牛的水印功能来实现呢?

做法如下:
1、在七牛上放一张750*1200的白色图片
2、把用户上传之后变模糊的图片、用户的自定义文字、小程序码等内容当成是水印,打到这张背景图上,计算好位置就行(详情请看七牛的水印文档)
3、分享卡片里面的圆角头像是怎么做的呢?其实就是在正方形头像上,再叠加了一张跟头像尺寸一样的这样的图片:

loukong.png

图片中间是个圆形,背景透明。
叠加上去,头像就成圆的了

值得注意的是:生成文字水印的时候,字体尽量用默认的。这样生成出来的图片体积会小很多

我是查理 ,前鹅厂技术、连续创业者。 从PC到APP,再到小程序,我经历过把产品从0做到大几百万日活的过程,也曾把团队从1做到100多人的规模。 在这里记录自己的思考和观点,包括一些实操的经验,希望对你有价值。

欢迎关注我的微信公众号:charlietalk


分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等)_第4张图片
qrcode_for_gh_5595afc6bf98_344.jpg

你可能感兴趣的:(分享一个NB的方式,生成小程序的分享卡片(带小程序码,用户头像等))