微信小程序canvas画布新接口type为2D时wx.canvasToTempFilePath的参数差异

参见文档:https://developers.weixin.qq.com/miniprogram/dev/api/canvas/wx.canvasToTempFilePath.html

见下文第21行,不要使用 canvasId,canvas type="2d" 时,传入 canvas 组件实例 ,object类型。

btn_tap(e) {
    var that = this;
    var img_url = e.currentTarget.dataset.url;
    const query = wx.createSelectorQuery();
    query.select('#myCanvas')
      .fields({ node: true, size: true })
      .exec((res) => {
        const _canvas = res[0].node;
        const ctx = _canvas.getContext('2d');

        const dpr = wx.getSystemInfoSync().pixelRatio;
        _canvas.width = res[0].width * dpr
        _canvas.height = res[0].height * dpr
        ctx.scale(dpr, dpr)

        ctx.fillRect(0, 0, 480, 640)
        let img = _canvas.createImage();
        img.onload = () => {
          ctx.drawImage(img, 0, 0, 480, 480);
          wx.canvasToTempFilePath({
            canvas: _canvas,
            success: (resx) => {
                wx.saveImageToPhotosAlbum({
                  filePath: resx.tempFilePath,
                  success: (resxx) => {
                    wx.showToast({
                      title: '保存成功',
                      duration: 1000,
                    });
                  }
              });
            },
            fail: (ex) => {
                console.log(ex);
            }
          });
        };
        img.src = img_url;
      });
    return;
  }

  

原文地址:https://www.cnblogs.com/laozuan/p/15192109.html