小程序使用canvas制作beas64图片

1设置一个canvas标签

   

2获取接口数据的图片数据

  wx.request({
      url: '接口地址', //仅为示例,并非真实的接口地址
      data: {
        请求参数
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success(res) {
      console.log(res);
      
        
       
      }
    })

2在成功回调中写入

const fs = wx.getFileSystemManager();
var codeimg = wx.env.USER_DATA_PATH + '/' + '.jpg';
fs.writeFile({
  filePath: codeimg,
  data: res.data.slice(22), // code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)
  encoding: 'base64',
  success: () => {
    // console.log(codeimg);

    wx.createSelectorQuery().select('#Canvase').fields({
      node: true,
      size: true
    })
      .exec((res) => {
        console.log(res);
        let ctx = res[0].node.getContext('2d'); //getContext返回Canvas 的绘图上下文              
        let canvas = res[0].node;
        const bg = canvas.createImage();
          //背景图片
        const image = canvas.createImage();
          // 图片高清化
        const dpr = wx.getSystemInfoSync().pixelRatio;
        res[0].node.width = res[0].node.width * dpr;
        res[0].node.height = res[0].node.height * dpr;
        // 设置背景图片src
        image.src = '背景图片地址'
        bg.src = codeimg;
        image.onload = function () {
          ctx.drawImage(image, 0, 0, 900, 440)
          ctx.drawImage(bg, 240, 210, 430, 160);
      
        }
      // 将图片保存需要的实例,不写保存可以不需要
        that.setData({
          ctx:canvas
         })
      })



  }
})

你可能感兴趣的:(小程序)