小程序使用canvas制作beas64图片

1设置一个canvas标签

   <canvas style="width: 300px; height: 450px;" id="Canvase" type="2d" ></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
         })
      })



  }
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值