小程序canvas生成图片、html转图片,保存相册、分享朋友圈。
2018-12-07 18:06
3051 查看
业务场景
生成一个由背景图片、文字、icon、二维码组合的图片,保存至本地相册。由于生成的二维码为支付二维码切真实存在,这里做了马赛克处理。不是我canvas生成上去的吼。
实现思路:定义一个canvas,然后将他隐藏。生成了二维码后点击保存二维码时在canvas中绘制图形,然后调用canvasToTempFilePath方法把当前画布内容导出成指定大小的图片,返回图片路径,然后调用saveImageToPhotosAlbum将图片保存到本地。完成操作。
前端代码: (只展示了canvas和保存二维码的前端代码,其中页面显示的图像是html语言,并不是canvas)
js代码: canvasHidden:true控制canvas隐藏。
[code] data: { canvasHidden:true },
保存二维码按钮的函数:
[code] hidePayLayer(e){ var codeimgs = this.data.codeimgs //生成的二维码图像 const ctx = wx.createCanvasContext('share'); //获取到canvas实例 ctx.drawImage('/img/fuwu/code_bg.png',0,0,328,468) //将背景图片绘制在画布上 ctx.drawImage(codeimgs, 68, 132, 192, 192) //将二维码图片绘制在画布上 ctx.draw() //保存修改 wx.canvasToTempFilePath({ canvasId: 'share', //通过id 指定是哪个canvas success(res) { wx.saveImageToPhotosAlbum({ //成功之后保存到本地 filePath: res.tempFilePath, //生成的图片的本地路径 success: function (res) { wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }) }, fail: function (res) { } }) } }) },
这样我们就通过canvas组合了一张图片,需要注意的是,我这里图省事,让ui将整个页面不变的元素都做成了一整张背景图,然后页面还是用html来写,最后生成时只用将背景图和二维码绘制在一起就行了。
如果您的页面复杂且生成的元素变化很多,可以在下图的位置自己绘制,具体可参照小程序canvas文档。
很简陋的一个实现方案,大家贱笑了。
阅读更多相关文章推荐
- 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
- 微信小程序canvas生成图片保存到本地 部分全面屏手机显示出生成的图片
- 关于微信小程序中链接使用canvas实时生成二维码使用保存至相册
- html2canvas保存图片 微信分享
- 微信小程序通过保存图片分享到朋友圈功能
- 微信小程序通过保存图片分享到朋友圈
- 小程序生成图片保存到系统相册
- 11.微信小程序之canvas生成图片并保存到手机
- html2canvas同时生成多张图片出问题
- 微信小程序实现保存图片到相册功能
- js 将canvas生成图片保存,或直接保存一张图片的实现方法
- 微信小程序之canvas画图生成图片下载
- 微信浏览器分享到朋友圈自定义标题、描述和图片,查看图片可伸缩、保存
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
- 小程序 canvas 分享到朋友圈
- html2canvas 生成高清图片
- html2canvas 插件实现网页截图(html保存为图片)
- html2canvas生成图片模糊的解题思路
- php保存canvas生成的图片
- 微信小程序例子-保存图片到手机相册