微信小程序保存海报分享

1. 绘制之前,先将图片下载到本地,远程图片包含:头像,小程序二维码

wx.downloadFile下载文件资源到本地

在这里插入图片描述

2 .远程二维码头像下载到本地后,利用Wxml2Canvas插件绘制成海报,并保存在用户系统相册(wx.saveImageToPhotosAlbum)

插件参考 https://github.com/wg-front/wxml2canvas
在这里插入图片描述

 async drawImage1 () {
    await this.download()//先把图片转为本地图片
    let self = this;
    var curDrawImage = new Wxml2Canvas({
        width: 250, // 宽, 以iphone6为基准,传具体数值,其他机型自动适配
        height: 310, // 高
        element: 'canvas1', 
        background: '#f0f0f0',
        progress (percent) {
        },
        finish(url) {
          wx.saveImageToPhotosAlbum({
            filePath: url,
            success(){
              wx.hideLoading()
              wx.showToast({
                title: '保存成功',
                icon: 'success',
                duration:2000
              })
              
            },
            fail(err){  
              wx.showModal({
                title: '提示',
                content: '您好,请先授权,再保存图片',
                showCancel:false,
                success: function(res) {
                  wx.openSetting({
                    success: (result)=>{

                      console.log("-----------res",result.authSetting);
                      if(result.authSetting['scope.writePhotosAlbum']){
                        wx.saveImageToPhotosAlbum({
                          filePath:url,
                          success(){
                            wx.showToast({
                              title: '保存成功',
                              icon: 'success'
                            })
                          }
                        })
                      }else{
                        wx.showToast({
                          title: '温馨提示',
                          content: '授权失败,请稍后重新获取',
                          showCancel: false,
                        })
                      }
                    },
                    fail: ()=>{},
                    complete: ()=>{}
                  });
                }
              })  
            }
          })
        },
        error (res) {
          console.log("失败")
        }
    });

    let data = {
        list: [{ //绘制矩形
          type: 'rect',
          x: 0,
          y: 0,
          style: {
            // width: _this.data.width,
            // height: _this.data.height - 60,
            width: 250,
            // height: 390,
            height: 310,
            fill: 'transparent'
          }
        },
        { //根据wxml绘制,
          type: 'wxml',
          class: '.share__canvas1 .draw_canvas',
          limit: '.share__canvas1',
          x: 0,
          y: 0
        }]
    }
    curDrawImage.draw(data);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值