美文网首页
2019-01-25

2019-01-25

作者: 喂_43be | 来源:发表于2019-01-25 14:30 被阅读0次

    layout: post
    title: 微信小程序canvas画海报
    date: 2019-01-25 14:32:24.000000000 +09:00


    wx.request({
      url: host + '/wechat/getWXACode',
      data: {
        'page': 'pages/helpCollect/index',
        'scene': params.userid
      },
      method: 'post',
      responseType: 'arraybuffer',
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
      success: res => {
        const fsm = wx.getFileSystemManager();
        const fileName = wx.env.USER_DATA_PATH + '/share_img.png';
        fsm.writeFileSync(fileName, res.data, 'binary');
        const ctx = wx.createCanvasContext('shareCanvas')
        //背景图:调整小屏幕手机大小5s
        console.log('宽度', this.data.canvasWidth);
        console.log('高度', this.data.canvasHeight);
        //背景图片
        ctx.drawImage('../../assets/image/d_1.jpg', 0, 0, this.data.canvasWidth, this.data.canvasHeight)
        //修改关晓彤尺寸:
        // ctx.drawImage('../../assets/image/d_1.jpg', 0, 0, this.data.canvasWidth, this.data.canvasWidth * 1.61)
        ctx.setTextAlign('left')
        ctx.setFillStyle('#000000') // 文字颜色:黑色
        let fontSize = this.data.canvasHeight < 450 ? 12 : 12;
        let fontWidth = this.data.canvasWidth < 320 ? 10 : 20;
        let nameHW = this.data.canvasHeight < 450 ? this.data.canvasHeight - 80 : this.data.canvasHeight - 100;
        ctx.setFontSize(fontSize) // 文字字号:12px
        
        // 小程序码
        let qrHw = this.data.canvasWidth < 320 ? 65 : 80;
        let qrWidth = this.data.canvasWidth < 320 ? this.data.canvasWidth - 70 : this.data.canvasWidth - 100;
        let qrHeight = this.data.canvasHeight < 450 ? this.data.canvasHeight - 95 : this.data.canvasHeight - 120;
        let caWidth = this.data.canvasWidth < 320 ? this.data.canvasWidth - 90 : this.data.canvasWidth - 110;
        ctx.drawImage(fileName, qrWidth, qrHeight, qrHw, qrHw);
        ctx.fillText("长按识别小程序", caWidth, this.data.canvasHeight - 10)
        //微信头像
        let wxHW = this.data.canvasHeight < 450 ? 30 : 40;
        let wxWidth = this.data.canvasWidth < 320 ? 5 : 10;
        let nickWidth = this.data.canvasHeight < 450 ? wxWidth + 32 : wxWidth + 42;
        ctx.fillText(params.nickName, nickWidth, nameHW)
        ctx.fillText("正在参加这个活动", nickWidth, nameHW + 20)
        ctx.fillText("快来帮我助力吧!", wxWidth, this.data.canvasHeight - 10)
        let wxHeight = this.data.canvasHeight < 450 ? this.data.canvasHeight - 90 : this.data.canvasHeight - 110;
        ctx.drawImage(params.userAvator, wxWidth, wxHeight, wxHW, wxHW);
    
        ctx.stroke();
        ctx.draw(false, function() {
          //画好后下载到本地:
          const wxCanvasToTempFilePath = wxPromisify(wx.canvasToTempFilePath)
          const wxSaveImageToPhotosAlbum = wxPromisify(wx.saveImageToPhotosAlbum)
          wx.hideLoading();
          wxCanvasToTempFilePath({
            canvasId: 'shareCanvas'
          }, this).then(res => {
            console.log(res);
            return wxSaveImageToPhotosAlbum({
              filePath: res.tempFilePath
            })
          }).then(res => {
            console.log(res);
            wx.showToast({
              title: '已保存到相册'
            })
          }).catch(err => { 
    
          })
        });

    相关文章

      网友评论

          本文标题:2019-01-25

          本文链接:https://www.haomeiwen.com/subject/utimjqtx.html